S3C6410启动流程
首先,看一下S3C6410启动流程
① iROM supports initial boot up : initialize system clock, D-TCM, device specific controller and booting device.
② iROM boot codes can load 4KB of bootloader to stepping stone. The 8KB boot loader is called BL1.
③ BL1: BL1 can initialize system clock, UART, and SDRAM for user. After initializing, BL1 will load remaining boot loader which is called BL2 on the SDRAM
④ Finally, jump to start address of BL2. That will make good environment to use system.① 初始化时钟等
② 如果是nandflash启动,nandflash控制器会把nandflash的前4k区域,拷贝到内置SRAM(大小4k)
③ BL1这4k,可以初始化系统时钟,UART,和SDRAM。初始化完成以后,会拷贝BL2到SDRAM中
④ 跳转到BL2的加载地址。再将OS拷贝到SDRAM,跳转到OS的加载地址
S5PV210启动流程
增加了iROM大小,增加了内置SRAM大小
BL1 max. size is 16KB. BL2 max. size is 80KB
① iROM can do initial boot up : initialize system clock, device specific controller and booting device.
② iROM boot codes can load boot-loader to SRAM. The boot-loader is called BL1. then iROM verify integrity of BL1 in case of secure boot mode.
③ BL1 will be executed: BL1 will load remained boot loader which is called BL2 on the SRAM then BL1 verify integrity of BL2 in case of secure boot mode.
④ BL2 will be executed : BL2 initialize DRAM controller then load OS data to SDRAM.
⑤ Finally, jump to start address of OS. That will make good environment to use system.① …
② iROM拷贝BL1到SRAM中
③ BL1加载,并拷贝BL2到内置SRAM中
④ BL2加载,并拷贝OS到SDRAM中
⑤ 跳转到OS的加载地址
Memory Map
As BL1 doesn’t need header information through UART/USB boot mode, BL1’s code base address is 0xd002_0000. In other cases except UART/USB boot mode, BL1 should have header information and It’s code base address is 0xd0020010
如果是SD卡启动,BL1的起始地址是0xd0020010。前4个字节中,校验码是必须的,也就是BL1数据(16KB-16Byte)的校验和