[U-Boot] [PATCH] nand_spl: nand_boot.c: Init nand_chip.options to 0

Scott Wood scottwood at freescale.com
Wed May 4 19:30:29 CEST 2011


On Wed, 4 May 2011 11:44:44 +0200
Stefan Roese <sr at denx.de> wrote:

> Patch 65a9db7b [nand_spl: Fix large page nand_command()] broke
> nand booting on canyonlands. "options" has to be initialized to
> 0. If not, boards might have the NAND_BUSWIDTH_16 bit set,
> resulting in wrong offset calculation.
> 
> Signed-off-by: Stefan Roese <sr at denx.de>
> Cc: Scott Wood <scottwood at freescale.com>
> Cc: Alex Waterman <awaterman at dawning.com>
> ---
>  nand_spl/nand_boot.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/nand_spl/nand_boot.c b/nand_spl/nand_boot.c
> index cefeb91..62303aa 100644
> --- a/nand_spl/nand_boot.c
> +++ b/nand_spl/nand_boot.c
> @@ -232,6 +232,7 @@ void nand_boot(void)
>  	nand_info.priv = &nand_chip;
>  	nand_chip.IO_ADDR_R = nand_chip.IO_ADDR_W = (void  __iomem *)CONFIG_SYS_NAND_BASE;
>  	nand_chip.dev_ready = NULL;	/* preset to NULL */
> +	nand_chip.options = 0;
>  	board_nand_init(&nand_chip);
>  
>  	if (nand_chip.select_chip)

Maybe nand_chip should be made static so it goes in the BSS?  This would
avoid any other such problems, without adding any extra code to zero things
out.

-Scott



More information about the U-Boot mailing list