启动流水线 : BootRom -----------> Preloader ----------->LK ----------->linux kernel
这里只启动到内核,init进程到安卓系统待下次总结
1 官方启动流程;
Boot rom is activated when the device is powered on.
Boot rom initializes software stack ,communication ports,and bootable storages.
Boot rom loads the pro-loader from storage to L2 Share Sram since DRAM is not initialized yet.
Boot rom jumps to pre-loader and executes.
Pre-loader initializes DRAM and loads U-Boot to DRAM
Pre-loader jumps to U-Boot/LK and executes then U-Boot/lK does some initalizations ,such as display.
U-Boot/LK loads the boot image,including the Linux kernel and the ramdisk,from storage to DRAM.
U-Boot/LK jumps to linux kernel and executes.
以下为翻译版本,涵盖bootrom 到linux kernel整个过程;
1,设备上电时,Bootrom被激活;
2,Bootrom 初始化软件栈,通信端口,和启动存储设备(emmc,nand...);
3,Bootrom 从启动设备(emmc,nand..)中加载pre-loader到内部SRAM中,此时DRAM还未初始化;
4,Bootrom 跳转到pre-loader并继续执行;
5,pre-loader 初始化DRAM并加载UBOOT/lk到DRAM中;
6,pre-loader 跳转到uboot/lk并执行,然后uboot/lk会做一些初始化,例如显示设备(lcd);
7,uboot/lk 从启动设备中加载boot image 包括linux kernel和ramdisk到DRAM;
8,uboot/LK跳转到linux kernel并继续执行;
Pre-Loader 流程:
little kernel(LK)流程
这就是从bootrom到linux kernel的全过程,先建立系统思维,以后再详细分析理解!!!