こんにちは、
私たちはLX2160A-RDBボード用のFlexSPIドライバを開発中で、DDR(オクタルDTR)モードのサポートについて質問があります。
私たちのボードにはFlexSPIコントローラにコネクテッドされた2つのMT35XU512ABAフラッシュチップがあります。基板の回路図から、XSPI_A_DQS信号がフラッシュ(ピンC3)からLX2160Aにルーティングされていることが確認できます
プロセッサ(ピンE23)。
しかし、DTRモードを使用しようとすると、フラッシュメモリの読み取り結果が不正なデータ(すべてゼロ)を返します。SDRのオクタルモード(1-8-8)は、様々な周波数で正しく動作します。
また、LinuxカーネルではLX2160A FlexSPIドライバが設定されていることにも気づきましたFSPI_QUIRK_DISABLE_DTR。
https://lists.infradead.org/pipermail/linux-mtd/2022-July/094127.html
もう少し詳しく教えていただけますか:
1. LX2160A FlexSPIコントローラはDTR/DDRモード用のDQSベースのデータサンプリングをサポートしていますか?それともこれはシリコンの限界として知られていますか?
2. シリコンでDQSをサポートしていない場合、RDBボード上のXSPI_A_DQSピン配線の目的は何でしょうか?
3. DTRモードが機能する設定や訂正表はありますかLX2160A?
理事会:LX2160A-RDB Rev B
フラッシュ:MT35XU512ABA(*2、オクタル)
リファレンスマニュアル:LX2160Aリファレンスデザインボードリファレンスマニュアル、Rev. 5、2021年9月28日
MT35XU512ABAには、Xccelaと呼ばれる特定のSPIプロトコルが搭載されます。LX 2160Aがサポートできるかどうかは分かりません
こんにちは、
実際の答えとしては、NXPがシリコンリビジョン特有の回避策を認めない限り、Linux/LSDKのLX2160A-RDB上のオクタルDTRはサポートされていないとみなすことです。最も強力な実装証拠は、あなたが見つけたNXP Linuxパッチです。そこでは「lx2160aはDQSを実装していない」という理由でLX2160A FSPI_QUIRK_DISABLE_DTR が追加され、これがOctal DTRモードでフラッシュプローブの失敗を引き起こすと書かれています。
ご質問にお答えします。
FlexSPI LX2160A DQSベースのDTR/DDRサンプリングをサポートしていますか?
リファレンスマニュアルでは、FlexSPI IPがDQS/リードストロボサンプリングモードを持つと説明されており、 MCR0[RXCLKSRC] = 0x3 「フラッシュ提供のリードストロボとDQSパッドからの入力」を選択し、入力タイミングセクションにはフラッシュ提供のリードストロボによるサンプリングが明示的に説明されています。しかし、LinuxプラットフォームのLX2160Aデータは「DQSを実装していない」としてDTRを無効化しています。ですので、汎用的なFlexSPIのIP説明だけでシリコンが外部DQSをオクタルDTRに使える証拠LX2160Aないと思います。
LX2160A-RDBでは、なぜXSPI_A_DQSルーティングされているのですか?
DQSピンは、フラッシュメモリから提供される読み出しストロボであるだけでなく、マニュアルでは A_DQS 複数の機能を持つI/Oとして説明されています:外部読み取りストローブ、レイテンシ情報、ループバックダミー読み取りストローブなどです。また、このピンの基板レベルの負荷をループバックモードでのデータ/SCLKロードを補正することも可能だと記されています。同じFlexSPIブロックは、一部の書き込み操作において、書き込みマスク関連の信号としてDQS/RWDSも使用する。したがって、RDBルーティングはFlexSPIのピン/機能セットおよびボード互換性と整合していますが、それだけでは外部DQSベースのオクタルDTR読み取りをサポートしているLX2160A証明できません。
LX2160AでDTRを有効にするための設定や修正プログラムはありますか?
DQS モードのドキュメントに記載されている構成は、 MCR0[RXCLKSRC] = 0x3で、フラッシュメモリから提供される読み出しストローブを使用する場合は、DLL 設定としてSLVDLYTARGET=0xF 、 DLLEN=1 、 OVRDEN=0なります。シリアル ルート クロックが 100 MHz 未満の場合、マニュアルには、DLL オーバーライド モードをOVRDEN=1で使用し、 OVRDVAL調整するように記載されています。N N = 18は推奨値として示されていますが、調整が必要になる場合があります。しかし、LX2160A特有のLinuxのクセは、LX2160AでDQSが実装されていないためDTRが無効化されていると言っており、LX2160Aリファレンスマニュアル/データシート資料、RDBリファレンスマニュアル、NXP/Linuxパッチテキスト、公開エラッタスタイルの検索を確認した後でも、DQS/DTRを再有効化するLX2160Aエラタや文書化された回避策は見つかりませんでした
https://lists.infradead.org/pipermail/linux-mtd/2022-July/094127.html
ドライバの推奨位置:LX2160AはSDRオクタル 1-8-8 を使い、 FSPI_QUIRK_DISABLE_DTR を保持してください。あなたの症状(SDR Octalは動作するが、DTRの読み取りでゼロが返される)は、単純な基板配線の問題ではなく、このSoCでDTRをブロックするという上流側の決定と一致しています。
よろしくお願いします。