記事 ID: 000080831 コンテンツタイプ: トラブルシューティング 最終改訂日: 2021/08/27

インテル® FPGA P タイル / H タイルを使用し、PCI Express* でストリーミングおよびAvalon®メモリー・マップド IP をAvalon®する際に、AER (Advanced Error Reporting) で非致命的な PCIe* エラーが記録されるのはなぜですか?

環境

  • インテル® Quartus® Prime 開発ソフトウェア・プロ・エディション
  • Avalon-MM インテル® Stratix® 10 PCI Express* のハード IP
  • Avalon-ST インテル® Stratix® 10 PCI Express* のハード IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    クリティカルな問題

    詳細

    PCI Express* 向け P タイル / H タイル Avalon®・ストリーミング・インテル® FPGA IPおよび PCI Express* 向け P タイル / H タイル Avalon®・メモリー・マップド・インテル® FPGA IPは、多機能またはシングルルート I/O 仮想化 (SR-IOV) 機能が有効になっている場合に、オプションのルーティング ID 解釈 (ARI) 機能を実装します。ARI 機能には、ホスト BIOS が列挙プロセスを実行するのに役立つ next Function Number と呼ばれるフィールドが含まれています。ARI が有効で、P タイルの場合は物理機能 (PF) の数が 8 未満、H タイルの場合は 4 未満の場合、次のファンクション番号は PF 1 の値を誤って表示します。

     

    その結果、ルートポートが不正な次のファンクション番号で指す非既存の PF にコンフィグレーション要求を発行するため、AER が有効になっている場合、エンドポイントの次のエラーステータスビットが設定される可能性があります。

    • 修正可能なエラーが検出されました (デバイス・ステータス・レジスター)
    • サポートされていないリクエスト検出 (デバイス・ステータス・レジスター)
    • アドバイザリー致命的でないエラーステータス (修正可能なエラー・ステータス・レジスター)
    • サポートされていないリクエスト・エラー・ステータス (訂正不能なエラー・ステータス・レジスター)
      • Advisory Non-Fatal Error Mask Bit が [0] に設定されている場合のみ設定 (修正可能なエラーマスクレジスター)

     

    以下のビットを設定して AER が有効になっている場合、ERR_CORメッセージがルートポートに送信されます。

    • アドバイザリー「致命的でないエラーマスク」を「0」に設定 (修正可能なエラーマスクレジスター)
    • 修正可能なエラー報告有効を [1] に設定 (デバイス・コントロール・レジスター)
    • [サポートされていないリクエストレポートを有効にする] を [1] に設定 (デバイスコントロールレジスター)

     

    ルートポートでは、サポートされていないリクエストの完了ステータスを受信すると、次のビットが設定されます。

    • マスター・スプリントの受領 (セカンダリー・ステータス・レジスター)

     

    また、ルートポートでは、ERR_CORを受信すると次のビットが設定され、AER が有効になります。

    • 受け取ったERR_COR (ルートエラー・ステータス・レジスター)
    解決方法

    PCI Express* の P タイル / H タイル Avalon® ストリーミング・インテル® FPGA IPおよび PCI Express* 向け P タイル / H タイル Avalon® Memory Mapped インテル® FPGA IPの場合、ソフトウェアは列挙が行われるたびに検出されたエラーを無視できます。列挙の後にエンドポイントで次のエラーステータスビットが設定されている場合、ソフトウェアでは無視しても安全です。

    • 修正可能なエラーが検出されました (デバイス・ステータス・レジスター)
    • サポートされていないリクエスト検出 (デバイス・ステータス・レジスター)
    • アドバイザリー致命的でないエラーステータス (修正可能なエラー・ステータス・レジスター)
    • サポートされていないリクエスト・エラー・ステータス (訂正不能なエラー・ステータス・レジスター)
      • アドバイザリーの致命的でないエラー・マスク・ビット (修正可能なエラー・マスク・レジスター) が 「0」に設定されている場合のみ

     

    簡単にするために、回避策は次の手順で実行できます。

    1. 列挙が完了したら、すべての PCIe エンドポイント関数の以下のエラーレジスター (すべてのビットを分けて) をクリアします。
      1. デバイス・ステータス・レジスター
      2. 訂正可能なエラー・ステータス・レジスター
      3. 訂正不能なエラー・ステータス・レジスター
    2. 上記の PCIe エンドポイント機能に関連する PCIe ルートポートの以下のエラーレジスター (すべてのビットを唴唴的に) クリアします。
      1. セカンダリー・ステータス・レジスター
      2. ルートエラー・ステータス・レジスター
    3. PCI 列挙プロセスごとにステップ 1 とステップ 2 を繰り返します。

     

    エラーのランタイム・ポーリングが実行されている場合、この問題を他の信頼性エラーと区別するために、ポーリング・ソフトウェアで「修正可能なエラーが検出されました」、「サポートされていないリクエストの検出」、「アドバイザリー非致命的エラーステータス」および「サポートされていないリクエストエラーステータス」をチェックできます。これらの 4 ビットのみが設定されている場合、エンドポイントのエラーは PCI Express* の P タイル / H タイル Avalon® ストリーミング・インテル® FPGA IPまたは PCI Express* の P タイル / H タイル・Avalon®メモリー・マップド・インテル® FPGA IPに関連していると見なすことができます。上記のステップ 1 およびステップ 2 に記載されているエラーステータスビットをクリアすることが適切です。

     

    P タイルの場合、ユーザーロジックはコンフィグレーション・インターセプト・インターフェイス (CII) を使用して、ルートポートが Configuration Read を発行したときに ARI の次のファンクション番号を正しく宣伝できます。

    関連製品

    本記事の適用対象: 1 製品

    インテル® Stratix® 10 FPGA & SoC FPGA

    このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。