AR# 47532

Zynq-7000 SoC、SDIO - インターコネクトの停止を回避するソフトウェア リセット シーケンス

説明

SDIO コントローラーでは、ソフトウェア リセット CMD および DAT に書き込むために、SDIO クロックがアクティブであることが必要です。

SDIO クロックがアクティブでない場合、インターコネクトが停止します。

ソリューション

影響:

深刻な問題ではありません。回避策を参照してください。
回避策:

コントローラーに対してソフト リセットを発行する前に、SDIO クロックをイネーブルにします。

対象となる構成:

SDIO コントローラーを使用するシステム。

対象となるデバイス リビジョン: すべて。修正予定はありません。(Xilinx Answer 47916) - 「Zynq-7000 SoC デバイス - シリコン リビジョン間の相違点」を参照してください。
回避策の詳細: ホスト ドライバー ソフトウェア フロー。


オプション: CMD および DAT リセット:

ホスト コントローラーの初期化中にホスト ドライバーで CMD および DAT リセットを発行する場合、このオプションが以下のホスト ドライバー フローに先行します。

ホスト コントローラーの初期化中にホスト ドライバーですべてのソフト リセット (Software_Reset_for_All) のみを発行する場合は、このオプションは不要です。ソフト リセット CMD および DAT ビットをクリアするには、SDIO クロックが必要です。

1) SDIO クロックをイネーブルにします。
2) CMD および DAT をリセットします。sdio.Clock_Control_Timeout_control_Software_reset[25, 26] に 1 を書き込み、その後 0 を書き込みます。

例: ホスト ドライバー フロー:

1) カードの挿入を待ちます。カード検出割り込みを設定します。

2) カードが挿入されたら Software_Reset_for_All を実行します。sdio.Clock_Control_Timeout_control_Software_reset[24] に 1 を書き込み、その後 0 を書き込みます。

3) ホスト割り込みをイネーブルにして SDIO クロックをイネーブルにします。

  • SDIO_CLK_CTRL レジスタは @0XF8000150
  • ビット 0 は SD0 Clk 制御用 (0: ディスエーブル、1: イネーブル)
  • ビット 1 は SD1 Clk 制御用 (0: ディスエーブル、1: イネーブル)

4) SD カードを初期化します。

すべてのソフト リセット:

Software_Reset_for_All をアサートすると、sdio.Clock_Control_Timeout_control_Software_reset を含むすべての SDIO レジスタがリセットされます。

リセット後、ドライバーで SDIO クロックをイネーブルにする必要があります。

AR# 47532
日付 03/19/2020
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス