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.

[参考译文] AM5728:插入空白 SD 卡时使用 EMMC 引导

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1503902/am5728-boot-using-emmc-while-blank-sd-card-is-inserted

器件型号:AM5728

工具/软件:

您好、

我们的产品使用 AM5728 EVM 参考板。 我们已使用 SDK 的09_03_06_05版本刷写了 EMMC。 我们可以正确引导至 EMMC、一切都正常。

接下来、我们希望使用 SD 卡存储配置和其他数据。 问题在于我们插入了空白 SD 卡并尝试从 EMMC 引导、引导失败并且器件进入重新启动循环。

经过进一步调查、SPL 会询问 SD 卡、这是可以接受的。 但是、当它返回 EMMC 时、它会选择错误的硬件分区、从而导致无法成功引导。

MLO 和 uboot.img 位于 EMMC 的 boot0硬件分区中。内核位于用户分区中。

我们如何配置 SPL、使其在检查 SD 卡后从 boot0分区恢复引导?

Tim

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

    您好、Tim:

    由于 TI 的星期五/复活节假期、回复将延迟。

    此致

    Suman

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

    您好、Tim、

    SYSBOOT 引脚设置为什么?

    如何从 eMMC 正确引导?

    Unknown 说:
    我们可以正确引导到 EMMC、一切都正常。

    -Josue

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

    Josue,

    我们将不做任何修改地使用标准 AM5728 EVM 参考板。 对于该板、sysboot 引脚设置如下:

    当未插入 SD 卡时、我们能够引导至 EMMC。

    Tim

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

    Tim、  

    因此 ROM 代码将始终首先检查 SD 卡。 我很好奇、如果您要将 SYSBOOT 引脚更改为 eMMC 作为第一个引导顺序、那么您可能不会出现此问题。

    请参阅以下常见问题解答:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/959283/faq-ccs-am5728-am57xx-boot-modes-supported

    这是所有可能的引导选项。 具体请参阅最后一个示例。

    另请注意、我们的软件未验证 eMMC 引导模式、因此我们的团队不直接支持该模式。

    希望这对您有所帮助、

    Josue

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

    Josue,

    遗憾的是、我们需要引导至 SD 卡才能刷写 EMMC。 EMMC 预加载在参考板上、因此、如果我们先看看 EMMC、会导致我们无法通过闪存映像引导至 SD 卡。 此外、我们正在使用库存参考板、执行上述操作需要更改硬件、而我们不会制作板。

    TI ROM 代码正在正常工作、因为它会检查 SD 卡、找不到可引导的内容、然后转到 EMMC。 问题似乎出在 TI 的 MLO 中。 下面是我们所看到的事情

    • TI ROM 代码会检查 SD 并发现没有可引导项、然后选择从 EMMC 引导。
    • 然后、TI 的 MLO 从 EMMC boot0运行、再次检查 SD 卡。
      • 如果 SD 卡不存在、它将继续从 EMMC boot0进行引导过程。
      • 如果出现空白卡、MLO 会尝试从 SD 卡引导、失败、然后尝试回退到从 EMMC 引导。
      • 不幸的是、当它返回 EMMC 时、它会选择用户分区、而不是 boot0。

    我认为、在 arch/arm/mach-OMAP2/boot-common.c 文件的 save_OMAP-Lboot_params()函数中、MLO 正在偏离轨道。 这将设置 gd->arch.OMAP-LBOOT_MODE 变量、从而影响 MLO 的引导方式。 当存在空白 SD 卡时、它为1 (MMCSD_MODE_RAW)、当 SD 卡不存在时、它为3 (MMCSD_MODE_EMMCBOOT)。

    Tim

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

    Tim、

    您尝试更改的是预期行为、请参阅 TRM

    您是否可以尝试从用户分区引导 eMMC?