* ****************************** Loongembedded ******* *************************
Author: loongembedded (Kandi)
Time: 2011.7.26
Category: wince bootloader Development
* ****************************** Loongembedded ******* *************************
Irom boot (internal Rom booting), irom boot refers to the method of starting from the onenand, SD/mmccard and NAND flash storage device, see, describes the Boot Mode Supported by 6410.
Figure 1
1. irom startup method Diagram
Figure 2
The startup process is further refined into the following process, which can be understood in conjunction with figure 1 and figure 2:
1) After the processor is powered on, when om [] = 1111, execute the boot codes in irom. This startup code is called bl0, which will perform initialization.
2) According to the GPN [] pin settings, if it is the NAND start medium identified in Figure 1, then GPN [] = 101, in this way, bl0 reads the first 4 kb program from BL1, that is, the 4 kb program that reads pages 0th and 0th from the 1st blocks of NAND to stepping stone (0x0c000000) address memory run, the 4 kb Program (in the real6410 Development Board Chinese NBL. nb1, 4 kb) is removed. RDATA.
3) BL1 can initialize the system clock, UART, SDRAM, and other devices, and then copy bootloader2 (bl2) to the memory of the SDRAM (0x800000000) address.
4) then jump to the "bl2" section in the SDRAM to continue running. bl2 supports more powerful functions. In this development board design, bl2 copies eboot to the memory of the SDRAM address (0x8003000.
5) then jump to the eboot in the sdram and continue running. eboot further initializes the hardware and copies the wince kernel image to the memory address (0x80100000) of the SDRAM.
6) it is best to start executing NK in SDRAM.
During the entire startup process above, irom is the first to be run, and it will first perform some initialization. The specific irom process is as follows:
1) Disable watch-dog
2) initialize TCM
3) initialize the device copy function to copy BL1 to steppingstone.
4) initialize the stack Area
5) initialize the PLL
6) initialize the Instruction Cache
7) initialize the heap Area
8) Copy BL1 to steppingstone.
9) Verify BL1
10) Jump to steppingstone to run
2. irom startup Flowchart
To better understand the irom startup process, see the following flowchart:
Figure 3
3. Boot block allocation (BOOT block assignment) based on the irom Boot Mode of NAND Flash)
Figure 4