u-boot启动过程【1】

u-boot的启动过程

1.start.s文件

此汇编文件是u-boot启动的第一个文件,首先确定是冷启动还是热启动,boot_cold or boot_warm

通过对r21写0x01(cold) or ox02(warm)完成。

接着在boot_warm中:

(1)判断是否定义CONFIG_COGENT,若定义 则跳转到cogent_init_8260。

 lis r4, (CFG_IMMR+IM_REGBASE)@h
 lis r3, CFG_IMMR@h
 stw r3, IM_IMMR@l(r4)
 lwz r3, IM_IMMR@l(r4)
 stw r3, 0(r0)
 lis r3, CFG_SYPCR@h
 ori r3, r3, CFG_SYPCR@l
 stw r3, IM_SYPCR@l(r4)
 lwz r3, IM_SYPCR@l(r4)
 stw r3, 4(r0)
 lis r3, CFG_SCCR@h
 ori r3, r3, CFG_SCCR@l
 stw r3, IM_SCCR@l(r4)
 lwz r3, IM_SCCR@l(r4)
 stw r3, 8(r0)                                     实际上就是对一系列的寄存器初始化,其中的宏定义在对应的/include/config/xx.h对应的处理器的头文件中定义。

(2)如果定义CFG_DEFAULT_IMMR,将CFG_IMMR写入到IMMR中对应的IMMR基地址寄存器的位置,即0x01a8

(3)bl init_8260_core 跳转,初始化内核

        这部分完成内核中大部分硬件状态和中断的出示化

(4)如果没有定义CFG_RAMBOOT,清除OR0,计算在FLASH中跳转的绝对地址。

(5)紧接着会跳转到c语言部分

cpu_init_f   board_init_f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值