lemolatoon / lemola_osv2

MIT License
4 stars 0 forks source link

USBドライバ周りでどの行でなにをしているのかをまとめる。 #8

Closed lemolatoon closed 1 year ago

lemolatoon commented 1 year ago

relates #7 https://github.com/lemolatoon/lemola_osv2/pull/7/commits/89acec103acdc9f5139f0f1cdeb44f38f155bbde 時点

lemolatoon commented 1 year ago

xhcのmemory mapped IOのベースアドレスを取得する

PCIデバイスの探索

kernel/src/pci/register.rs

pciデバイスをすべて探索し、Vec<PciDevice>につめる

xhcのデバイスを見つける

kernel/src/main.rs

pciデバイスを探索し、class_codeが(0x0c, 0x03, 0x30)のものを探す。

memory mapped IOのベースアドレスを計算

kernel/src/main.rs

lemolatoon commented 1 year ago

xhcの初期化をする。

簡単な目次

以下、より詳細な手順

xhcのmemory mapped IOの各値にアクセス可能にする。

kernel/src/xhci/controller.rs

xhcデバイスの初期化

https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf#page=80

kernel/src/xhci/controller.rs

DeviceContextの初期化

CommandRingの初期化

kernel/src/xhci/command_ring.rs

lemolatoon commented 1 year ago

とりあえず #11 で動くようになったのでclose