一篇uboot的移植文档(转载)
1 uboot的介绍及体系结构... 2
1.1 uboot的介绍... 2
1.2 uboot的体系结构... 2
2 uboot的运行过程分析... 3
2.1 启动模式介绍... 3
2.2 运行过程... 3
2.3 本开发板的地址分布(leopard2a)... 5
2.4 运行代码分析... 5
2.4.1 stage 1. 5
2.4.2 stage 2. 5
2.4.2.1 调用一系列初始化函数... 5
2.4.2.2 初始化网络设备... 7
2.4.2.3 进入主UBOOT 命令行... 7
3 uboot的移植和测试... 7
3.1 移植的过程... 7
3.2 移植主要修改的文件... 8
3.3 uboot网络下载功能的添加和RAM调试... 8
1 uboot的介绍及体系结构
1.1 uboot的介绍
Uboot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序, UBoot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。UBoot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。
1.2 uboot的体系结构
目录树
|--board
|--common
|--cpu
|--disk
|--doc
|--drivers
|--dtt
|--examples
|--fs
|--include
|--lib_arm
|--lib_generic
|--net
|--post
|--rtc
|--tools
2. board:和一些已有开发板有关的文件. 每一个开发板都以一个子目录出现在当前目录中,比如说: leopard2a子目录中存放与我们开发板相关的配置文件.
3. common:实现uboot命令行下支持的命令,每一条命令都对应一个文件。例如bootm命令对应就是cmd_bootm.c。
4. cpu:与特定CPU架构相关目录,每一款Uboot下支持的CPU在该目录下对应一个子目录,比如有子目录arm926ejs就是我们开发板上使用的cpu架构目录。
5. disk:对磁盘的支持。
5. doc:文档目录。Uboot有非常完善的文档,推荐大家参考阅读。
6. drivers:Uboot支持的设备驱动程序都放在该目录,比如各种网卡、支持CFI的Flash、串口和USB等。
7. fs: 支持的文件系统,Uboot现在支持cramfs、fat、fdos、jffs2和registerfs。
8. include:Uboot使用的头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目录下configs目录有与开发板相关的配置头文件,如leopard2a.h。该目录下的asm目录有与CPU体系结构相关的头文件,asm对应的是as