VirtIOデバイスをPCIから起動するデバイスドライバラボ
Device Drivers lab exercise – COSC562
COSC562のデバイスドライバ実験。PCIeのECAMからVirtIOデバイスを発見し、MSI-Xを有効化して割り込みを設定。VirtIOのベンダー固有ケーパビリティを辿り、共通コンフィグでキューをネゴシエートする。Rustで型安全にECAMをラップし、デバイスをカーネルのデバイスレジストリに登録する。
MSI-Xは起動時には無効になっており、有効にするには、このデバイスのコマンドレジスタで割り込みを無効にし、メッセージコントロールレジスタのビット15をセットしてMSI-Xを有効にする必要があります。