メニュー

USB 3.0 ホストドライバ自作入門

発売日: 2018/4/22 想定ページ数: 48ページ 全文検索: 対応
★★★★★ ★★★★★ 3.0 1件
本書は自作 OS 向けの USB 3.0 ホストドライバの作り方を説明しています。最終的には USB キーボードからの入力を受け付けられるようになります。 関連する仕様書と合わせて本書を一緒に読むことで、最短で USB ホストドライバを作ることを目指します。

現代の x86_64 アーキテクチャのコンピュータには USB 3.0 ホストコントローラとして xHCI 準拠のコントローラが搭載されています。 xHCI は Intel が作ったホストコントローラ規格であり、xHCI に対応できれば USB 1.1、USB 2.0、USB 3.0 のデバイスを扱えるようになります。

本書はホストコントローラを PCI バス上で検索するやり方から始まり、ホストコントローラの初期化、USB デバイスの認識、USB キーボード用クラスドライバの作り方を解説します。 PCI における割り込み(MSI)の説明もしています。複数の関連する仕様にまたがって一気通貫で説明しているのが特徴です。
目次プレビュー
  • 第1章 はじめに
  • 第2章 PCI バス
  • 第3章 xHCI ドライバの重要な概念
第1章 はじめに
  • 2.1 PCI コンフィグレーション空間
  • 2.2 BAR
  • 2.3 PCI の割り込み
  • 2.4 MSI
  • 2.5 Local APIC ID
  • 2.6 割り込みベクタ
  • 3.1 3 種のリングバッファ
  • 3.2 リングバッファ終端の認識
  • 3.3 TRB の基本とその種類
  • 3.4 ドアベルレジスタ
  • 3.5 ポート,スロット,デバイスコンテキスト
  • 3.6 エンドポイント
  • 4.1 レジスタの種類
  • 4.2 コントローラのリセット
  • 4.3 デバイスコンテキストの設定
  • 4.4 Command Ring の生成と登録
  • 4.5 Event Ring の生成と登録
  • 4.6 割り込み設定
  • 4.7 コントローラの開始
  • 5.1 ポートの状態遷移
  • 5.2 デバイス接続とポート初期化
  • 5.3 スロット割り当て
  • 5.4 デバイスへのアドレス割り当て
    • ルート文字列
  • 5.5 コントロール転送とデバイスディスクリプタの取得
  • 5.6 コンフィグレーションとインターフェース
  • 5.7 コンフィグレーションディスクリプタの取得
  • 6.1 HID クラス
  • 6.2 HID のエンドポイント
    • Interrupt エンドポイント
  • 6.3 エンドポイントの有効化
  • 6.4 キーボードからの入力
  • 6.5 モディファイアキー
  • 6.6 キーコードと ASCII 文字コード
参考文献
★★★★★ ★★★★★ 3.0 渚紗 2022年9月22日
難しいですが、勉強になります。
マニアックな情報なので、知識をつけるにはちょうど良いと思います。
何度か読んで理解したくなりました。