系统相关
首页 > 系统相关> > linux-如何通过ROM代码找到u-boot启动指令

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

作者:互联网

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

这些是我所了解的:

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

我的查询是该Boot ROM代码如何获取u-boot first指令的地址?

解决方法:

它取决于SoC,并且用于引导的方案将因一个SoC而异.它通常记录在SoC的参考手册中,并且确实描述了各种约定(从哪个地址读取u-boot,特定地址),该SoC特定的u-boot端口应该遵循,以便ROM中的代码能够加载u-boot,最终将控制权转移到u-boot.
ROM中的代码可以执行以下操作:-如果引脚x为0,则从eMMC的第一个扇区读取64KiB到片上静态RAM,然后将控制转移到位于OCRAM偏移256处的代码. -如果引脚x为1,则将UART配置为19200波特,8位奇偶校验,无停止位,尝试使用X-MODEM协议从串行端口读取64KiB到OCRAM中,然后将控制转移到位于偏移256处的代码此代码通常被称为辅助程序加载器(SPL),然后负责配置SDRAM控制器,然后在SDRAM的开头读取u-boot的非SPL部分,然后跳转到SDRAM中的特定地址.给定SoC的SPL应该足够小以适合SoC On Chip RAM.在这种情况下,ROM代码将成为主引导加载程序.

例如,在TI AM335x Cortex-A8 SoC的情况下,Technical Reference Manual的26.1.6节(尤其是图26-10)说明了启动过程. ROM代码可能会使用某些输入引脚来引导启动过程-请参见表26-7中的SYSBOOT配置引脚.有关与u335特定的,与AM335x相关的更多信息,请参见The AM335x U-Boot User’s Guide.

标签:u-boot,arm,embedded-linux,linux
来源: https://codeday.me/bug/20191025/1927899.html