2387299_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2387299_zh-CN

2387299_zh-CN

Winbond 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 设备(512 MB,无 ECC)。
- 电路板支持包为 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 启动映像。
我们正在为三条可互换的 4Gb x16 DDR4 内存条验证一套通用的时序集。
部件(Alliance AS4C256M16D4、ISSI IS43QR16256B、Winbond W664GG6RB-06),全部运行
频率为 1200 MHz。
- 为了满足最慢部件(Winbond)的 tRCD/tRP/tAA 要求(在 2400 像素档位下约为 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 系统下(启动到 shell 提示符时),它也能通过 stressapptest+ 测试。
fio(经 crc32c 验证),即使在 Tj = 84 °C 下,也能持续超过一小时。
数据无错误。
然而,Linux 在启动过程中偶尔会崩溃,并显示“内部错误:
未定义的指令”(内核.text文件损坏),内核运行约 1.1 秒后,大约
5-7% 的冷启动(通过自动冷启动循环测量)。
- 该故障与芯片无关:CL=17 映像在一秒钟内以相同的方式崩溃
这些部分(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,返回延迟为 8.0。
/ CL=16 时为 9.0 / 18。由于读取 FIFO(由 DQS 写入,由控制器读取)
时钟(参考手册 §9.3.2.2.2)处理稳态和稳态应力
我们怀疑,边缘性会在读取突发到突发转换时显现出来,其中
奇怪的 CL 的半个 DFI 时钟偏移会触发 RM 不会触发的首尾节拍极端情况。
文档。

问题:
异常CAS延迟(例如)i.MX8M Mini DDR4 PHY 支持 CL=17,采用 1:2 DFI 模式。
模式,或者对于奇数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

你好,

请尝试将 CL 值从 17 改为18,运行 DDR 测试并再次测试您的 Linux 系统,我建议您升级到更新的版本。

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)

Winbond W664GG6RB-06 DDR4-2400 17-17-17

IS43QR16256B 的第 3 个参数不同。所以您可能需要为这 3 个部分分别设置不同的参数,而不是使用一个参数来控制所有 3 个部分。看来这个问题只在冷启动时出现,对吗?

标记 (1)
无评分
版本历史
最后更新:
‎07-11-2026 02:38 AM
更新人: