インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

17.7.2. EMAC FPGAインターフェイスの初期化

イーサネット・コントローラーを初期化してFPGA GMII/MIIインターフェイスを使用するには、特定のソフトウェア手順に従う必要があります。

FPGAインターフェイスは一般的に、有効なPHYクロックを使用してユーザーモードでアクティブにする必要があります。イーサネット・コントローラーは、静的コンフィグレーション時にリセット状態である必要があります。また、イーサネット・コントローラーのリセットが終了する前に、クロックがアクティブで有効になっている必要があります。

  1. HPSがコールドリセットまたはウォームリセットから解放されたら、リセット・マネージャーのper0modrstレジスターで適切なemac*ビットを設定し、イーサネット・コントローラー・モジュールをリセットします。
  2. クロック・マネージャーの適切なレジスターをプログラミングし、EMACコントローラーのクロックを250MHzにコンフィグレーションします。
  3. イーサネットPHYのリセットを解除し、PHYでRXクロックとTXクロックを生成できるようにします。

    FPGA GMII/MIIインターフェイスを使用する場合は、EMACのリセットを解除する前に、PHYからEMACへの安定したRXクロック (emac_clk_rx_i) およびTXクロック (emac_clk_tx_i) の供給が必要です。

    検証するレジスターはありませんが、次のカスタム・ロジック・ブロックを作成してクロスチェックを行うことができます。
    • Signal Tapを使用して確認する、もしくはRXクロックとTXクロックをクロックソースとして単純なカウンターブロックを作成し、実行されているかを確認することができます。
  4. PTPクロックソースがFPGAから提供されている場合は、FPGAのf2h_ptp_ref_clkがアクティブであることを確認します。
  5. ソフトGMII/MIIアダプターは、アクティブなクロックが伝播している状態でロードする必要があります。FPGAはユーザーモードにコンフィグレーションされている必要があります。また、ユーザーソフトFPGA IPへのリセットが、PHYクロックをHPSに伝播するために必要な場合があります。
  6. すべてのクロックソースが有効になったら、次のクロック設定を適用します。
    1. システム・マネージャーのemac*レジスターのphy_intf_selフィールドを0x0にプログラミングし、GMII/MII PHYインターフェイスを選択します。
    2. PTPクロックソースがFPGAからの場合は、システム・マネージャーのemac_globalレジスターのptp_clk_selビットを0x1に設定します。
    3. システム・マネージャーのfpgaintf_en_3レジスターでemac_*ビットを設定し、イーサネット・コントローラーFPGAインターフェイスを有効にします。
  7. ユーザーがデフォルト値とは異なる設定を必要とする場合は、EMACの静的設定をすべてコンフィグレーションします。この設定には、AxPROT[1:0] 信号およびAxCACHE信号の値が含まれます。これらの値は、システム・マネージャーのemac*レジスターでプログラミングされます。
  8. 設定が有効であることを確認後、ソフトウェアでリセット・マネージャーのper0modrstレジスターのemac*ビットをクリアして、EMACのリセットを解除することができます。
これらの手順が完了すると、一般的なイーサネット・コントローラーとDMAソフトウェアの初期化およびコンフィグレーションを続行することが可能です。
注: 上記と同じ手順を適用し、FPGAを介してHPS GMIIをRMIIまたはSGMIIインターフェイスに変換することができます。ただし、FPGAコンフィグレーションのステップ5では、インターフェイスに対する適切なソフトアダプターをロードし、それにもリセットを適用します。PHYインターフェイス・セレクトのエンコーディングは0x0で維持されます。SGMIIインターフェイスの場合は、外部トランシーバー・ロジックが追加で必要になります。FPGAを介してのイーサネット信号のルーティングは、HPSでピンに制限のあるデザインに有効です。