gpt4 book ai didi

linux - ROM代码如何找到u-boot启动指令

转载 作者:可可西里 更新时间:2023-11-01 11:51:32 25 4
gpt4 key购买 nike

我正在尝试了解 ARM Linux 引导过程。

这些是我的理解:

  • 在任何处理器中按下重置按钮时,它会跳转到重置向量或地址,如果是 ARM,则为 0x00 或 0xFFFF0000。
  • 此位置包含启动代码或 ROM 代码或引导 ROM 代码

我的问题是这个 Boot ROM 代码如何获取 u-boot 第一条指令的地址?

最佳答案

这取决于 SoC,用于引导的方案因 SoC 而异。它通常记录在 SoC 的引用手册中,它确实描述了该 SoC 特定的 u-boot 端口应遵循的各种约定(从哪里读取 u-boot,具体地址),以便 ROM 中的代码能够加载u-boot,最终将控制权交给u-boot。

ROM 中的这段代码可以执行如下操作:
- 如果引脚 x 为 0,则从 eMMC 的第一个扇区读取 64KiB 到片上静态 RAM,然后将控制权转移到位于 OCRAM 偏移量 256 处的代码以获取示例。
- 如果引脚 x 为 1,将 UART 配置为 19200 波特、8 位奇偶校验、无停止位,尝试使用 X-MODEM 协议(protocol)从串行端口读取 64KiB 到 OCRAM,然后将控制权转移到位于 OCRAM 偏移量 256 处的代码。

此代码通常称为辅助程序加载器 (SPL),然后负责配置 SDRAM Controller ,然后读取非u-boot的SPL部分进入SDRAM的开头,然后跳转到SDRAM中的特定地址。给定 SoC 的 SPL 应该足够小以适合 SoC 片上 RAM。在这种情况下,ROM 代码将是主引导加载程序。

以 TI AM335x Cortex-A8 SoC 为例,Technical Reference Manual 的第 26.1.6 节,更具体地说,图 26-10 解释了引导过程。 ROM 代码可能会使用一些输入引脚来指导引导过程 - 请参阅表 26-7 中的 SYSBOOT 配置引脚。参见 The AM335x U-Boot User's Guide有关更多 u-boot 特定的 AM335x 相关信息。

关于linux - ROM代码如何找到u-boot启动指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48926788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com