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/AM5728:引导在 MLO 中挂起

Guru**** 2542360 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/618552/linux-am5728-boot-hangs-in-mlo

器件型号:AM5728

工具/软件:Linux

您好!

我使用 ti-processor-sdk-linux-am57xx-evm-02.00.02.11启动我自己的 AM5728板、并且它成功了。

最近、我想更新处理器 SDK 版本、并下载 ti-processor-sdk-linux-am57xx-evm-04.00.00.04。  我更改了一些配置以调整电路板、并构建 u-boot-2017.01+gitAUTONIC+9fd60700db-g9fd60700db。 那么我无法从 UART 获取任何消息。

我通过  设置电路板上的 LED 来跟踪 MLO 代码。 我在下面的源代码中找到了这个 CPU 模块存根:
===================================================================================================
clrsetbits_le32 (((*Ctrl)->Ctrl_core_SMA_sw_0、CTRL_Isarit_mask、
隔离<< CTRL_Sar隔离_SHIFT);
===================================================================================================  

我已阅读 https://e2e.ti.com/support/arm/automotive_processors/f/1020/p/582534/2191388。 但是、我不认为我的硬件损坏了、因为我可以通过另一个旧版本文件 MLO 和 u-boot 来启动它。

可以有人给我一些建议吗? 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Carolyn、

    您是否检查了 DDR 时序? 请检查 此主题。

    此致、
    Kemal

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

    您好!  

    除了 Kemal 的答复之外。  

    您能否总结一下您在 u-boot-2017.01+gitAUTONIC+9fd60700db-g9fd60700db 中所做的修改?

    您还可以在 u-boot 中启用调试输出吗? 在 am57xx_evm.h 中添加#define debug 并共享输出。

    此致、
    Yordan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Kemal 和 Yordan、
    它发生在 do_set_mux32之前、因此即使我在 h 文件中添加了"#define debug"、我也无法从 UART 获取任何消息或输出。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kernal 和 Yordan、

    我今天再次测试了 uboot。 该错误发生在'arch/arm/mach-omap2/hwinit common.c::early _system_init::prcm_init'中。

    由于我们使用 UART1作为 UART 输出:
    1.我修改了 EARLY_padconf、将 UART2更改为 UART1。
    2.我在 board/ti/am57xx/Kconfig 中将 CONS_INDEX 从“默认3”更改为“默认1”。
    3.我在 am57xx_evm.h 中将#define CONSOLEDEV "ttyO2"更改为"ttyO0"
    我修改了 arch/arm/mach-omap5/hw_data.c:::ioregs_dra7xx_ES1、因为我们板中的 DDR3不需要 ECC。
    5.我在 am57xx_evm.h 中添加了#define debug
    6.我在 arch/Kconfig 中将“Prompt“Architecture select”(提示“架构选择”)从“Default SANbox”(默认 SANbox)更改为“Default arm”(默认 ARM)

    我没有从 UART 收到任何消息。 我已经检查了 UART 的寄存器、UART1的时钟和引脚多路复用器都正常。 MLO 在'arch/arm/mach-omap2/clocks-common.c:::prcm_init:::scale_vcores::::re重 校准_iodelay'中挂起、CPU 模块在以下源代码中被占用:
    ===================================================================================================
    clrsetbits_le32 (((*Ctrl)->Ctrl_core_SMA_sw_0、CTRL_Isarit_mask、
    隔离<< CTRL_Sar隔离_SHIFT);
    ===================================================================================================

    我不知道这个问题。 可以给我一些建议吗? 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我喜欢这个问题。 我在 u-boot 2017.01中重新编译了 DTB 文件、并使用新的 DTB 更改了由 u-boot 2016.05编译的旧 DTB。 我现在启动了内核。
    有人能告诉我为什么旧的 dtb 文件是无用的? 谢谢。