aboot里boot_linux_from_mmc的粗略流程图如下

整个boot分区由image头,kernel,rootfs,dtb,签名组成。
boot.img的头部其实就是一个结构体struct boot_img_hdr。从boot分区读取出这个头信息就可以得知
- kernel的大小
- kernel加载到内存且解压缩后应该copy到RAM的哪个物理地址地址,这便是内核的入口地址
- rootfs的大小
- rootfs应该加载到SDRAM的哪个地址
读出的头部信息还会保存到一个scratch_address的位置,这个位置的定义在apps_proc\bootable\bootloader\lk\target\mdm9607\rules.mk
base address = 0x80000000
struct boot_img_hdr
{
本文介绍了Little Kernel(LK)中的boot_linux_from_mmc流程,详细阐述了boot分区的结构,包括image头、kernel、rootfs、dtb和签名。boot.img头部包含kernel和rootfs的大小以及加载地址信息,保存在特定的scratch_address。使用mkbootimg工具创建boot image,对于gzip格式,会先解压缩再拷贝到内存相应地址,并通过boot_linux跳转启动。
订阅专栏 解锁全文
1427

被折叠的 条评论
为什么被折叠?



