移植U-BOOT-2016.11到JZ2440详细教程(1)

前言

学习韦东山老师的移植U-BOOT 2012.04.01已经有一段时间了,一直想着自己来移植最新的U-BOOT,看看是否真正的掌握了移植方法。并通过这个过程,学着写一些自己的博客。

至于为什么要选择2016.11版本,而不是最新的2018.09,是因为从U-BOOT 2016.11以后的版本就不再支持S3C2410单板,以目前的能力,我们要移植U-BOOT到开发板上一定是选择当前支持的单板或者至少是相近的。 U-BOOT代码可以从这里下载,链接:[ftp://ftp.denx.de/pub/u-boot/]

因为现在我还没有从头到尾的把2016.11版本的U-BOOT移植成功,并且还在上班,所以接下来以一个模块为一个章节不定时更新。每一个章节结束,我都会附上相应的补丁文件,大家可以直接从补丁文件看到这一章修改了哪些地方。

U-BOOT 2016.11 启动流程分析

一般u-boot要做以下这些事:
a. 初始化硬件:关看门狗、设置时钟、设置SDRAM、初始化NAND FLASH
b. 如果bootloader比较大,要把它重定位到SDRAM
c. 把内核从NAND FLASH读到SDRAM
d. 设置"要传给内核的参数"
e. 跳转执行内核

下面主要列举了部分U-BOOT从上电到调用系统内核过程中的一些函数调用关系,其中加粗和斜体是移植U-BOOT中可能会修改到的函数。对部分函数进行了简单的注释,完整的启动流程分析以及函数注释可以看源代码,或者链接: [http://www.wowotech.net/u-boot/boot_flow_2.html].

  • .globl reset (arch\arm\cpu\arm920t\start.S) 1
    • bl cpu_init_crit 2
      • bl lowlevel_init(\board\samsung\smdk2440\lowlevel_init.S) 3
    • bl _main(\arch\arm\lib\crt0_64.S)
      • bl board_init_f_alloc_reserve (\common\init\board_init.c)
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值