您好!
一位客户正在尝试让 EMIF 为其定制的 AM4384板工作。
使用的存储器是 Micron B2432B4MA-1DIT-F 256MB LPDDR2-533、EVM 的显著区别在于使用24MHz 主晶体。 电路板正在顺利引导至 u-boot-spl (修改的 u-boot-2017.01+gitAUTOINC+53133404c8-g53133404c8、EVM 上相同的未修改源代码工作)、但内存访问以奇怪的模式损坏。
由于 CPU 在访问错误配置的 DRAM 后立即崩溃、我们在中写入一个模式`void board_init_f (ulong dummy)`、并在之后立即中止启动。 然后通过 JTAG 手动完成模式的验证/解释。 值本身是可以的(例如、我们可靠地读取写入的任何值)、但数据似乎在其突发组内发生了移动(在读取或写入期间)。
位移模式如下所示:
目标地址 偏移 读回地址
0x0 0x20 0x20
0x4. 0x20 0x24
0x8. 0x10 0x18
0xC 0x10 0x1C
0x10 0 0x10
0x14 0 0x14
0x18 -0x10 0x8
0x1C 0x10 0xC
0x20 0x20 0x40
在时钟侧、我们不会怀疑问题、因为其中一条 DQS 线显示了清晰稳定的266MHz 信号。
您能帮我们找出问题吗?
随附以下文件(但不在此线程中):
* u-boot_sumup-solo.diff:u-boot-2017.01+gitAUTOINC+53133404c8-g53133404c8和修改版本之间的差异
* EMIF-regs.txt:所有 EMIF 寄存器的转储
* memdump.txt:通过 JTAG 观察到的模式的 Memdump
* AM43xx_DDR_register_calc_tool_sumup.xls:用于计算修改后的 EMIF 寄存器的 xls 文件
谢谢
Fred