我从一家大型制造商那里得到了几个 1 GB 和 2 GB 版本的 iMX6 Quad 模块。在这两个方面,我都必须禁用 MMDC 仲裁才能使 DDR 压力测试成功。启用 MMDC 仲裁(MAARCR 保留为复位默认值,位 26 ARCR_ARB_REO_DIS 已清除),DDR 压力测试几乎总是在第一次迭代中失败(如果没有失败;在第二次迭代中):
DDR Stress Test Itera
tion 1
Current Temperature: 47
============================================
DDR Freq: 528 MHz
t0.1: data is addr test
t0: memcpy10 SSN x64 test
t1: memcpy8 SSN x64 test
t2: byte-wise SSN x64 test
t3: memcpy11 random pattern test
test1 Address: 0x21b80080
Data initally read was: 0x55555555
Data re-read is: 0x55555555
But pattern was: 0x804f2578
Bit location: 0xd51a702d
Error: failed to run stress test!!!
如果我在脚本中添加以下内容(在设置 CS 结束之后和写入 MDCTL 之前):
setmem /320x021b0040 =0x00000047// CS0_END
//setmem /32 0x021b0400 = 0x514201F0 // MAARCR reset default - This causes random pattern test failures in the NXP DDR Stress Test Tool
setmem /32 0x021b0400 = 0x554201F0 // MAARCR Disable MMDC arbitration - This allows the NXP DDR Stress Test to run forever without errors
setmem /320x021b0000 =0x841A0000// MMDC0_MDCTL...然后压力测试无限期地继续而不会出现错误。
我从事过很多不同的 iMX6 设计(>70),我从未见过任何板或模块需要禁用 MMDC 仲裁。
这可能是什么原因?
0