主题中讨论的其他器件:66AK2H12
大家好、
我在 TMDSEVM6678L (修订版3B)上遇到 PCIe 引导加载程序问题。
引导加载程序基于 PDK v2.2.4中的 PCIe 驱动程序示例、该示例位于 packages/ti/drv/PCIe/example/sample/src/中。
我删除了不适用于我们的应用的内容(如出站映射)、并添加了 DDR 的初始化。
在主机端、有一个内核驱动程序、该内核驱动程序基于来自同一 PDK 的 PCIe 演示 Linux 主机加载程序、位于 packages/ti/boot/examples/PCIe/linux_host_loader/中。
我已将代码重新计入位、并删除了一些我们不需要的器件(例如 DMA 传输)。
还有一个加载器工具、用于通过内核驱动程序的器件文件将引导表二进制文件写入器件。
我随源代码附上了一个 ZIP 文件。
这在台式计算机上都可以正常工作、这意味着我可以访问各种存储器并引导各个内核。
当我尝试将其与64位 ARM 主机(更具体地说是 NXP LS1043A-RDB)配合使用时、会出现问题。
C6678的串行输出显示它完成了 PCIe 初始化。
但是、我没有访问我所期望的存储器、而且到目前为止我还不能弄清楚为什么。
我很确定我正在访问内存_ase_,因为写入和读取它实际上是有效的。
此时、我不知道问题是在引导加载程序、内核驱动程序还是加载程序工具中。
我能够使用64位 ARM 主机运行常规 PCIe 引导演示、因此我倾向于将其作为引导加载程序的问题。
首先、我想知道 RBL 如何针对 PCIe 引导模式初始化器件。
这将使我能够比较和查看我是否缺少任何步骤。
在哪里可以找到有关此信息?
任何其他提示也将不胜感激。
是否有其他人遇到过 PCIe 跨平台问题?
此致、
Martin Etnestad