Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
USBデバイスドライバの開発/cybozulabs-youth10-tokunaga
Cybozu
March 31, 2021
Technology
0
23
USBデバイスドライバの開発/cybozulabs-youth10-tokunaga
Cybozu
March 31, 2021
Tweet
Share
More Decks by Cybozu
See All by Cybozu
cybozuinsideout
0
16
cybozuinsideout
0
36
cybozuinsideout
0
21
cybozuinsideout
0
21
cybozuinsideout
0
24
cybozuinsideout
0
24
cybozuinsideout
0
33
cybozuinsideout
0
800
cybozuinsideout
4
12k
Other Decks in Technology
See All in Technology
lambda
0
240
harshbothra
0
240
thorstenhans
0
110
you
0
130
nnstt1
2
120
clustervr
PRO
0
180
finengine
0
370
supership
0
200
oracle4engineer
0
120
gamella
0
110
kanaugust
PRO
0
120
ayatokura
0
280
Featured
See All Featured
chrislema
173
14k
orderedlist
PRO
330
36k
jponch
103
5.1k
maggiecrowley
10
550
addyosmani
1346
200k
dotmariusz
94
5.5k
keithpitt
402
20k
3n
163
22k
carmenhchung
35
1.6k
rocio
155
11k
sachag
446
36k
deanohume
294
28k
Transcript
USB σόΠευϥΠόͷ։ൃ USBσόΠευϥΠόͷ։ൃ ୈ 10 ظੜɹϨΠϠθϛɹಙӬେو March 30, 2021
USB σόΠευϥΠόͷ։ൃ ༰ 1 ͡Ίʹ 2 USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ
USB ϑϥογϡϝϞϦυϥΠόͷ࡞
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ ࣗݾհ ໊લ ಙӬେو ډॅ ਆಸݝҏݪࢢ ॴଐ ిؾ௨৴େֶใཧֶҬ
I ྨίϯϐϡʔλα ΠΤϯεϓϩάϥϜ౬ݚڀࣨ
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ ࣮ͨ͠υϥΠό USB ΩʔϘʔυ USB Ϛε USB ϑϥογϡυϥΠϒ
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ ΩʔϘʔυ͔ΒͷಡΈࠐΈ Figure: ΩʔϘʔυ͔ΒͷಡΈࠐΈ
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ Ϛε͔ΒͷಡΈࠐΈ Figure: Ϛε͔ΒͷಡΈࠐΈ
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ USBϑϥογϡϝϞϦ͔ΒͷಡΈࠐΈ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USBσόΠευϥΠόͷ։ൃͷେ·͔ͳྲྀ Ε 1 ϗετίϯτϩʔϥʢHCʣΛݟ͚ͭΔ 2 HC
ͷॳظԽ 3 USB σόΠεΛݟ͚ͭΔ 4 USB σόΠεڞ௨ͷॳظԽ 5 USB σόΠεͷछྨʹԠͨ͡ॳظԽ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ HCΛݟ͚ͭΔ HC PCI
σόΠεͷҰछ όε൪߸ (0 ≤ x < 256) ͱσόΠε൪߸ (0 ≤ y < 32) Λ શ୳ࡧ͢Δɽ xHCI ͷ߹ (class, sub, interface) = (0x0C, 0x03, 0x30)
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ HCͷॳظԽ Ϧηοτ ϨδελʹඞཁͳΛઃఆʢ࠷େϙʔτͳͲʣ ֤छσʔλߏͷઃఆ
Ϧϯά ίϯςΫετ εΫϥονύου HC ͷಈ࡞։࢝
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεΛݟ͚ͭΔ HC ͕ USB
σόΠεͷଓΛݕ͢ΔͱɼΠϕϯτϦ ϯάʹใࠂ͞ΕΔ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεڞ௨ͷॳظԽ ֤छσʔλߏͷॳظԽ τϥϯεϑΝʔϦϯά ίϯςΫετ
σεΫϦϓλͷऔಘ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεͷछྨʹԠͨ͡ॳظԽ ͲͷઃఆΛར༻͢Δ͔ʢϒʔτϓϩτίϧʣ ετϨʔδͷ༰ྔͳͲͷऔಘ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞ USBϚεετϨʔδσόΠεͷυϥΠόͷ ࡞ 2 ͭͷΓํ͕ଘࡏ͢Δɽ
Table: ϓϩτίϧͷҧ͍ ϓϩτίϧͷ໊લ ରԠ͍ͯ͠Δछྨ Bulk-Only Transport Specification શػछ USB Attached SCSI Protocol USB 3.0 ͷΈ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞ σόΠεͱͷΓऔΓ 1 SCSI ίϚϯυͷૹ৴
2 σʔλͷૹ৴ɼ·ͨड৴όοϑΝͷϙΠϯλૹ৴ 3 ίϚϯυͷऴྃεςʔλεͷड৴
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞ ࢀߟʹͨ͠ͷ ༷ॻ xHCI USB3.2
USB2.0 ιʔείʔυ MikanOS QEMU ॻ੶ USB: The Universal Serial Bus, Benjamin David Lunt, Forever Young Software
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞ ॻ͍ͨιʔείʔυ Ramen OS https://github.com/toku-sa-n/ramen