ARM Core: Key components for executing assembler
Rom: factory-cured code for execution after arm power-up, copy the front code (bootloader code) of the NAND flash in the size of SRAM into SRAM, and the CPU jumps to the SRAM's 0x0 position
SRAM (on-chip, 4k): In the implementation of NAND flash in the first small segment code (4KB or so), initialize the sdram/ddr, and the remaining bootloader code in NAND flash into the SDRAM, and finally jump into the SDRAM continue to execute
sdram:mini2440 memory, when entering SDRAM from SRAM, start executing the rest of bootloader code, load the kernel into memory (kernel exists in memory), and then enter the kernel to continue to run normally after loading.
Nor Flash: With a common SRAM interface, can directly access the memory, boot time 0 address point to Norflash, suitable for code storage and EIP
NAND flash: Often used to store large data
When the mini2440 starts, it starts from 0x00 and is divided into NAND flash and NOR flash.
when arm starts, the internal structure is roughly the following :
1.Nor Flash has its own address lines and data lines, can be similar to the memory of random access, nor flash can be directly run the program, so nor flash can be used directly to boot, nor Flash will be launched when the address mapped to 0x00. MINI2440 is directly to the directly burn the Vivi on NOR Flash.
2.Nand Flash is an IO device, data, address, control lines are common, need to control the software zone reading timing, so can not be like nor flash, memory-like random access, can not be EIP (on-chip running), and therefore can not be directly as boot.
Mini2440 bootloader burning to NAND flash, because in mini2440 there is a built-in SRAM, called Stepping stone (stepping stone), when the system starts to power up, the NAND The original 4KB copy of the content on the flash is executed in the SRAM, which enables booting from NAND flash. If the bootloader is less than 4KB (like Vboot), in the SRAM can boot, greater than 4KB words (u-boot,vivi), in the SRAM to do some basic initialization, and then the remainder of the bootloader copy into the SDRAM (> 0x30000000).
We use mini2440, often through nor flash launch, into the Vivi menu (mini2440 nor Flash has been burned to the Vivi), after the USB download function via Vivi, put the other bootloader under the NAND In Flash, after the download is complete, start with NAND flash and test our bootloader.
mini2440 start-up mechanism---from the Linux community