このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。
1. インテル® Agilex™ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル改訂履歴
2. ハード・プロセッサー・システムの概要
3. Cortex-A53 MPCoreプロセッサー
4. キャッシュ・コヒーレンシー・ユニット
5. システムメモリー管理ユニット
6. システム・インターコネクト
7. HPSのブリッジ
8. DMAコントローラー
9. オンチップRAM
10. ECC (エラー検出訂正) コントローラー
11. クロック・マネージャー
12. リセット・マネージャー
13. システム・マネージャー
14. ハード・プロセッサー・システムのI/Oピンの多重化
15. NANDフラッシュ・コントローラー
16. SD/MMCコントローラー
17. イーサネット・メディア・アクセス・コントローラー
18. USB 2.0 OTGコントローラー
19. SPIコントローラー
20. I2Cコントローラー
21. UARTコントローラー
22. 汎用I/Oインターフェイス
23. タイマー
24. ウォッチドッグ・タイマー
25. CoreSightのデバッグとトレース
A. ブートとコンフィグレーション
B. HPSを介したセキュア・デバイス・マネージャーQuad SPIフラッシュ・コントローラーへのアクセス
3.5.1. 例外レベル
3.5.2. 仮想化
3.5.3. メモリー管理ユニット
3.5.4. レベル1キャッシュ
3.5.5. レベル2メモリーシステム
3.5.6. スヌープ制御ユニット
3.5.7. 暗号化による拡張
3.5.8. NEONマルチメディア・プロセッシング・エンジン
3.5.9. 浮動小数点演算装置
3.5.10. ACEバス・インターフェイス
3.5.11. アボートの処理
3.5.12. キャッシュ保護
3.5.13. 汎用割り込みコントローラー
3.5.14. 汎用タイマー
3.5.15. デバッグモジュール
3.5.16. キャッシュ・コヒーレンシー・ユニット
3.5.17. クロックソース
25.4.1. デバッグ・アクセス・ポート
25.4.2. CoreSight SoC-400タイムスタンプ・ジェネレーター
25.4.3. システム・トレース・マクロセル (STM)
25.4.4. トレースファネル
25.4.5. CoreSightのトレース・メモリー・コントローラー
25.4.6. AMBAトレース・バス・レプリケーター
25.4.7. トレース・ポート・インターフェイス・ユニット
25.4.8. NoCトレースポート
25.4.9. エンベデッド・クロス・トリガー・システム
25.4.10. エンベデッド・トレース・マクロセル
25.4.11. HPSのデバッグAPBインターフェイス
25.4.12. FPGAインターフェイス
25.4.13. デバッグクロック
25.4.14. デバッグのリセット
17.7.4. DMAの初期化
この章では、DMAレジスターを適切な順序で初期化する方法を説明します。この初期化シーケンスは、EMACインターフェイスの初期化が完了した後に実行することができます。DMAの初期化には、次の手順を実行します。
- ソフトウェア・リセットを提供し、すべてのEMAC内部レジスターとロジックをリセットします。(DMA Register 0 (Bus Mode Register) – ビット0) †
- リセット動作完了後にのみクリアされるDMA Register 0 (Bus Mode Register) のビット0をポーリングし、リセットプロセスの完了を待機します。†
- レジスター11 (AXI Status) のビットをポーリングし、それまでに (ソフトウェア・リセットの前に) 開始しているトランザクションまたは進行中のトランザクションがすべて完了したことを確認します。
注: パフォーマンス上の理由により、アプリケーションがソフトリセット後にレジスターをポーリングできない場合は、次のステップに進み、DMAの動作をトリガーする前にこのレジスターを再度確認する (ステップ12 で説明されています) ことが推奨されます。†
- DMA Register 0 (Bus Mode Register) の値を設定してBus Mode Registerを初期化します。これには、次のフィールドをプログラミングします。†
- Mixed BurstおよびAAL
- 固定バーストまたは未定義のバースト†
- バースト長の値とバーストモードの値†
- 記述子長 (リングモードが使用されている場合にのみ有効)†
- レジスター10 (AXI Bus Mode Register) でインターフェイスのオプションをプログラミングします。固定バースト長が有効になっている場合は、バス上で可能な最大バースト長を選択します (ビット[7:1])。†
- 送信および受信に適切な記述子チェーンを作成します。さらに、受信記述子がDMAによって所有されていることを確認します (記述子のビット31が設定されている必要があります)。OSFモードを使用する場合は、少なくとも2つの記述子が必要です。
- 記述子を再利用する前に、お使いのソフトウェアが3つ以上の異なる送信記述子または受信記述子をチェーン内に作成することを確認します。†
- 受信および送信記述子リストのアドレスを、送信および受信記述子のベースアドレスで初期化します (それぞれ、レジスター3: Receive Descriptor List Address Registerとレジスター4: Transmit Descriptor List Address Register)。†
- レジスター6 (Operation Mode Register) で次のフィールドをプログラミングし、動作モードを初期化します。
- 受信および送信のStore And Forward†
- Receive Threshold ControlおよびTransmit Threshold Control (RTCおよびTTC)†
- ハードウェア・フロー制御のイネーブル†
- MTLの受信FIFOバッファーおよび送信FIFOバッファーのフロー制御アクティブ化と非アクティブ化のしきい値 (RFA とRFD)†
- エラーフレームおよびサイズが満たない正当なフレームの転送イネーブル†
- OSFモード†
- 割り込み要求をクリアします。これは、設定されているステータスレジスターのビット (割り込みビットのみ) に書き込むことで行います。例えば、ビット16 (Normal Interrupt Summary) に1を書き込むことで、このビットはクリアされます (DMAレジスター5: Status Register)。†
- レジスター7 (Interrupt Enable Register) をプログラミングし、割り込みを有効にします。†
- レジスター11 (AHB or AXI Status) を読み出し、これまでのトランザクションがすべて完了していることを確認します。†
注: レジスター11 (AXI Status) を読み出した際にこれまでのトランザクションのいずれかが現在も進行中の場合は、マスター・インターフェイスでアドレス指定されているスレーブ・コンポーネントを確認することが強く推奨されます。†
- コントロール・レジスター (DMAレジスター6: Operation Mode Register) のSR (ビット1) およびST (ビット13) を設定し、受信および送信DMAを開始します。†