[U-Boot] [PATCH v2 2/3] Fix 2k page size NAND for iMX27

Scott Wood scottwood at freescale.com
Thu Jul 16 21:54:40 CEST 2009


On Wed, Jul 15, 2009 at 05:18:40PM +0200, Eric Benard wrote:
>  static int __init imxnd_probe(struct device_d *dev)
>  {
>  	struct nand_chip *this;
> @@ -969,7 +978,7 @@ static int __init imxnd_probe(struct device_d *dev)
>  	struct imx_nand_host *host;
>  	u16 tmp;
>  	int err = 0;
> -#ifdef CONFIG_ARCH_MX27
> +#ifdef CONFIG_ARCH_IMX27
>  	PCCR1 |= PCCR1_NFC_BAUDEN;
>  #endif
>  	/* Allocate memory for MTD device structure and private data */
> @@ -1050,7 +1059,12 @@ static int __init imxnd_probe(struct device_d *dev)
>  		this->ecc.layout = &nand_hw_eccoob_16;
>  	}
>  
> -	host->pagesize_2k = 0;
> +	if (pdata->is2k) {
> +		host->pagesize_2k = 1;
> +		NFMS |= (1 << NFMS_BIT);
> +		this->badblock_pattern = &smallpage_memorybased;

Why are you using the small-page badblock pattern with large pages?

> +	} else 
> +		host->pagesize_2k = 0;

If you use braces on one side of if/else, use them on the other.

> diff --git a/include/asm-arm/arch-imx/imx-nand.h b/include/asm-arm/arch-imx/imx-nand.h
> index 5ebe0be..500bb1a 100644
> --- a/include/asm-arm/arch-imx/imx-nand.h
> +++ b/include/asm-arm/arch-imx/imx-nand.h
> @@ -8,6 +8,7 @@ void imx_nand_load_image(void *dest, int size, int pagesize, int blocksize);
>  struct imx_nand_platform_data {
>  	int width;
>  	int hw_ecc;
> -};
> +	int is2k;
> +	};

That last brace should not be indented.

-Scott


More information about the U-Boot mailing list