[U-Boot] [PATCH v1 1/7] TI: armv7: move board specific NAND configs out from ti_armv7_common.h and ti_am335x_common.h

2014-07-04 Thread Pekon Gupta
This patch moves some board specific NAND configs:
- FROM: generic config files like 'ti_armv7_common.h' and 'ti_am335x_common.h'
- TO:   individual board config files using these configs.
So that each board can independently set the value as per its design.

Following configs are affected in this patch:
  CONFIG_NAND_OMAP_GPMC: 
  CONFIG_NAND_OMAP_ELM: 
  CONFIG_SPL_NAND_AM33XX_BCH: 
  CONFIG_SYS_NAND_U_BOOT_OFFS: 
  CONFIG_CMD_SPL_NAND_OFS: 
  CONFIG_SYS_NAND_SPL_KERNEL_OFFS: 
  CONFIG_CMD_SPL_WRITE_SIZE: 

This patch also updates documentation for few of above NAND configs.

Signed-off-by: Pekon Gupta 
---
 doc/README.nand| 12 
 include/configs/am335x_evm.h   |  7 +++
 include/configs/cm_t335.h  | 10 ++
 include/configs/omap3_beagle.h |  6 ++
 include/configs/omap3_igep00x0.h   |  9 +
 include/configs/omap3_overo.h  |  8 
 include/configs/omap3_zoom1.h  |  7 +++
 include/configs/pengwyn.h  |  7 +++
 include/configs/ti_am335x_common.h |  4 
 include/configs/ti_armv7_common.h  |  9 -
 10 files changed, 66 insertions(+), 13 deletions(-)

diff --git a/doc/README.nand b/doc/README.nand
index 70cf768..e29188f 100644
--- a/doc/README.nand
+++ b/doc/README.nand
@@ -89,6 +89,10 @@ Commands:
 
 Configuration Options:
 
+   CONFIG_SYS_NAND_U_BOOT_OFFS
+   NAND Offset from where SPL will read u-boot image. This is the starting
+   address of u-boot MTD partition in NAND.
+
CONFIG_CMD_NAND
   Enables NAND support and commmands.
 
@@ -226,6 +230,14 @@ Platform specific options
detection. However ECC calculation on such plaforms would still be
done by GPMC controller.
 
+   CONFIG_SPL_NAND_AM33XX_BCH
+   Enables SPL-NAND driver (am335x_spl_bch.c) which supports ELM based
+hardware ECC correction. This is useful for platforms which have ELM
+   hardware engine and use NAND boot mode.
+   Some legacy platforms like OMAP3xx do not have in-built ELM h/w engine,
+   so those platforms should use CONFIG_SPL_NAND_SIMPLE for enabling
+SPL-NAND driver with software ECC correction support.
+
CONFIG_NAND_OMAP_ECCSCHEME
On OMAP platforms, this CONFIG specifies NAND ECC scheme.
It can take following values:
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index a48b386..57a6cab 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -233,6 +233,8 @@
 #ifdef CONFIG_NAND
 #define CONFIG_NAND_OMAP_GPMC
 #define CONFIG_NAND_OMAP_ELM
+#define CONFIG_SPL_NAND_AM33XX_BCH
+/* NAND: device related configs */
 #define CONFIG_SYS_NAND_5_ADDR_CYCLE
 #define CONFIG_SYS_NAND_PAGE_COUNT (CONFIG_SYS_NAND_BLOCK_SIZE / \
 CONFIG_SYS_NAND_PAGE_SIZE)
@@ -254,6 +256,11 @@
 #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW
 #define CONFIG_SYS_NAND_U_BOOT_START   CONFIG_SYS_TEXT_BASE
 #define CONFIG_SYS_NAND_U_BOOT_OFFS0x8
+#ifdef CONFIG_SPL_OS_BOOT
+  #define CONFIG_CMD_SPL_NAND_OFS  0x0008 /* os parameters */
+  #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS  0x0020 /* kernel offset */
+  #define CONFIG_CMD_SPL_WRITE_SIZE0x2000
+#endif
 #endif
 #endif
 
diff --git a/include/configs/cm_t335.h b/include/configs/cm_t335.h
index 4d1dd28..70b6e90 100644
--- a/include/configs/cm_t335.h
+++ b/include/configs/cm_t335.h
@@ -150,6 +150,16 @@
 #define CONFIG_ENV_OFFSET  0x30 /* environment starts here */
 #define CONFIG_SYS_ENV_SECT_SIZE   (128 << 10) /* 128 KiB */
 #define CONFIG_SYS_NAND_ONFI_DETECTION
+/* NAND: driver related configs */
+#define CONFIG_NAND_OMAP_GPMC
+#define CONFIG_NAND_OMAP_ELM
+#define CONFIG_SPL_NAND_AM33XX_BCH /* SPL-NAND driver with ELM support */
+/* NAND: SPL falcon mode configs */
+#ifdef CONFIG_SPL_OS_BOOT
+  #define CONFIG_CMD_SPL_NAND_OFS  0x40 /* un-assigned: (using dtb) */
+  #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS  0x50
+  #define CONFIG_CMD_SPL_WRITE_SIZE0x2000
+#endif
 
 /* GPIO pin + bank to pin ID mapping */
 #define GPIO_PIN(_bank, _pin)  ((_bank << 5) + _pin)
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index c023483..7878765 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -126,6 +126,12 @@
 #define CONFIG_NAND_OMAP_GPMC
 #define CONFIG_SYS_MAX_NAND_DEVICE 1   /* Max number of NAND */
/* devices */
+/* NAND: SPL falcon mode configs */
+#ifdef CONFIG_SPL_OS_BOOT
+#define CONFIG_CMD_SPL_NAND_OFS0x24
+#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS0x28
+#define CONFIG_CMD_SPL_WRITE_SIZE  0x2000
+#endif
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
"loadaddr=0x8020\0" \
diff --git a/include/configs/omap3_igep00x0.h b/include/configs/omap3_igep00x0.h
index 79daabd..7daaef5 100644
--- 

Re: [U-Boot] [PATCH v1 1/7] TI: armv7: move board specific NAND configs out from ti_armv7_common.h and ti_am335x_common.h

2014-07-14 Thread Tom Rini
On Sat, Jul 05, 2014 at 12:35:11AM +0530, Pekon Gupta wrote:

> This patch moves some board specific NAND configs:
> - FROM: generic config files like 'ti_armv7_common.h' and 'ti_am335x_common.h'
> - TO:   individual board config files using these configs.
> So that each board can independently set the value as per its design.

I don't know.  I intentionally merged these as they were all the same
based on the reference layout.  Maybe it should be in the
ti_soc_common.h file rather than ti_armv7_common.h

> @@ -254,6 +256,11 @@
>  #define CONFIG_NAND_OMAP_ECCSCHEME   OMAP_ECC_BCH8_CODE_HW
>  #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
>  #define CONFIG_SYS_NAND_U_BOOT_OFFS  0x8
> +#ifdef CONFIG_SPL_OS_BOOT
> +  #define CONFIG_CMD_SPL_NAND_OFS0x0008 /* os parameters */
> +  #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS0x0020 /* kernel offset */
> +  #define CONFIG_CMD_SPL_WRITE_SIZE  0x2000
> +#endif

No leading spaces please.

> diff --git a/include/configs/ti_am335x_common.h 
> b/include/configs/ti_am335x_common.h
> index 80976e7..12fceb7 100644
> --- a/include/configs/ti_am335x_common.h
> +++ b/include/configs/ti_am335x_common.h
> @@ -84,10 +84,6 @@
>  #define CONFIG_BOARD_EARLY_INIT_F
>  #endif
>  
> -#ifdef CONFIG_NAND
> -#define CONFIG_SPL_NAND_AM33XX_BCH   /* ELM support */
> -#endif

This highlights a problem, this _is_ a SoC feature not a board feature.

> diff --git a/include/configs/ti_armv7_common.h 
> b/include/configs/ti_armv7_common.h
> index 6e0bf09..c901522 100644
> --- a/include/configs/ti_armv7_common.h
> +++ b/include/configs/ti_armv7_common.h
> @@ -110,7 +110,6 @@
>   * access CS0 at is 0x800.
>   */
>  #ifdef CONFIG_NAND
> -#define CONFIG_NAND_OMAP_GPMC
>  #ifndef CONFIG_SYS_NAND_BASE
>  #define CONFIG_SYS_NAND_BASE 0x800
>  #endif

And given keystone this should move to ti_{am335x,omap*}_common.h again
as a SoC feature.

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot