arch 体系架构依赖
api 机器架构独立API,外部调用接口
实现I/O,如标准化输入输出,显示,网络API、存储API等,为cmd提供支持
board 板级依赖实现。
cmd shell命令实现
common 与架构无关的杂项独立功能
configs 板级配置文件
disk 磁盘分区实现
doc 文档
drivers 通用设备驱动程序
examples 应用示例代码
fs 文件系统实现(cramfs,ext2,jffs等)
include 头文件
lib 通用库
license
net 网络通讯实现
post 上电自检是实现
scripts 构建脚本以及Makefile
tests 各种单元测试
tools 生成S-Record或U-Boot映像的工具等。
3. 项目管理
U-Boot采用Kconfig进行项目管理,实现可裁剪可配置,新版U-Boot已支持make menuconfig功能,实现了易用的设计目标。其配置界面与内核一样。
4. 模块层次架构分析
arch 实现了不同体系结构的CPU,指令集、设备树底层抽象,利用链接绑定实现了符号入口相对位置保持不变,故才能实现将内核镜像拷贝到内存然后进行引导的功能。lib实现了初始化C运行时环境(栈/堆指针等的初始化),dts实现了设备树的底层体系架构依赖的具体抽象剥离。
machine ,由于同样的内核相同,各家芯片外设都不尽相同,所以将各自个性实现剥离实现于此,这主要体系在ARM体系的芯片,由于ARM公司售卖IP,各家芯片厂商在内核的基础上延伸出各自不同的芯片,所以需要将差异性剥离实现。