[U-Boot] [PATCH 1/1] am33xx: add CONFIG_SYS_NAND_DEVICE_WIDTH to determine NAND device bus-width

Mark Jackson mpfj-list at newflow.co.uk
Tue Oct 1 10:31:28 CEST 2013


On 25/09/13 06:23, Pekon Gupta wrote:
> NAND driver needs to know bus-width of the connected NAND device, in order to
> perform proper I/O and initialize itself. Currently there is no CONFIG option
> to provide this information to NAND driver.
> - SPL NAND driver does not have framework to parse ONFI parameter page.
> - NAND drivers which cannot self initialize !defined(CONFIG_SYS_NAND_SELF_INIT)
>   do not have any information about device bus-width during board_nand_init(),
>   So, any device-width specific configurations are not possible there.
> - There should be some mechanism to pass device bus-width information for
>   non-ONFI compliant devices.
> 
> This patch
> (1) adds CONFIG_SYS_NAND_DEVICE_WIDTH which can take following value
> 	16: NAND device with x16 bus-width
> 	8:  NAND device with x8 bus-width
> (2) removes GPMC_NAND_ECC_LP_x16_LAYOUT, as NAND layout is determined based on
> 	ecc-scheme and oobsize during initialization in board_nand_init(). Thus
> 	this config is redundant.
> 
> Signed-off-by: Pekon Gupta <pekon at ti.com>

<snip>

> diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
> index 978bca7..c92cb2f 100644
> --- a/include/configs/am335x_evm.h
> +++ b/include/configs/am335x_evm.h
> @@ -216,6 +216,7 @@
>  
>  #ifdef CONFIG_NAND
>  #define CONFIG_SYS_NAND_5_ADDR_CYCLE
> +#define CONFIG_SYS_NAND_DEVICE_WIDTH	8

This new setting ...

>  #define CONFIG_SYS_NAND_BLOCK_SIZE	131072
>  #define CONFIG_SYS_NAND_PAGE_SIZE	2048
>  #define CONFIG_SYS_NAND_OOBSIZE		64
> @@ -366,7 +367,6 @@
>  /* NAND support */
>  #ifdef CONFIG_NAND
>  #define CONFIG_CMD_NAND
> -#define GPMC_NAND_ECC_LP_x16_LAYOUT	1

... does *not* match with what you're taking out here !!

>  #if !defined(CONFIG_SPI_BOOT) && !defined(CONFIG_NOR_BOOT)
>  #define MTDIDS_DEFAULT			"nand0=omap2-nand.0"
>  #define MTDPARTS_DEFAULT		"mtdparts=omap2-nand.0:128k(SPL)," \
> diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h
> index 1fd2508..0985221 100644
> --- a/include/configs/am3517_crane.h
> +++ b/include/configs/am3517_crane.h
> @@ -269,7 +269,6 @@
>  #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE
>  
>  #define CONFIG_NAND_OMAP_GPMC
> -#define GPMC_NAND_ECC_LP_x16_LAYOUT	1

Same here ...

>  #define CONFIG_ENV_IS_IN_NAND		1
>  #define SMNAND_ENV_OFFSET		0x260000 /* environment starts here */
>  
> @@ -332,6 +331,7 @@
>  
>  /* NAND boot config */
>  #define CONFIG_SYS_NAND_5_ADDR_CYCLE
> +#define CONFIG_SYS_NAND_DEVICE_WIDTH	8

... !!

>  #define CONFIG_SYS_NAND_PAGE_COUNT	64
>  #define CONFIG_SYS_NAND_PAGE_SIZE	2048
>  #define CONFIG_SYS_NAND_OOBSIZE		64
> diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h
> index 6500878..8593d44 100644
> --- a/include/configs/am3517_evm.h
> +++ b/include/configs/am3517_evm.h
> @@ -263,7 +263,6 @@
>  #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_FLASH_BASE
>  
>  #define CONFIG_NAND_OMAP_GPMC
> -#define GPMC_NAND_ECC_LP_x16_LAYOUT	1

Again ...

>  #define CONFIG_ENV_IS_IN_NAND		1
>  #define SMNAND_ENV_OFFSET		0x260000 /* environment starts here */
>  
> @@ -326,6 +325,7 @@
>  
>  /* NAND boot config */
>  #define CONFIG_SYS_NAND_5_ADDR_CYCLE
> +#define CONFIG_SYS_NAND_DEVICE_WIDTH	8

... !!

>  #define CONFIG_SYS_NAND_PAGE_COUNT	64
>  #define CONFIG_SYS_NAND_PAGE_SIZE	2048
>  #define CONFIG_SYS_NAND_OOBSIZE		64
> diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h
> index bc5b66c..1e3dd0d 100644
> --- a/include/configs/cm_t35.h
> +++ b/include/configs/cm_t35.h
> @@ -164,8 +164,6 @@
>  #define CONFIG_SYS_NAND_BASE		NAND_BASE	/* physical address */
>  							/* to access nand at */
>  							/* CS0 */
> -#define GPMC_NAND_ECC_LP_x8_LAYOUT
> -

And here you don't specify the new setting at all.

>  #define CONFIG_SYS_MAX_NAND_DEVICE	1		/* Max number of NAND */
>  							/* devices */
>  /* Environment information */

<snip>

There's several other instances of the same issue through the whole patch.

Mark J.


More information about the U-Boot mailing list