Question 1:
The role of NAND_SPL folder in u-boot-2010.3: Implementation starts from Nandflash in the compilation is to build several linked files, with these several linked files generated u-boot-spl-16k.bin
nand_spl/board/samsung/smdk6400 file has config.mk,makefile and u-boot.lds three files, see these three files plus uboot root directory Makefile file can probably understand NAND _spl How this approach is implemented:
The makefile in the Uboot root directory are:
$ (obj) U-boot-nand.bin:nand_spl $ (obj) u-boot.bin
Cat $ (obj) Nand_spl/u-boot-spl-16k.bin $ (obj) u-boot.bin > $ (obj) u-boot-nand.bin
is to merge two bin files into one bin file in this way!!!
More specifically, it is in the NAND_SPL directory that U-boot-spl.bin did the following:
1. Set the CPU to SVC mode
2. Close the door to the dog and interrupt
3. Initializing the system clock
4. Disable MMU and cache
5. Initializing the SDRAM controller
6. Set the SP and jump to the Nand_boot function in the nand_boot.c just mentioned, this function initializes the NAND controller and load the U-boot.bin image after 4 K from the NAND to the SDRAM, Then jump to the beginning of U-boot.bin image to continue the work.
For specific instructions see: http://blog.csdn.net/dndxhej/article/details/8227565
Question 2:
Bootm function can only boot uimage kernel, cannot boot zimage kernel, can use uboot mkimage tool zimage converted to < Span style= "LINE-HEIGHT:26PX;" >uimage , in fact Uimage is only in Zimage adds a 64-byte header containing some kernel information, BOOTM function needs to read this information!
Included:uboot tools Mkimage How to use
u-boot-2010.3 transplant to Tiny6410 problem summary