主题中讨论的其他器件: AM5728
您好!
在基于 AM5708的设计的电路板启动阶段、我们首先启动启动加载程序(让 ti-u-boot 代码运行、并在 BBX15 (AM5728)上启动)。
我们创建了自己的电路板文件和多路复用器、将 EMIF 数据和所有电路板细节添加到代码中、并为我们自己的设计(具有联盟 DDR3存储器)构建了该文件。
我们使用2个多路复用的2GigaBit (265MB)存储器(一个芯片 Get 的数据线路0-15、另一个具有数据线路16-31、它们都共享地址线路。
SPL (MLO 或第二级引导加载程序)启动并达到控制台访问(成功初始化 SDRAM -> DDR3)、然后尝试引导 u-boot。 我们注意到 DDR3存储器中存在一些不一致之处。
在调查和创建(简化的) DDR3 RAM 测试后、我们注意到 DDR3存储器不"负责"。 在一个电路板上、我们似乎只能使用每个32位值的高16位(其中16 LSB 大部分是相同的(0xC8FE)、它们有时会用几位更改其值。 (在内存地址上写入模式会导致此类表:
第一板:
写入0xEFFFFFFF -读取0xEFFFC8FE
写入0xFFFEFFFF -读取0xFFFEC8FE
写入0x000000001 -读取0x0000C8FE
第二板:
写入0xEFFFFFFF -读取0xEFFFFFFF (正确)
写入0xFFFEFFFF -读取0xFFFEFFFE (1位关闭)
写入0x000000001 -读取0x000000000 (1位关闭)
这似乎是第二块电路板的运行方式"更好"、但我们无法找到我们的手指来解释其原因。
我们迄今采取的行动:
-验证从 TI 输入(Excel 工作表/工具)到时序的时序(EMIF 寄存器)->确定
-使用示波器验证时钟->确定
-降低速度(将定时设置为低至400MHz)并使用示波器进行验证->确定。
-监控电压(来自我们可以保证的电压)->好的。
- XRay 出厂验证 DDR3 RAM 上的焊料->确定(未发现异常)。
-更新: 使用 JTAG 和 GEL 文件验证我们是否可以使用调试器访问 RAM (Successfull:这表明电路板1有一个油炸 RAM、因此可忽略、使用 JTAG 可调试第二个电路板、并在整个 RAM 上使用(简单) memtest 例程测试 DDR3 RAM。 (将整个 RAM 写入模式、将其读回)。
接下来、我们尝试在两个 SPL 中打印所有 EMIF 寄存器的设置、并将它们与工作中的 JTAG 示例中的设置进行比较。 请参阅随附的 diff 文件。
问题:
我们还可以通过哪些途径来调查这些问题?
我们错过了哪些步骤?
-您知道的问题?
-打开门进行检查?