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.

[参考译文] AM6422:关于 ROM 引导处理的说明

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1500740/am6422-clarification-on-rom-boot-processing

器件型号:AM6422
主题:CSD 中讨论的其他器件

工具/软件:

我们从 SD 卡或 eMMC 引导 am64x 器件、并意识到我们使用引导模式引脚的方式可能不正确。

对于 SD 引导、我们设置 BOOTMODE[9:3]= 1011000;对于 eMMC 引导、我们设置 BOOTMODE[9:3]= 0011000。

使用此设置、我们可以在 FS *或* RAW 模式下引导、在 RAW 模式下、如果"主要"读取出现错误、则使用"备份"区域。

我们认为这适用于 SD 和 eMMC 引导、但我们倾向于在 SD 卡上使用 FS 模式、在 eMMC 上使用原始模式。

然而、"表4-4. TRM 中的"Primary Boot Mode Select"(主引导模式选择)加上"4.4.4 eMMC Boot"(4.4.4 eMMC 引导)似乎表明、我们还应该更改 BOOTMODE[7]、以便在使用 eMMC 时明确选择"RAW"模式。

那么、ROM 代码中是否有一种"自动感应"逻辑、先尝试"FS"模式、然后再尝试"原始"模式、或者我们自己弄糊涂了吗?

我们还尝试将 eMMC 器件配置为使用 boot0和 boot1分区是引导扇区、希望发现 am64x 仍会在启动时回退到"备份"偏移、但没有发生这种情况(再说一次、我们可能会犯错)-但如果不了解与 eMMC 的 ROM 交互的更多信息、我们就会猜测"正确"的行为应该是什么。

此致、

David

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

    该查询已分配给专家。 请在一天或两天内回复。

    谢谢!

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

    我认为不明显的是、如果 ROM 无法在 FS 模式下引导、它也会回退以在原始模式下尝试。  这可能是您选择 FS 模式时可在任一模式下成功引导的原因。  此外、使用回退尝试原始映像的主位置和备份位置。  实际上没有任何"自动检测"逻辑、这只是 ROM 尝试的顺序(即、如果引导引脚选择了 FS、则序列将是 FS->RAW primary->raw redundant)   

    您是正确的、以上内容适用于 UDA 模式下的 SD 和 eMMC 引导。   

    请注意、有2种 eMMC 引导模式:

    -eMMC 引导在 UDA 模式下:这在用户数据区域中使用文件系统/RAW 模式

    eMMC 引导(备用):这使用 eMMC 器件中的引导分区(仅限原始模式)

    使用引导分区时、必须使用卡上的 EXT_CSD 寄存器选择要从哪个分区引导。  ROM 将只尝试从任一分区引导,它没有从一个分区尝试的功能,然后尝试从另一个分区如果失败.  此外、在使用 eMMC 启动分区时没有"冗余"映像功能。  因此、如果 ROM 无法从初始引导分区引导、在 SD 或 eMMC (UDA 模式)引导模式中不会出现如上所述的"回退"或重试。  ROM 将进入由引导引脚定义的备用引导模式。

    此致、

    James

      

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

    您好、James:

    非常感谢迅速和明确的反应。

    我们已经猜到情况是这样的、但由于 TRM 中没有很清楚地阐明这一点、我们不确定我们是否可以依赖该行为在将来保持不变。

    这一答复使所有的疑虑都得到休息,谢谢。

    此致、

    David