AR# 47517

Zynq-7000 SoC、SMC - ECC がオンの NAND でデータ トランザクション間に CS がディアサートされないことがある

説明

NAND フラッシュ コントローラーでは通常、データ転送間にチップ セレクト (CS) がディアサートされ、データ トランザクションとコマンド操作の間ではチップ セレクトがアサートのままになります。このプロトコルはほとんどのデバイスで同じですが、操作モードによっては、コントローラーでデータ操作後にコマンド操作が実行されると間違って認識され、2 つのデータ トランザクションの間でチップ セレクトがアサートのままになることがあります。

これは、ECC がディスエーブルの場合は発生しません。ECC がイネーブルの場合は、次を実行してください。

  • 書き込みにフル コマンドを使用します。
  • ブロックの読み出しの間に ECC コードを読み出します。

ソリューション

影響:

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

回避策:

  • 書き込みには、フル コマンド モードの ECC ブロックを使用します。読み出しには、ブロック間に ECC コードを読み出します。

  • 512 バイト ブロック 1 つを超えるデータを読み出しまたは書き込みする場合は、データが 1 つの割り込みなしのトランザクションで 512 バイト境界を超えるようにしてください。

対象となる構成:

ECC を含む NAND を使用するシステム

対象となるデバイス リビジョン:

すべて。修正の予定はありません。(Xilinx Answer 47916) - 「Zynq-7000 AP SoC デバイス - シリコン リビジョン間の相違点」を参照してください。

 

SMC は、データ フェーズ アクセス間で CS を Low にしておく必要のある NAND デバイスおよびこの要件のないデバイスがサポートされるように設計されています。どちらのメモリ タイプも満足させるため、ECC ブロックはコマンドを発行しようとするところであれば、ブロック転送終了後に CS をディアサートしませんが、操作モードによっては (特に列変更コマンドがイネーブルで、ソフトウェアがブロック間に ECC コードを読み出さない場合)、SMC で操作が実行されるところであると間違って認識され、CS をディアサートする要求がキャンセルされます。

影響の詳細: 上記の状況では、CS はディアサートされません。次のトランザクションを作成するために必要なデータまたはコードが同じ EBI を使用して格納される場合は、この状況によりデッドロック状態になる可能性があります。

AR# 47517
日付 05/23/2018
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス