2402064_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2402064_ja-JP

2402064_ja-JP

ddr_stress_tester一部のDDRでは動作しません

私は長年ddr_stress_testerこのツールを使ってきましたが、今年、新しい製造プロセスのDDR(20nmや25nmのDDR)ではうまく動作しないことに気づきました。CPUの周波数を選択するとバイナリがフリーズすることがありました。例えば、winbond w631gu6rbやISSI IS43TR166640C-125JBLI-TRなどです。ちなみにCPUモデルはmx6solo/dlです

i.MX6DLRe: ddr_stress_tester cannot work on some DDRs

この症状は、DDRダイのプロセスノード自体というよりも、DDRの初期化/MMDC設定、あるいはボードレベルのマージンに関連している可能性が高い。NXPのドキュメントで、i.MX6Solo/DL ddr_stress_testerが20nm/25nmだからハングするという問題は見つかりませんでしたし、NXPのライブラリやコミュニティパスで部品番号、プロセスノード、「CPU周波数」のハング表現で確認してもWinbond W631GU6RBやISSI IS43TR166640C特有の情報も見つかりませんでした。

まず最初に確認すべきこと:

  • 古い固定スクリプトではなく、i.MX6/7 DDRツールフローを使用してください。
    • i.MX6/7 DDRツールは、実際のデバイス構成(密度、チップセレクト、バス幅、ボードレイアウト/スウィズリングなど)に基づいてカスタムDRAM初期化を生成およびテストすることを目的としており、 i.MX6DL/Sデバイスを明示的にサポートしています。
    • DDRベンダーまたはDDRのジオメトリ/タイミングを変更した場合は、DRAMレジスタプログラミング支援ツール/DDRツールフローを使用して.inc初期化スクリプトを再生成してください。NXPは、スクリプトは「カスタムボードとメモリに合わせて変更する必要がある場合がある」と述べています。
  • 古い校正値が依然として適用されると想定しないでください
    • このストレスツールは、i.MX6ボードに対して、書き込みレベリング、DQSゲーティング、読み書き遅延キャリブレーション、およびストレステストを実行します。
    • 周波数選択直後にハングすると、キャリブレーション完了前にDDRがすでに限界になっている可能性があります。NXPコミュニティのガイドラインでは、類似のi.MX6 DDRストレスハングは、MMDCパラメータの誤り、電力のブラウンアウト、基板ノイズ、レイアウトの問題にポイントを挙げます。
  • DDR電圧/モードおよび周波数選択を確認してください
    • i.MX6Solo/DualLite DDRパッドはLPDDR2およびDDR3/DDR3Lモードをサポートしています。
    • DDR3/DDR3L I/O電源については、i.MX6Solo/DLのデータシートの抜粋によると、DDR3は1.425–1.575 VDDR3Lは1.283–1.45 Vとされています。
    • i.MX6 DDRストレスツールは135 MHzから672 MHzまでのDDRストレステストをサポートします。まず保守的なDDR周波数を選択し、キャリブレーションが完了した後に上位に進めます。
  • 更新タイミングを確認する
    • i.MX6のケースでは、低周波ハングがMMDC0_MDREFを補正することで解決され、tREFIが3.9μsから7.8μsに変化しました
    • NXPのドキュメントでは、MMDCx_MDREFがDDRリフレッシュ動作を制御するレジスタとして示されており、一部のDDR3デバイスでは温度依存のリフレッシュ変更が必要であることも指摘されています。85℃以下の場合は64ms、85℃を超える場合は32msのリフレッシュ周期。
  • 既知のツール環境のハングアップ原因を排除する
    • U-Bootから動作する場合は、スプラッシュ画面やIPU、またはDRAMにアクセスできる可能性のあるDMAを無効にしてください。NXPは、アクティブなIPU/スプラッシュアクセスがDDRストレスフロー中にシステムがハングする可能性があると指摘しています。
    • ウォッチドッグヒューズや設定が有効かどうか確認してください。NXPは、i.MX6Soloではウォッチドッグがキャリブレーションやストレステスト中にデバイスをリセットできるDDR_Stress_Tester指摘しています。
    • JTAG版を使っている場合、DDRの周波数選択後にi.MX6のケースが停止したと報告され、その際のガイダンスはJTAGモード/接続を確認し、簡単なSDKのDDRテストと信号・電力プロービングを使うよう指示されていました。

私の推奨事項は、新しいDDR部品ごとにDDR初期化スクリプトを再生成し、低いMMDC/DDR周波数から開始し、MDREF/タイミング値をDDRデータシートと照合して確認してから、キャリブレーションを再実行することです。それでもCPU/DDR周波数選択の段階で処理が停止する場合は、その移行中にDDRの電源レールとクロックをオシロスコープで測定し、正常に動作していた古いDDRと新しいWinbond/ISSI製部品のMMDCレジスタ値を比較してください。

この問題は、まず i.MX6Solo/DL DDR の初期化とマージンの問題として対処する必要があります。NXP が 20 nm/25 nm DDR3 プロセス自体を ddr_stress_tester の非互換性として認識しているという証拠は見つかりませんでした。


Tags (1)
No ratings
Version history
Last update:
Thursday
Updated by: