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:MLO 的 U-boot 加载地址

Guru**** 2540810 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600675/linux-u-boot-load-address-for-mlo

工具/软件:Linux

您好!

我正在尝试从从从 nand 闪存运行的 MLO 加载独立程序。

默认情况下,代码中的 MLO 加载地址为0x80008000,U-boot 从 git 成功启动。

我首先需要运行一个独立的输出、该输出应加载到 0x80000000 (uC/OS)中、因此我将加载地址从 0x80008000更改为  0x80000000、应用程序启动正常。

然后我刚刚检查了 u-boot 是否也可以使用相同的 MLO 运行(载入到0x80000000中),意外的是它启动时没有出现任何问题。

有人能解释一下 吗?

谢谢、

已运行  

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

    您好 Ranchu、

    由于 MLO 将 uboot 或任何代码复制到 RAM 中的已知位置(如0x80008000 (或0x8000000))、MLO 还可以确保执行跳转到该位置。 只要位置有效、并且没有覆盖保留区域(例如从 MLO 传递到 uboot 的参数)。 如果存在保留区域、则会损坏该区域、因此它应该起作用。

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

    我忘记了在将 MLO 加载地址更改为0x80000000后、我没有对 u-boot.bin 进行任何更改。
    因此、我还不了解:
    为什么对于一个应用程序(uC/OS)、地址应该是0x80000000、而对于另一个应用程序(u-boot)、如果是0x80000000或0x80008000、则无关紧要(两者中启动了相同的 bin 文件!)

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

    Uboot 不需要从何处加载 Uboot、除非其中的某些存储器区域因使用而进行了硬编码、并且该存储器区域与 Uboot 加载的地址重叠。 情况可能并非如此。