[U-Boot] [PATCH 4/5] nand: sunxi: Add multiimage preload option

Scott Wood scottwood at freescale.com
Tue May 19 01:43:40 CEST 2015


On Wed, 2015-04-29 at 17:03 +0200, Daniel Kochmański wrote:
> Patch adds support in spl_nand for preloading multiimage before
> loading u-boot into memory. It might be used in example to put in
> memory single image containing boot script, kernel and device
> tree.

Why can't the main U-Boot load it?

> Behavior is triggered, if CONFIG_SPL_NAND_MULTI_PRELOAD is defined -
> multiimage is loaded from CONFIG_SYS_NAND_MULTI_OFFS to address
> specified on image creation.
> 
> Additionally defines it in sunxi-common.h conditionally when
> CONFIG_SPL_NAND_SUPPORT is enabled. SPL tries to preload image from
> beginning of non-syndrome area.
> 
> Signed-off-by: Daniel Kochmański <dkochmanski at turtle-solutions.eu>
> Cc: Ian Campbell <ijc at hellion.org.uk>
> Cc: Hans De Goede <hdegoede at redhat.com>
> ---
> 
>  README                         |  6 ++++++
>  common/spl/spl_nand.c          | 14 ++++++++++++++
>  include/configs/sunxi-common.h |  2 ++
>  3 files changed, 22 insertions(+)
> 
> diff --git a/README b/README
> index 4ccf3cb..444b02f 100644
> --- a/README
> +++ b/README
> @@ -3719,6 +3719,9 @@ FIT uImage format:
>  		CONFIG_SPL_NAND_BOOT
>  		Add support NAND boot
>  
> +		CONFIG_SPL_NAND_MULTI_PRELOAD
> +		Preload multiimage from predefined offset in NAND.

Why is this not implied by CONFIG_SYS_NAND_MULTI_OFFS not being defined?

> +
>  		CONFIG_SYS_NAND_U_BOOT_OFFS
>  		Location in NAND to read U-Boot from
>  
> @@ -3735,6 +3738,9 @@ FIT uImage format:
>  		CONFIG_SYS_NAND_U_BOOT_START
>  		Entry point in loaded image to jump to
>  
> +		CONFIG_SYS_NAND_MULTI_OFFS
> +		Location in NAND to read multiimage from.

Why SYS and not SPL?  Why not using kconfig?

> +
>  		CONFIG_SYS_NAND_HW_ECC_OOBFIRST
>  		Define this if you need to first read the OOB and then the
>  		data. This is used, for example, on davinci platforms.
> diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c
> index 7c44de1..f87db0a 100644
> --- a/common/spl/spl_nand.c
> +++ b/common/spl/spl_nand.c
> @@ -89,6 +89,20 @@ void spl_nand_load_image(void)
>  			    (void *)spl_image.load_addr);
>  #endif
>  #endif
> +#ifdef CONFIG_SPL_NAND_MULTI_PRELOAD
> +	/* Load multiimage */
> +	puts("Preloading multiimage.\n");

This function isn't this verbose for any of the other images...

-Scott




More information about the U-Boot mailing list