1. 頭字語
2. はじめに
3. IPアーキテクチャーと機能の説明
4. 高度な機能
5. インターフェイス
6. パラメーター
7. テストベンチ
8. トラブルシューティング/デバッグ
9. F-タイル Avalon ストリーミング・インテル FPGA IP for PCI Expressユーザーガイドのアーカイブ
10. F-タイル Avalon ストリーミング・インテル FPGA IP for PCI Express ユーザーガイドの改訂履歴
A. コンフィグレーション・スペース・レジスター
B. エンドポイントモードでのアドレス変換サービス(ATS)の実装
C. TLPバイパスモードでユーザー・アプリケーションに転送されるパケット
D. Root Port BFM
E. 独立したリセットに対する分岐エンドポイントのサポート
5.1. このボードについて
5.2. クロックおよびリセット
5.3. シリアル・データ・インタフェース
5.4. Avalon-ST インターフェイス
5.5. 割り込みインターフェイス
5.6. ハードIP Statusインターフェイス
5.7. エラー・インターフェイス
5.8. 10ビットタグサポートインターフェイス
5.9. コンプリーション・タイムアウト・エラー。
5.10. Power Management Interface
5.11. ホット・プラグ・インターフェイス(RPのみ)
5.12. ペイロード出力インターフェイス
5.13. コンフィグレーションインターセプトインターフェイス(EPのみ)
5.14. ハードIPリコンフィグレーション・インターフェイス
5.15. PHYリコンフィグレーション・インターフェイス
5.16. ページリクエストサービス(PRS)インターフェイス(EPのみ)
5.17. FLRインターフェイス信号
5.18. PTMインターフェイス信号
5.19. VFエラー・フラグ・インターフェイス信号
5.20. VirtIOPCIコンフィグレーション・アクセスインターフェイス信号
6.2.3.1. デバイス・ケイパビリティー
6.2.3.2. Link Capabilities
6.2.3.3. Legacy Interrupt Pin Register
6.2.3.4. MSI-X Capabilities
6.2.3.5. MSI-X Capabilities
6.2.3.6. スロット・ケイパビリティー
6.2.3.7. レイテンシー・トレランス・レポート(LTR)
6.2.3.8. Process Address Space ID (PASID)
6.2.3.9. Device Serial Number Capability
6.2.3.10. Page Request Service (PRS)
6.2.3.11. Access Control Service (ACS) Capabilities
6.2.3.12. 消費電力マネジメント
6.2.3.13. Vendor Specific Extended Capability (VSEC)
6.2.3.14. Precision Time Measurement (PTM)
6.2.3.15. Address Translation Services (ATS)
6.2.3.16. TLP Processing Hints (TPH)
6.2.3.17. VirtIOパラメーター
7.6.1. ebfm_barwrプロシージャー
7.6.2. ebfm_barwr_immプロシージャー
7.6.3. ebfm_barrd_waitプロシージャー
7.6.4. ebfm_barrd_nowtプロシージャー
7.6.5. ebfm_cfgwr_imm_waitプロシージャー
7.6.6. ebfm_cfgwr_imm_nowtプロシージャー
7.6.7. ebfm_cfgrd_waitプロシージャー
7.6.8. ebfm_cfgrd_nowtプロシージャー
7.6.9. BFMコンフィグレーション・プロシージャー
7.6.10. BFM共有メモリー・アクセス・プロシージャー
7.6.11. BFMログおよびメッセージ・プロシージャー
7.6.12. Verilog HDL Formattingファンクション
A.3.1. Intel定義のVSEC機能ヘッダー(オフセット00h)
A.3.2. インテル定義のベンダー固有のヘッダー(オフセット04h)
A.3.3. インテルマーカー(オフセット08h)
A.3.4. JTAGシリコンID(オフセット0x0C-0x18)
A.3.5. ユーザー設定可能なデバイスとボードID(オフセット0x1C-0x1D)
A.3.6. General Purpose Control and Status Register - 0xBB0
A.3.7. Uncorrectable Internal Error Status (修正不可能な内部エラーステータス) レジスター - 0xBB4
A.3.8. Uncorrectable Internal Error Mask (修正不可能な内部エラーマスク) レジスター - 0xBB8
A.3.9. Correctable Internal Error Status (修正可能な内部エラーマスク) レジスター - 0xBBC
A.3.10. Correctable Internal Error Mask (修正可能な内部エラーマスク) レジスター
4.1.1.1. SR-IOV Implementation
VFPCIe情報へのアクセス
VFのPCIeコンフィグレーション・スペースは、ユーザー・アプリケーションが直接利用することはできません。ユーザー・アプリケーションは、次の方法を使用して必要な情報(バスマスターの有効化、MSI-Xなど)を取得できます。
- コンフィグレーションインターセプトインターフェイスを使用して特定のVFレジスターを監視する
- ハードIPリコンフィグレーション・インターフェイスを使用した特定のVFレジスターの読み出し/書き込み
VF IDは、F-タイル内で計算されます。ユーザー・アプリケーションに側波帯信号があり、rx_st_vf_num_o と rx_st_vf_active_o TLPを使用して、PF内の関連するVFを識別します。
BDFアサインメント
SR-IOVを有効にすると、ARI機能は常に有効になります。
PCIe用のF-タイルIPは、送信側でコンプリーター/リクエスターIDを自動的に計算します。アプリケーションは、以下に示すように、ヘッダーにVFおよびPF情報を提供する必要があります。(x16の場合、 sn s0またはs1のいずれかです。 x8の場合、 sn はs0)です。
- tx_st_hdr_sn [127]:0に設定する必要がある
- tx_st_hdr_sn [83]: tx_st_vf_active
- tx_st_hdr_sn [82:80]: tx_st_func_num [2:0]
- tx_st_hdr_sn [95:84]: tx_st_vf_num [11:0]
次の例では、PF1のVF3が要求を送受信しています。ReceiveTLPの場合:
- rx_st_func_num_o = 0x1は、PF1に関連付けられたVFが要求を行っていることを示します。
- rx_st_vf_num_o = 0x3
- rx_st_vf_active_o = 1は、PF1のVF3がアクティブなVFであることを示します。
PF1に関連付けられたVF3の送信TLPの場合:
- tx_st_hdr_sn [83] = 0x1
- tx_st_hdr_sn [82:80] = 0x1
- tx_st_hdr_sn [95:84] = 0x3
VFエラー・レポート
非致命的エラーメッセージを生成するには、AERをサポートしていないVFが必要です。 IPはエラーメッセージを生成しません。特定のエラー状態が発生したときに適切なメッセージを生成するのは、ユーザー・アプリケーション・ロジック次第です。 PCIe用のF-タイルIPは、これらのメッセージを生成するために必要な信号をユーザー・アプリケーション・ロジックで利用できるようにします。完了タイムアウト・インターフェイスとVFエラー・フラグ・インターフェイスは、致命的でないエラーメッセージを生成するために必要な情報を提供します。
VFからPFへのマッピング
VFからPFへのマッピングは、常に可能な限り小さいPF番号から始まります。たとえば、IPに2つのPFがあり、PF0に64のVFがあり、PF1に16のVFがある場合、VF1からVF64はPF0にマップされ、VF65からVF80はPF1にマップされます。
現在、IPコアは次のPF/VFの組み合わせのみをサポートしています。
| PFの数 | PFあたりのVFの数(PF0/PF1/PF2/PF3/PF4/PF5/PF6/PF7) | 合計VF |
|---|---|---|
| 1 | 8 | 8 |
| 1 | 16 | 16 |
| 1 | 32 | 32 |
| 1 | 64 | 64 |
| 1 | 128 | 128 |
| 1 | 256 | 256 |
| 1 | 512 | 512 |
| 2 | 16/16 | 32 |
| 2 | 32/32 | 64 |
| 2 | 128/128 | 256 |
| 2 | 256/256 | 512 |
| 2 | 32/0 | 32 |
| 2 | 0/32 | 32 |
| 2 | 64/0 | 64 |
| 2 | 0/64 | 64 |
| 2 | 128/0 | 128 |
| 2 | 0/128 | 128 |
| 2 | 256/0 | 256 |
| 2 | 0/256 | 256 |
| 2 | 512/0 | 512 |
| 2 | 0/512 | 512 |
| 2 | 1024/0 | 1024 |
| 2 | 0/1024 | 1024 |
| 2 | 2048/0 | 2048 |
| 2 | 0/2048 | 2048 |
| 4 | 128/0/0/0 | 128 |
| 4 | 0/128/0/0 | 128 |
| 4 | 256/0/0/0 | 256 |
| 4 | 0/256/0/0 | 256 |
| 4 | 1024/0/0/0/0 | 1024 |
| 4 | 0/1024/0/0 | 1024 |
| 8 | 256、0、0、0、0、0、0 | 256 |
| 8 | 0、256、0、0、0、0、0 | 256 |
たとえば、4つのPF、256 VFの組み合わせ、および[PFあたりのVFの数]列の表記256/0/0/0を示す行は、256個のVFすべてがPF0にマップされ、VFがマップされていないことを示しています。 PF1、PF2またはPF3。 SR-IOV順列により、任意のPFに初期VF割り当てを割り当てることができます。