[U-Boot] [PATCH v6 05/11] arm, davinci: add support for new spl framework
Scott Wood
scottwood at freescale.com
Wed Nov 2 23:53:20 CET 2011
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
More information about the U-Boot
mailing list