インテルのみ表示可能 — GUID: qjj1481130123441
Ixiasoft
1. インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル改訂履歴
2. ハード・プロセッサー・システムの概要
3. Cortex-A53 MPCoreプロセッサー
4. キャッシュ・コヒーレンシー・ユニット
5. システムメモリー管理ユニット
6. システム・インターコネクト
7. ブリッジ
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. システム・トレース・マクロセル
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. デバッグのリセット
インテルのみ表示可能 — GUID: qjj1481130123441
Ixiasoft
16.5.5.4. 単一ブロックまたは複数ブロックの読み出し
単一ブロックまたは複数ブロックの読み出しを実装するには、ソフトウェアで次の手順を実行します。†
- データサイズをバイト単位でbytcntレジスターに書き込みます。複数ブロックの読み出しの場合は、bytcntをブロックサイズの倍数にする必要があります。†
- ブロックサイズをバイト単位でblksizレジスターに書き込みます。コントローラーは、blksizのサイズのブロックでカードからデータが返されることを想定します。†
- カードの遅延を含む読み出し往復遅延がsdmmc_clk_dividedの半分よりも大きい場合は、card threshold control (cardthrctl) レジスターに書き込み、データブロックがカードからホストに転送されている途中でカードクロックが停止しないようにします。詳細については、カードの読み出ししきい値を参照してください。†
注: card read threshold enable (cardrdthren) ビットが0の場合、ホストシステムでは、データがFIFOバッファーに書き込まれる速度よりも速い速度でRX FIFOバッファーが読み出されるようにすることで、読み出しデータ転送中にRX FIFOバッファーがフルにならないことを保証する必要があります。これに従わない場合は、オーバーフローが発生する可能性があります。†
- 読み出すデータの開始データアドレスでcmdargレジスターを書き込みます。†
- 単一ブロックおよび複数ブロックの読み出しに向けたcmdレジスターの設定に記載されているパラメーターでcmdレジスターを書き込みます。SDカードおよびMMCカードの場合、単一ブロックの読み出しにはSD/SDIO READ_SINGLE_BLOCK (CMD17) コマンドを使用し、複数ブロックの読み出しにはREAD_MULTIPLE_BLOCK (CMD18) コマンドを使用します。SDIOカードの場合は、IO_RW_EXTENDED (CMD53) コマンドを単一ブロック転送および複数ブロック転送の両方に使用します。次の図に、CMD53のコマンド引数を示します。cmdレジスターに書き込むと、コントローラーはコマンドの実行を開始します。コマンドがバスに送信されると、Command Done割り込みが生成されます。†
- ソフトウェアでは、rintstsレジスターのdcrc、bds、sbe、およびebeビットで報告されるデータエラーの割り込みを確認する必要があります。必要に応じて、ソフトウェアでSD/SDIO STOPコマンドを送信し、データ転送を終了させることができます。†
- ソフトウェアでは、rintstsレジスターのホストのタイムアウト条件を確認する必要があります。†
- 受信FIFOバッファーデータ要求†
- ホストによるデータのスタベーション - ホストがカードからのデータに対して十分な速度でFIFOバッファーからの読み出しを行っていません。この状態を是正するには、ソフトウェアで次の手順を実行する必要があります。†
- statusレジスターのfifo_countフィールドを読み出します。†
- 対応する量のデータをFIFOバッファーから読み出します。†
どちらの場合も、ソフトウェアでFIFOバッファーからデータを読み出し、データを受信するためのスペースをFIFOバッファーに作る必要があります。†
- DTO割り込みを受信すると、ソフトウェアはFIFOバッファーから残りのデータを読み出す必要があります。†
図 57. IO_RW_EXTENDED (CMD53) のコマンド引数†