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

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

3.2.2.4. VirtIO PCIコンフィグレーション・アクセス・インターフェイス

VirtIOデバイス領域にアクセスするために、pci_cfg_dataによって、サイズcap.length (1、2、または4バイト) のウィンドウが、オフセットcap.offset (cap.lengthの倍数) で指定されたcap.bar (0x0 – 0x5) に提供されます。ユーザー・アプリケーション・ロジックの詳細なインターフェイス・マッピングを次の表に示します。

VirtIOデバイスに関しては、pci_cfg_dataへのドライバー書き込みアクセスを検出すると、ユーザー・アプリケーション側のVirtIOデバイスは、pci_cfg_dataからの最初のcap.lengthバイトを使用して、cap.barで選択したBARのcap.offsetで書き込みアクセスを実行する必要があります。さらに、pci_cfg_dataへのドライバー読み出しアクセスを検出すると、ユーザー・アプリケーション側のVirtIOデバイスは、cap.barで選択したBARのcap.offsetで、長さcap.lengthの読み出しアクセスを実行し、最初のcap.lengthバイトをpci_cfg_dataに格納する必要があります。

表 16.  VirtIO PCIコンフィグレーション・アクセス・インターフェイス
信号名 方向 説明 クロックドメイン
pX_virtio_pcicfg_vfaccess_o (ここではX = 0、1) 出力

ドライバーアクセスがVFに対するものであることを示します。

対応する仮想ファンクションは、virtio_pcicfg_vfnum_oの値から識別されます。

slow_clk
pX_virtio_pcicfg_vfnum_o[VFNUM_WIDTH-1:0] (ここではX = 0、1) 出力

ドライバーの書き込みまたは読み出しアクセスの対象となる現在の物理ファンクションに関連付けられている対応する仮想ファンクション番号を示します。

virtio_pcicfg_vfaccess_o およびpci_cfg_dataへのドライバー書き込みアクセス、またはpci_cfg_dataへのドライバー読み出しアクセスによって検証されます。

slow_clk
pX_virtio_pcicfg_vfnum_o[VFNUM_WIDTH-1:0] (ここではX = 0、1) 出力

ドライバーの書き込みまたは読み出しアクセスの対象となる対応する物理ファンクション番号を示します。

pci_cfg_dataへのドライバー書き込みアクセス、またはpci_cfg_dataへのドライバー読み出しアクセスによって検証されます。

slow_clk
pX_virtio_pcicfg_bar_o[7:0] (ここではX = 0、1) 出力

PCIコンフィグレーション・アクセス構造体を保持しているBARを示します。ドライバーでは、アクセスするBARを設定するために、cap.barに書き込みます。値0x0から0x5によって、PCIコンフィグレーション・スペースの10hから開始するファンクションに属するBARを指定します。BARは32ビットまたは64ビットのいずれかです。

pci_cfg_dataへのドライバー書き込みアクセス、またはpci_cfg_dataへのドライバー読み出しアクセスによって検証されます。

対応するPFまたはVFは、virtio_pcicfg_p/vfnum_o の値から識別されます。

slow_clk
pX_virtio_pcicfg_length_o[31:0] (ここではX = 0、1) 出力

構造体の長さを示します。長さには、パディング、ドライバーで使用しないフィールド、または将来の拡張機能が含まれる場合があります。ドライバーでは、アクセスするサイズを設定するするために、cap.lengthに1、2、または4を書き込みます。

pci_cfg_dataへのドライバー書き込みアクセス、またはpci_cfg_dataへのドライバー読み出しアクセスによって検証されます。

対応するPFまたはVFは、virtio_pcicfg_p/vfnum_o の値から識別されます。

slow_clk
pX_virtio_pcicfg_baroffset_o[31:0] (ここではX = 0、1) 出力

BARに関連付けられたベースアドレスを基準にして構造体が開始する場所を示します。ドライバーでは、BAR内のオフセットを設定するために、cap.offsetに書き込みます。

pci_cfg_dataへのドライバー書き込みアクセス、またはpci_cfg_dataへのドライバー読み出しアクセスによって検証されます。

対応するPFまたはVFは、virtio_pcicfg_p/vfnum_o の値から識別されます。

slow_clk
pX_virtio_pcicfg_cfgdata_o[31:0] (ここではX = 0、1) 出力

BARアクセス用のデータを示します。pci_cfg_dataから、オフセットcap.offsetで指定されたcap.barにサイズcap.lengthのウィンドウが提供されます。

pci_cfg_dataへのドライバー書き込みアクセス、またはpci_cfg_dataへのドライバー読み出しアクセスによって検証されます。

対応するPFまたはVFは、virtio_pcicfg_p/vfnum_o の値から識別されます。

slow_clk
pX_virtio_pcicfg_cfgwr_o (ここではX = 0、1) 出力

pci_cfg_dataへのドライバー書き込みアクセスを示します。

対応するPFまたはVFは、virtio_pcicfg_p/vfnum_o の値から識別されます。

slow_clk
pX_virtio_pcicfg_cfgrd_o (ここではX = 0、1) 出力

pci_cfg_dataへのドライバー読み出しアクセスを示します。

対応するPFまたはVFは、virtio_pcicfg_p/vfnum_o の値から識別されます。

slow_clk
pX_virtio_pcicfg_appvfnum_i[VFNUM_WIDTH-1:0] (ここではX = 0、1) 入力

アプリケーション・コンフィグレーション・データ・ストレージの現在の物理ファンクションに関連付けられている対応する仮想ファンクション番号を示します。

virtio_pcicfg_rdack_i によって検証されます。

slow_clk
pX_virtio_pcicfg_apppfnum_i[PFNUM_WIDTH-1:0] (ここではX = 0、1) 入力

アプリケーション・コンフィグレーション・データ・ストレージの対応する物理ファンクション番号を示します。

virtio_pcicfg_rdack_i によって検証されます。

slow_clk
pX_virtio_pcicfg_rdack_i (ここではX = 0、1) 入力

コンフィグレーション・データをpci_cfg_dataに格納するためのアプリケーション読み出しアクセスデータackを示します。通常、妥当なackレイテンシーは10サイクル以下です。

対応する仮想ファンクションは、virtio_pcicfg_appvfnum_i の値から識別されます。

slow_clk
pX_virtio_pcicfg_rdbe_i[3:0] (ここではX = 0、1) 入力

virtio_pcicfg_data_i 内のアプリケーション・イネーブル・バイトを示します。

virtio_pcicfg_rdack_i によって検証されます。

対応する仮想ファンクションは、virtio_pcicfg_appvfnum_i の値から識別されます。

ハードIPの現在の実装では、これらの信号はHighに固定されています。

slow_clk
pX_virtio_pcicfg_data_i[31:0] (ここではX = 0、1) 入力

PCIコンフィグレーション・アクセス・データ・レジスターに格納するアプリケーション・データを示します。

virtio_pcicfg_rdack_i および virtio_pcicfg_rdbe_i によって検証されます。

対応する仮想ファンクションは、virtio_pcicfg_appvfnum_i の値から識別されます。

slow_clk