2387299_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2387299_ja-JP

2387299_ja-JP

ウィンボンドW664GG6RB-06用IMX-8M-MINI DDRコントローラのタイミング

こんにちは、

DDR4タイミングセットが正常に動作しない理由について説明を求めています。簡単に言えば、
DDRツールによって生成されたタイミングは校正および応力試験に合格しましたが、
断続的なLinuxカーネルは起動時にクラッシュし、「未定義命令」エラーが発生します。

設定(生の事実):
- SoCはi.MX8M Mini Solo(シングルCortex-A53)、DDR4(Winbond W664GG6RB-06)です。
1200 MHz(DDR4-2400)は1:2 DFI(DDR PHYインターフェース)周波数比モードで、
単一のx16 4 Gbデバイス(512MB、ECCなし)。
- BSPはNXP L4.14.98_2.0.0(Linux 4.14.98、U-Boot 2018.03);DDRの設定は
Mscale DDR Tool v3.31(Windows版)とPHYトレーニングファームウェアで生成
v201709。同じファームウェアがYoctoでU-Bootイメージの構築に使われています。
- 3つの交換可能な4Gb x16 DDR4メモリに対して、共通のタイミングセットを1つ認定しています。
部品(Alliance AS4C256M16D4、ISSI IS43QR16256B、Winbond W664GG6RB-06)はすべて動作しています
1200MHzで。
- 最も遅い部分 (Winbond) の tRCD/tRP/tAA (2400 bin で約 14.16 ns) を満たすために、
CL=17 (17-17-17) を設定すると、ツールはそれを MR0 = 0x0864 とエンコードし、対応する
CL由来レジスタ(例:DFITMG0 = 0x038C8207、DRAMTMG2 = 0x0609050D)。
- DRAMは2400設定値で静的動作(デバイス内でDVFS/バス周波数が無効化)
そのため、Linuxによる実行時の周波数スケーリングはありません。

観察結果:
- 17-17-17構成は、DDRツールのストレステスト(約24時間)とU-Bootのmtest(約1時間)に合格します。
エラーなし。
- Linux上(シェルプロンプトに到達した起動時)ではstressapptest +にも合格します
fio(CRC32C認証済み)は、Tj = 84°Cの温度で1時間以上連続かつ一定温度で、
データエラーはゼロです。
- それにもかかわらず、Linuxは起動時に「内部エラー:
未定義命令」(破損したカーネルの.text)、カーネル開始から約1.1秒後、
コールドブートの5~7%(自動コールド電源サイクルループで測定)。
- 故障はダイに依存しない:CL=17の画像も1秒間で同じ方法でクラッシュします
これらの部分(ISSI)を使い、CL=16イメージは同じISSI上でLinuxを安定して起動します
パート。
- 両方のeven-CL構成がLinuxを安定して起動します:16-16-16(当社の長年にわたる本番環境)
タイミング)および新たに構築された18-18-18(カーネルクラッシュは見られません)—ただし、奇数CLのみです。
17-17-17は失敗。
- CL由来のレジスタのみが失敗設定と動作設定(MR0)で異なります
CASビット、DFITMG0 dfi_t_rddata_en、DRAMTMG2リードレイテンシ/rd2wr、DFITMG2 rdcslat、
ODTCFG rd_odt_delay)。

仮説:
1:2のDFI比率での奇数CASレイテンシが根本原因、すなわち読み取りデータ(リードデータ)にあると推測しています
返還レイテンシはDFIクロックでCL/2であり、CL=17の場合は整数8.5、整数8.0は非整数です
/ 9.0 で CL=16 / 18。読み取りFIFO(DQSが書き、コントローラが読み取り)以降
クロック(リファレンス・マニュアル§9.3.2.2.2)は定常状態と定常応力を扱います
通過し、エッジ性は読み取りバースト間遷移で表面が現れると推測します。ここで
奇数CLの半DFIクロックオフセットは、RMが直面しない初拍・最後のビートのエッジCASEに当てはまります
記録を残す。

質問:
CASレイテンシは奇数です(例:CL=17) は、1:2 DFI の i.MX8M Mini DDR4 PHY でサポートされています。
モード、または奇数CLに関する既知の制約/エラーはありますか?特にDDRは
ツールは独自のストレステストを通過するが限界的な奇数CL構成を生成する
実際のブートトラフィックの下で、読書を制限する推奨方法はありますか?
奇数のCLのバースト・トゥ・バーストタイミングは?

添付ファイル:カーネルクラッシュコンソールダンプ、CL=17 .dsDDRツールのスクリプト、および
ddr4_timing.c が生成されました。

どんなアドバイスでもありがたいです。

Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06

申し訳ありませんが、何らかの理由で添付ファイルが添付されませんでした。それらは以下の通りです。

Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06

以下の部品のタイミングパラメータで、CASレイテンシのtRCD(ns)tRP(ns)を確認してください。

Alliance AS4C256M16D4 DDR4-2400 17 14.1614.16

ISSI IS43QR16256B 2400Mbps 16-16-16 (-083R)

ウィンボンド W664GG6RB-06 DDR4-2400 17-17-17

IS43QR16256Bの3番目のパラメータは異なります。そのため、3つのパーツごとに専用の設定が必要になるかもしれませんが、3つのパーツすべてに1つの設定を使うのではなく。問題は起動時のみ発生するようですね?

Re: IMX-8M-MINI DDR Controller timings for Winbond W664GG6RB-06

こんにちは、

CL=17からCL=18に修正して再試し、DDRテストを実行し、Linuxを再度テストしてください。新しいバージョンへのアップグレードをおすすめします。

タグ(1)
評価なし
バージョン履歴
最終更新日:
土曜日
更新者: