AR# 72916

UltraScale/UltraScale+ (Vivado 2019.1) - レガシ割り込みに対する interrupt_disable ビット設定に PCI Express Integrated Block が正しく応答しない

説明

問題の発生したバージョン: v1.3 Rev5 (Vivado 2019.1)

修正バージョンおよびその他の既知の問題: (Xilinx Answer 65751)

レガシ割り込みを使用すると、次の手順のシーケンスによってレガシ割り込みがアサートされたままになることがあり、その結果、連続する INTx メッセージがアップストリーム送信されます。 

  1. エンドポイントによってレガシ割り込みがアサートされる (たとえば INTA)
  2. コマンド レジスタの「割り込みディスエーブル」ビットを 1'b1 に設定するために、ホストによってエンドポイント コンフィギュレーション空間に書き込まれる


PCIe 仕様によると、End Point の PCIe Integrated Block では、上記の手順 2 の後で Deassert_INTA メッセージを送信する必要があります。

これは、UltraScale または UltraScale+ デバイスの PCI Express Integrated Block では発生しません。


このアンサーは、PCI Express ソリューション センターの一部です。

(Xilinx Answer 34536)ザイリンクス PCI Express ソリューション センター

ソリューション

これは、シリコンでの既知の問題です。回避策を次に示します。

  1. エンドポイントに cfg_interrupt_int 信号をアサートします。
    これにより、ホストに assert_INTA メッセージが送信されます。
  2. ホストのドライバーによって、FPGA コンフィギュレーション空間の割り込みディスエーブル ビットが設定されます。
  3. エンドポイントからの cfg_function_status 出力の bit3 (INTx ディスエーブル) をモニターするため、ドライバーにアクセスできる FPGA にレジスタをインプリメントします。
    • FPGA コンフィギュレーション空間の割り込みディスエーブル ビットを設定解除する必要があります。コンフィギュレーション空間に割り込みディスエーブル ビットが設定されていると、cfg_interrupt_int のディアサートによって deassert_INTA メッセージが生成されません。
  1. cfg_function_status 出力の bit3 がアサートされた後で、cfg_interrupt_int をディアサートします。 エンドポイントによってホストに deassert_INTA メッセージが送信されます。


改訂履歴

2019/10/14 - 初版

AR# 72916
日付 10/14/2019
ステータス アクティブ
種類 既知の問題
デバイス 詳細 概略
IP 詳細 概略