Bootloader概述
什么是Bootloader
作用
U-Boot/GRUB
嵌入式系统启动流程
复位向量
ROM Code
启动介质
U-Boot源码结构分析
目录结构
start.S
Kconfig/Makefile
U-Boot启动流程详解 (第一阶段)
CPU初始化
关闭中断
DDR/重定位
U-Boot启动流程详解 (第二阶段)
board_init_f/r
设备树
命令行初始化
U-Boot设备驱动模型 (DM)
DM框架
与传统驱动区别
添加新驱动
U-Boot命令行与脚本
printenv/setenv
bootm/tftp
脚本编写
U-Boot网络启动与TFTP
网络协议栈
TFTP客户端
加载内核/设备树
U-Boot存储设备驱动
MMC/SD
NAND/SPI Flash
FAT/ext4
U-Boot设备树支持
FDT
解析与传递
overlay
U-Boot引导Linux内核
bootm命令
zImage/Image
ATAG/设备树
U-Boot引导其他操作系统
Android boot.img
FreeBSD
裸机程序
U-Boot安全启动
签名验证
HAB
OPTEE/防回滚
U-Boot调试与测试
串口/JTAG
测试框架
启动失败排查
U-Boot移植实战 (一)
添加新板
Kconfig/设备树
编译烧录
U-Boot移植实战 (二)
DDR参数
时钟配置
串口适配
U-Boot移植实战 (三)
网络/存储驱动
环境变量分区
驱动移植
U-Boot移植实战 (四)
Falcon Mode
SPL优化
快速启动
Linux内核启动流程 (一)
内核入口/解压缩
setup_arch
控制台初始化
Linux内核启动流程 (二)
mm_init
sched_init
中断初始化
Linux内核启动流程 (三)
do_initcalls
文件系统挂载
根文件系统切换
Linux内核启动流程 (四)
init进程
用户空间初始化
系统服务
内核启动参数详解
console/root/init
chosen节点
参数传递
根文件系统构建
BusyBox
init脚本
devtmpfs/mdev
initramfs与initrd
initramfs原理
制作initramfs
内核内置
设备树详解 (DTS)
语法/节点
中断/时钟/GPIO
控制器
设备树实战
编写DTS
dtc编译
绑定/overlay
启动时间优化
Bootloader优化
bootgraph/chart
快速启动
多核启动与SMP
ARM64多核
PSCI
spin-table
实战项目:从零构建嵌入式Linux
需求/选型
U-Boot移植
内核/根文件系统
集成测试