uboot启动流程分析和uboot移植(粗略分析)

BootLoad通常包括以下步骤:

1. Stage 1:

(1 )硬件设备初始化;

(2 )为加载BootLoad的stage2准备RAM空间;

(3 )复制BootLoad的stage2到RAM空间;

(4 )设置好堆栈;

(5 )跳转到stage2的C入口点。

2.Stage2:

(1 )初始化本阶段要用到的硬件设备;

(2 )检测系统内存映射;

(3 )将linux内核和根文件系统映像从Flash上读到RAM空间中;

(4 )为内核设置启动参数;

(5 )调用内核。


现在以TQ2440为目标板,以u-boot1.1.6(网上资源比较丰富,便于学习)为bootload。

移植环境
交叉编译器:crosstools_3.4.5_softfloat
CPU:S3C2440
SDRAM:64M
Nor Flash :2M
NAND Flash :64M
网卡:DM9000


1、解压源码包 

tar - jxvf u - boot- 1.1.6.tar.bz2 
解压后在当前目录下生成 u - boot- 1.1.6 目录


2、建立自己的目标板(在board目录下建立)

--> 进入 u - boot- 1.1.6 目录。

cd u-boot-1.1.6


--> 将 board/s mdk2410 目录复制为 TQ2440目录 

cp - rf board/smdk2410/ board/TQ2440 


-->  修改 smdk2410.c 为 dong2440.c 
mv board/dong2440/smdk2410.c board/TQ2440/TQ2440.c


-->  修改 Makefile 文件中 28 行的 COBJS 改为:
COBJS    := TQ2440.o flash.o


--> 建立目标板配置文件:进入 include/configs 目录下, 将 smdk2410.h 复制为TQ2440.h
cp include/configs/smdk2410.h  include/configs/TQ2440.h


--> 修改顶层(u - boot- 1.1.6 目录)Makefile  文件 1881 行,增加:

TQ2440_config   :   unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t TQ2440 NULL s3c24x0


各项的意思如下:
arm: CPU  的架构(ARCH)
arm920t: CPU  的类型(CPU),其对应于cpu/arm920t  子目录。
TQ2440:  开发板的型号(BOARD),对应于board/TQ2440  目录。
NULL:  开发者/或经销商(vender)。(此处没加vender,为NULL。)
s3c24x0:   片上系统(SOC) 。


-->  配置交叉编译器:修改顶层(u - boot- 1.1.6 目录)Makefile  文件 128 行,修改:

ifeq ($(ARCH),arm)
CROSS_COMPILE=/opt/crosstools_3.4.5_softfloat/gcc- 3.4.5- glibc- 2.3.6/arm - linux/bin/arm - linux        (这是我交叉编译器的路径)

endif


3、编译测试
进入 u - boot- 1.1.6 目录
#make mrproper  //(或# make distclean 修改顶层 Makefile 等相关文件必须执行此步骤)
#make TQ2440_config
#make all
如果没有错误,则会生成 u - boot.bin 文件。
至此,自己的目标板已经建立,下面要做的是修改一些配置,增加一些驱动。


4、增加对S3C2440的支持

5,、配置NOR Flash

6、增加对NAND Flash读写驱动

7、支持网卡DM9000

8、引导Linux内核

9、支持Yaffs2文件系统


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值