主题中讨论的其他器件:TIDEP0014、
我们正在尝试使用 MMC0接口引导至 Linux 操作系统。 似乎处理器启动并与 MMC0端口进行初始交互、它似乎与 SD 卡进行通信。 然后处理器进入速度更高的时钟(25MHz)、它仍将使用 CMD 线路与 SD 卡通信、数据看起来会在 D0线路上发送、但不会超出此范围。
我不确定要查看其他什么来调试这个问题、我们已经仔细检查并验证了自举引脚、它们是正确的。 如果有任何帮助,将不胜感激。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我们正在尝试使用 MMC0接口引导至 Linux 操作系统。 似乎处理器启动并与 MMC0端口进行初始交互、它似乎与 SD 卡进行通信。 然后处理器进入速度更高的时钟(25MHz)、它仍将使用 CMD 线路与 SD 卡通信、数据看起来会在 D0线路上发送、但不会超出此范围。
我不确定要查看其他什么来调试这个问题、我们已经仔细检查并验证了自举引脚、它们是正确的。 如果有任何帮助,将不胜感激。
是的、这是定制板、但我们基于 AM437x GP EVM 进行设计。 我已附上来自定制板和 AM437x GP EVM 的示波器截图、其中显示了启动期间的 MMC0_CLK 和 MMC0_CMD 信号。 初始化似乎在两个电路板上都发生了相同的情况、但在我们的定制电路板上之后没有发生任何情况、与 AM437x GP EVM 相比、您可以看到 CLK 和 CMD 信号在初始化之后继续。
AM437x GP EVM 启动
自定义电路板启动
下面是 MicroSD 连接器与处理器之间的原理图;
谢谢你。 仅需说明一下、您的 SYSBOOT 配置如下所示?
SYSBOOT[17]=?
SYSBOOT[16]=无关
SYSBOOT[15:14]= 01
SYSBOOT[13:12]= 00
SYSBOOT[11:5]=无关
SYSBOOT[4:0]= 01100
如果放大 MMC0活动的逻辑分析仪轨迹、您是否看到存储卡对 AM437x 的 CMD1命令或 AM437x 的 CMD55+ACMD41命令的响应?
MMC0接口上的原始突发活动实际上在目标硬件上的持续时间是否比在 EVM 上的持续时间长? 从逻辑分析器跟踪图中可以看出、它看起来更长了一点(例如、更多的事务)、但并不清楚、我不想做出假设。
添加一些有关定制板上 MMC0接口信号的更多信息。 MMC0_CLK 以250kHz 的频率开始(图像中的前三个"数据包")、当 MMC0接口开始在 MMC0_CMD 上传输数据时、时钟频率变为200kHz。
以下是在 MMC0_CMD 线路上传输的第一条消息、该消息没有响应;
MMC0_CMD 行上的下一条消息确实得到响应、数据在映像中;
MMC0_CMD 行上的消息3看起来是 CMD55、并且似乎有响应;
MMC0_CMD 上的消息4是 ACMD41消息、看起来对此也有响应;
然后、一系列 CMD55...ACMD41...CMD55...ACMD41在处理器和 microSD 卡之间继续运行。 在将时钟速度从200kHz 更改为12MHz 之前、MMC0_CMD 线路上的最后一条消息是 CMD9、它询问特定于卡的数据、似乎卡对该数据做出了响应。
然后、处理器在 MMC0_CMD 线路上发送 CMD4、然后改变时钟速度;
如果您看到 MMC0时钟速度跳至12MHz、这应该表示 MLO (第一个内核由 ROM 代码从 SD 卡复制到内部存储器)接管并执行。 ROM 代码(也称为引导 ROM)以1位模式和最慢时钟速度读取 MMC 接口、以适应各种存储器。 然后、该 MLO 重新配置时钟、以支持以更快的速率从 SD 卡读取 u-boot。 MLO 正在从内部存储器中执行。
在此期间是否有任何数据从 UART 发出?
如果 DDR 时序或任何时钟配置关闭、则可能在 UART 上看不到任何输出。 如果数据来自 UART、我将查看 DDR 时序。
不要混淆、但 MLO 是 ROM 代码在 SD 卡的 FAT 文件系统中查找的文件名。 它是 SPL 的重命名、即辅助程序加载程序。
好的、我看不到任何反射的证据、所以我不认为这是问题。 您能否在启动电路板后连接 JTAG 并查看程序计数器(PC)的位置? 如果它在0x30000-0x40000内的某个位置、那么它仍在执行 ROM。 如果它在0x40300000或更高版本中、则它在 MLO 或 u-boot 中。 缩小范围后、我们可以继续进行调试。 尝试多次此实验以确保结果一致。
此致、
James
我们正在尝试根据新的 DDR 存储器更新相应的寄存器、并且我们正在努力加载所有正确的值。 我们使用随附的电子表格作为指南、以根据本指南 http://www.ti.com/lit/an/sprac70/sprac70.pdf 查找需要加载的值。 如果能提供任何指导或帮助来纠正这些价值观、我们将不胜感激。 此外、我们如何生成自己的 GEL 文件?
DDR 数据表
e2e.ti.com/.../1586.4Gb_5F00_DDR3L.pdf
参数电子表格
e2e.ti.com/.../SPRAC70_5F00_AM437x_5F00_EMIF_5F00_Configuration_5F00_Tool_5F00_V20.xlsx