1、首先弄清楚什么是u-boot
Uboot是德国DENX小组的开发,它用于多种嵌入式CPU的bootloader程序, uboot不仅支持嵌入式linux系统的引导,当前,它还支持其他的很多嵌入式操作系统。
除了PowerPC系列,还支持MIPS,x86,ARM,NIOS,XScale。
2、下载完uboot后解压,在根目录下,有如下重要的信息(目录或者文件):
board common cpu disk Doc drivers fs include Lib_xxx net tools
以下为为每个目录的说明:
Board:和一些已有开发板有关的文件。每一个开发板都以一个子目录出现在当前目录中,子目录存放和开发板相关的配置文件。它的每个子文件夹里都有如下文件(以ar7240/ap93为例):
Makefile
Config.mk
Ap93.c 和板子相关的代码
Flash.c Flash操作代码
u-boot.lds 对应的链接文件
common:实现uboot命令行下支持的命令,每一条命令都对应一个文件。例如bootm命令对应就是cmd_bootm.c
cpu:与特定CPU架构相关目录,每一款Uboot下支持的CPU在该目录下对应一个子目录,比如有子目录mips等。它的每个子文件夹里都有入下文件:
Makefile
Config.mk
Cpu.c 和处理器相关的代码s
Interrupts.c 中断处理代码
Serial.c 串口初始化代码
Start.s 全局开始启动代码
Disk:对磁盘的支持
Doc:文档目录。Uboot有非常完善的文档。
Drivers:Uboot支持的设备驱动程序都放在该目录,比如网卡,支持CFI的Flash,串口和USB等。
Fs:支持的文件系统,Uboot现在支持cramfs、fat、fdos、jffs2和registerfs。
Include:Uboot使用的头文件,还有对各种硬件平台支持的汇编文件,系统的配置文件和对文件系统支持的文件。该目下configs目录有与开发板相关的配置文件,如ar7240_soc.h。该目录下的asm目录有与CPU体系结构相关的头文件,比如说mips对应的有asm-mips。
Lib_xxx:与体系结构相关的库文件。如与ARM相关的库放在lib_arm中。
Net:与网络协议栈相关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现。
Tools:生成Uboot的工具,如:mkimage等等。