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.

[参考译文] Linux/AM4379:定制板 SPL 挂起

Guru**** 2601915 points
Other Parts Discussed in Thread: AM4379

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/648091/linux-am4379-custom-board-spl-hangs

器件型号:AM4379

工具/软件:Linux

大家好:

    运行预构建的 TI-SDK 内核映像时、不会从串行端口导出我的 AM4379客户电路板的任何信息。 我的 TI- SDK 版本是 最新版本。

因此、我使用仿真器调试了 SPL。 将 u-boot-spl.bi 加载到地址0x402F4000。 此 加载地址是否正确? 下图:

我发现 SPL 在 "BL main" 完成后挂起、下图是程序执行过程和挂起位置。

我 的 AM4379客户电路板 未 使用 EMMC 器件和 EPROM、DDR3 RAM 和 NAND 闪存为512M。  除此之外、电路和 TI-AM4379-EVM 几乎相同。

不过、据我了解、SPL 运行时间只是 CPU 的一个非常简单的配置、程序在 RAM 中运行、因此与外设几乎没有什么区别。 因此、我想知道我们的电路板启动 SPL 为什么不会成功。  请向我提供专家的一些建议。 非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否具有板载 ID EEPROM? 是否对其进行了编程? 否则、您需要跳过 SPL 中的 EEPROM 检查。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您回答我的问题。

    我没有板载 ID EEPROM。  但问题似乎不是 EEPROM。  由于我通过单步调试发现 SPL 引导已跳过 SPL 中断并在到达 EEPROM 之前挂起

    检查。  完成 LOW_INIT 后 、在 main (BL main)中跳转。  在_main 中执行、 当执行到 memset 时会发生异常。  在 memset 中的一个步骤中、程序不会挂起、而是使用连续

    运行将立即跳转到 SPL 中断。  我无法确定是仿真器问题还是 CCS 7.3调试设置不正确。  或者先前的 SPL 引导低电平初始化设置错误。 但它

    之前的设置似乎完全相同、并且尚未自定义。

    此外、我的"加载存储器" spl.bin 地址是0x402f4000、这是正确的加载地址吗? 如果没有、它会对调试产生影响吗? 正确的加载地址是什么?

    我的仿真器模型是 XDS200。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Alex:

    根据我的理解、您正在使用 AM437x TI PSDK v04_01_00_06。 您将在 AM437x 定制板上加载预构建的 SPL/MLO 图像。 请注意、此 SPL 预构建映像默认在 AM437x TI EVM 上运行、因此您应将其移植到定制板、具体取决于 AM437x TI EVM 和定制板之间的差异。

    作为调试方法、您可以尝试使用 UART 引导。 您可以为 UART 启动配置 AM437x 器件启动引脚、因此您应该会看到"CCCCC..." 控制台终端上的符号。 这些符号应出现在 SPL/MLO 之前、因此您将确保有关硬件设计和 UART 控制台配置的所有信息都正确无误。 然后、您可以继续移植/调试 SPL/MLO 源。

    有关更多详细信息、请参阅以下 wiki:

    processors.wiki.ti.com/.../AM335x_board_bringup_tips

    processors.wiki.ti.com/.../Processor_SDK_Bare_Metal_Examples

    processors.wiki.ti.com/.../AM43xx_Hardware_Diagnostics

    此致、
    帕维尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Pavel。  

    我使用了您提供的诊断 MLO。  获得了以下诊断结果。

    我的主板是,无 EEPROM 的客户主板、因此无法检测到版本,序列号。  

    我想问的是“Board!= Crystal”,这是否意味 着我使用的晶体与 TI 开发板不匹配,所以我将修改 SPL 启动设置?中的时钟配置

    引导异常是由于时钟配置与实际的晶振不匹配? 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Alex、

    诊断 MLO 用于 AM437x EVM、其中使用 OSC0 24MHz。

    您在 OSC0上使用的频率是多少(支持的选项为19.2MHz、24MHz、25MHz 和26MHz)? 这是连接到 OSC0_IN/XTALIN/C25和 OSC0_OUT/XTALOUT/B25引脚的时钟晶体。

    如果您在定制板上使用的频率不是24MHz、则应将其应用于 sysboot[15:14]引脚和 CTRL_STS[23:22] SYSBOOT15_14位字段中。 请参阅 AM437x TRM 第5.2.4.3节"时钟配置"

    此致、
    帕维尔