
On 11/02/2011 01:00 AM, Heiko Schocher wrote:
+inline void hang(void) +{
- puts("### ERROR ### Please RESET the board ###\n");
- for (;;)
;
+}
Why is this inline?
diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S index 86a0dc2..339c5ed 100644 --- a/arch/arm/cpu/arm926ejs/start.S +++ b/arch/arm/cpu/arm926ejs/start.S @@ -126,7 +126,15 @@ _fiq:
.globl _TEXT_BASE _TEXT_BASE: +#ifdef CONFIG_NAND_SPL /* deprecated, use instead CONFIG_SPL_BUILD */ .word CONFIG_SYS_TEXT_BASE +#else +#ifdef CONFIG_SPL_BUILD
- .word CONFIG_SPL_TEXT_BASE
+#else
- .word CONFIG_SYS_TEXT_BASE
+#endif +#endif
/*
- These are defined in the board-specific linker script.
@@ -192,7 +200,15 @@ reset:
/* Set stackpointer in internal RAM to call board_init_f */ call_board_init_f: +#ifdef CONFIG_NAND_SPL /* deprecated, use instead CONFIG_SPL_BUILD */
- ldr sp, =(CONFIG_SYS_INIT_SP_ADDR)
+#else +#ifdef CONFIG_SPL_BUILD
- ldr sp, =(CONFIG_SPL_STACK)
+#else ldr sp, =(CONFIG_SYS_INIT_SP_ADDR) +#endif +#endif
Why does CONFIG_NAND_SPL need its own ifdef, if it's going to produce the same code as any other !CONFIG_SPL_BUILD build?
If your concerned with making it obvious what happens with the legacy NAND SPL, Just have a comment after #ifdef CONFIG_SPL_BUILD that says: /* not set with legacy CONFIG_NAND_SPL */
diff --git a/doc/README.SPL b/doc/README.SPL index b460e84..89d24a7 100644 --- a/doc/README.SPL +++ b/doc/README.SPL @@ -64,3 +64,4 @@ CONFIG_SPL_POWER_SUPPORT (drivers/power/libpower.o) CONFIG_SPL_NAND_SUPPORT (drivers/mtd/nand/libnand.o) CONFIG_SPL_DMA_SUPPORT (drivers/dma/libdma.o) CONFIG_SPL_POST_MEM_SUPPORT (post/drivers/memory.o) +CONFIG_SPL_NAND_LOAD (drivers/mtd/nand/nand_spl_load.o) diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile index 1eeba5c..28bd350 100644 --- a/drivers/mtd/nand/Makefile +++ b/drivers/mtd/nand/Makefile @@ -30,6 +30,9 @@ ifdef CONFIG_SPL_BUILD ifdef CONFIG_SPL_NAND_SIMPLE COBJS-y += nand_spl_simple.o endif +ifdef CONFIG_SPL_NAND_LOAD +COBJS-y += nand_spl_load.o +endif else COBJS-y += nand.o COBJS-y += nand_bbt.o
Space, not tab, to match the rest of the file.
+/*
- The main entry for NAND booting. It's necessary that SDRAM is already
- configured and available since this code loads the main U-Boot image
- from NAND into SDRAM and starts it from there.
- */
+void nand_boot(void) +{
- int ret;
- __attribute__((noreturn)) void (*uboot)(void);
- /*
* Load U-Boot image from NAND into RAM
*/
- ret = nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS,
CONFIG_SYS_NAND_U_BOOT_SIZE,
(void *)CONFIG_SYS_NAND_U_BOOT_DST);
The indent/alignment of continuation lines here looks odd...
-Scott