インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

18.6.2.1. ホストの初期化

電源投入後、USBポートはデフォルトモードになります。USBケーブルにVBUSは適用されていません。次のプロセスにより、USB OTGコントローラーをUSBホストとしてセットアップします。

  1. USBポートへの電力供給を行うには、ソフトウェア・ドライバーで、Host Mode Registers (hostgrp) グループのHost Port Control and Status Register (hprt) にあるPort Power (prtpwr) ビットを1に設定します。この動作は、VBUS信号をUSBリンクで駆動します。

    コントローラーは、USBリンクで接続が検出されるのを待機します。

  2. USBデバイスが接続すると、割り込みが生成されます。hprtのPort Connect Detected (PrtConnDet) ビットが1に設定されます。
  3. ポート接続を検出すると、ソフトウェア・ドライバーは、hprtのPort Reset (prtrst) ビットを1に設定してポートリセットを開始します。
  4. ソフトウェア・ドライバーは、速度の列挙がUSBリンクで完了するまで、少なくとも10ms待機する必要があります。
  5. 10msが経過すると、ソフトウェア・ドライバーはprtrstを0に戻し、ポートリセットを解除します。
  6. USB OTGコントローラーは割り込みを生成します。hprtのPort Enable Disable Change (prtenchng) ビットおよびPort Speed (prtspd) ビットは、接続されているデバイスの列挙された速度を反映するように設定されます。

    この時点で、ポートは通信可能になります。キープアライブまたはSOFパケットがポートで送信されます。USB 2.0対応デバイスが正しく初期化されない場合は、そのデバイスはUSB 1.1デバイスとして報告されます。

    Host Frame Interval Register (hfir) は、対応するPHYクロックの設定で更新されます。SOFパケットの送信に使用されるhfirは、Host Mode Registers (host grp) グループにあります。

  7. ソフトウェア・ドライバーでは、Global Registers (globgrp) グループの次のレジスターを、記載されている順にプログラミングする必要があります。
    1. Receive FIFO Size Register (grxfsiz) - 受信FIFOバッファーのサイズを選択します
    2. Non‑periodic Transmit FIFO Size Register (gnptxfsiz) - 非周期的なトランザクションに向けた非周期的送信FIFOバッファーのサイズと開始アドレスを選択します
    3. Host Periodic Transmit FIFO Size Register (hptxfsiz) - 周期的なトランザクションに向けた周期的送信FIFOバッファーのサイズと開始アドレスを選択します
  8. システム・ソフトウェアは、少なくとも1つのチャネルを初期化して有効にすることで、USBデバイスとの通信を行います。