NAND flash也不行,因为NAND不能随机地址访问(NAND需要发命令按page访问、不能指定访问单个地址,所以不能直接把其存储区域编址到系统地址空间)
当前主流ARM手机平台的启动过程是多级启动(分级是因为内部SRAM大小的限制不能直接装载全部启动代码)
三星S5PV210平台ROM code(BL0 bootloader0)做的动作
- 关看门狗
- 初始化指令cache
- 初始化栈(memory map中定义的栈地址区域)
- 初始化堆(memory map中定义的堆地址区域)
- 初始化block device copy功能(即外存的读功能)
- 初始化PLL并设置系统时钟
- Copy BL1 bootloader1(相当于preloader,16KB大小)到内置SRAM
- 验证BL1的checksum,失败则从备用boot up端启动(SD channel2)
- 跳转到BL1的入口地址