PCI Express* 向けRタイル Avalon® StreamingインテルFPGA IPユーザーガイド

ID 683501
日付 10/07/2022
Public
ドキュメント目次

B. ルートポートの列挙

この章では、フローチャートを示して、ルートポートの列挙プロセスについて説明します。

列挙の目的は、システム内で接続しているすべてのデバイスを検出し、接続しているデバイスごとに必要なレジスターを設定し、アドレス範囲を割り当てることです。

列挙プロセスの最後に、ルートポート (RP) により次のレジスターを設定する必要があります。
  • プライマリー・バス、セカンダリー・バス、および従属バスの番号
  • メモリーベースと制限
  • IOベースとIO制限
  • 最大ペイロードサイズ
  • メモリー・スペース・イネーブル・ビット
エンドポイント (EP) には、次のレジスターをRPによって設定することも必要です。
  • マスター・イネーブル・ビット
  • BARアドレス
  • 最大ペイロードサイズ
  • メモリー・スペース・イネーブル・ビット
  • 重大度ビット

次の図では、接続デバイスのツリーの例を示しています。これは、次に示すフローチャートのベースになります。

図 62. システム例の接続デバイスのツリー
図 63. ルートポート列挙のフローチャート

図 64. ルートポート列挙のフローチャート (続き)

図 65. ルートポート列挙のフローチャート (続き)

注意:
  1. Vendor IDおよびDevice IDの情報は、HeaderType 0とHeaderType 1の両方のオフセット0x00hにあります。
  2. PCIe Gen4の場合、Header Typeは、オフセット0x0Eh (2番目のDW) にあります。ビット0が1に設定されている場合、デバイスがブリッジであることを示します。それ以外の場合はEPです。ビット7が0に設定されている場合、これはシングル・ファンクション・デバイスであることを示します。それ以外の場合は、マルチ・ファンクション・デバイスです。
  3. RPおよび非RPデバイスの機能レジスターのリスト:
    • 0x34h – 機能ポインターです。このレジスターを使用して、ファンクションによって実装される機能のリンクリストを指し示します。
      1. RPの機能ポインター
        1. アドレス40 - 電源管理機能IDを識別します。
        2. アドレス50 - MSI機能IDを識別します。
        3. アドレス70 - PCI Express機能構造体を識別します。
      2. 非RPの機能ポインター
        1. アドレス40 - 電源管理機能IDを識別します。
        2. アドレス70 - PCI Express機能構造体を識別します。
  4. EPには、プライマリー、セカンダリー、および従属バス番号の関連レジスターはありません。
  5. Bridge/Switch IOベースレジスターおよびリミットレジスターのオフセット0x1Chです。これらのレジスターは、PCIe 4.0 Base Specificationに従って設定します。より正確な情報とフローについては、Base Specificationの7.5.1.3.6章を参照してください。
  6. EP Type 0ヘッダーの場合、BARアドレスは次のオフセットにあります。
    1. 0x10h – ベースアドレス0
    2. 0x14h – ベースアドレス1
    3. 0x18h – ベースアドレス2
    4. 0x1ch – ベースアドレス3
    5. 0x20h – ベースアドレス4
    6. 0x24h – ベースアドレス5
  7. Bridge/Switch Type 1ヘッダーの場合、BARアドレスは次のオフセットにあります。
    1. 0x10h – ベースアドレス0
    2. 0x14h – ベースアドレス1
  8. Bridge/Switch Type 1ヘッダーの場合、IOベースレジスターおよびIOリミットレジスターは、オフセット0x1Chにあります。
  9. Bridge/Switch Type 1ヘッダーの場合、プリフェッチ不可能なメモリー・ベース・レジスターとリミットレジスターはオフセット0x20hにあります。
  10. Bridge/Switch Type 1ヘッダーの場合、プリフェッチ可能なメモリー・ベース・レジスターおよびリミットレジスターはオフセット0x24hにあります。
  11. Bridge/Switch/EP Type 0および1ヘッダーの場合、バス・マスター・イネーブル・ビットは、オフセット0x04h (コマンドレジスター) ビット2にあります。
  12. Bridge/Switch/EP Type 0および1ヘッダーの場合、
    1. I/Oスペース・イネーブル・ビットは、オフセット0x04h (コマンドレジスター) ビット0にあります。
    2. メモリー・スペース・イネーブル・ビットは、オフセット0x04h (コマンドレジスター) ビット1にあります。
    3. バス・マスター・イネーブル・ビットは、オフセット0x04h (コマンドレジスター) ビット2にあります。
    4. パリティーエラー応答ビットは、オフセット0x04h (コマンドレジスター) ビット6にあります。
    5. SERR# イネーブルビットは、オフセット0x04h (コマンドレジスター) ビット8にあります。
    6. 割り込みディスエーブル・ビットは、オフセット0x04h (コマンドレジスター) ビット10にあります。