NAND timing is defaulted to Micron NAND. To support
varied boards, this is not scalable.
This patch introduces compile time option to select
the timing to select at the same time allows
platforms to build with custom timing params

Signed-off-by: Nishanth Menon <n...@ti.com>
---
 cpu/arm_cortexa8/omap3/mem.c     |   12 ++++++------
 include/asm-arm/arch-omap3/mem.h |   38 +++++++++++++++++++++++---------------
 include/configs/omap3_beagle.h   |    1 +
 include/configs/omap3_overo.h    |    1 +
 include/configs/omap3_pandora.h  |    1 +
 include/configs/omap3_zoom1.h    |    1 +
 6 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/cpu/arm_cortexa8/omap3/mem.c b/cpu/arm_cortexa8/omap3/mem.c
index 3cc22c4..14cd87d 100644
--- a/cpu/arm_cortexa8/omap3/mem.c
+++ b/cpu/arm_cortexa8/omap3/mem.c
@@ -43,12 +43,12 @@ volatile unsigned int boot_flash_env_addr;
 
 #if defined(CONFIG_CMD_NAND)
 static u32 gpmc_m_nand[GPMC_MAX_REG] = {
-       M_NAND_GPMC_CONFIG1,
-       M_NAND_GPMC_CONFIG2,
-       M_NAND_GPMC_CONFIG3,
-       M_NAND_GPMC_CONFIG4,
-       M_NAND_GPMC_CONFIG5,
-       M_NAND_GPMC_CONFIG6, 0
+       NAND_GPMC_CONFIG1,
+       NAND_GPMC_CONFIG2,
+       NAND_GPMC_CONFIG3,
+       NAND_GPMC_CONFIG4,
+       NAND_GPMC_CONFIG5,
+       NAND_GPMC_CONFIG6, 0
 };
 
 gpmc_csx_t *nand_cs_base;
diff --git a/include/asm-arm/arch-omap3/mem.h b/include/asm-arm/arch-omap3/mem.h
index 6f0f90b..622578e 100644
--- a/include/asm-arm/arch-omap3/mem.h
+++ b/include/asm-arm/arch-omap3/mem.h
@@ -137,21 +137,29 @@ typedef enum {
 #define GPMC_SIZE_32M  0xE
 #define GPMC_SIZE_16M  0xF
 
-#define SMNAND_GPMC_CONFIG1    0x00000800
-#define SMNAND_GPMC_CONFIG2    0x00141400
-#define SMNAND_GPMC_CONFIG3    0x00141400
-#define SMNAND_GPMC_CONFIG4    0x0F010F01
-#define SMNAND_GPMC_CONFIG5    0x010C1414
-#define SMNAND_GPMC_CONFIG6    0x1F0F0A80
-#define SMNAND_GPMC_CONFIG7    0x00000C44
-
-#define M_NAND_GPMC_CONFIG1    0x00001800
-#define M_NAND_GPMC_CONFIG2    0x00141400
-#define M_NAND_GPMC_CONFIG3    0x00141400
-#define M_NAND_GPMC_CONFIG4    0x0F010F01
-#define M_NAND_GPMC_CONFIG5    0x010C1414
-#define M_NAND_GPMC_CONFIG6    0x1f0f0A80
-#define M_NAND_GPMC_CONFIG7    0x00000C44
+/*
+ * Standard OMAP3 NAND device definitions
+ * Define SMNAND_GPMC or M_NAND_GPMC to use the defaults
+ * if your board has a specific timing (such as optimized timing),
+ * define NAND_GPMC_CONFIG1 to 7
+ */
+#ifdef SMNAND_GPMC
+#define NAND_GPMC_CONFIG1      0x00000800
+#define NAND_GPMC_CONFIG2      0x00141400
+#define NAND_GPMC_CONFIG3      0x00141400
+#define NAND_GPMC_CONFIG4      0x0F010F01
+#define NAND_GPMC_CONFIG5      0x010C1414
+#define NAND_GPMC_CONFIG6      0x1F0F0A80
+#define NAND_GPMC_CONFIG7      0x00000C44
+#elif defined(M_NAND_GPMC)
+#define NAND_GPMC_CONFIG1      0x00001800
+#define NAND_GPMC_CONFIG2      0x00141400
+#define NAND_GPMC_CONFIG3      0x00141400
+#define NAND_GPMC_CONFIG4      0x0F010F01
+#define NAND_GPMC_CONFIG5      0x010C1414
+#define NAND_GPMC_CONFIG6      0x1f0f0A80
+#define NAND_GPMC_CONFIG7      0x00000C44
+#endif
 
 #define STNOR_GPMC_CONFIG1     0x3
 #define STNOR_GPMC_CONFIG2     0x00151501
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index 5a948e4..3f47b7a 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -126,6 +126,7 @@
  * Board NAND Info.
  */
 #define CONFIG_NAND_OMAP_GPMC
+#define M_NAND_GPMC
 #define CONFIG_SYS_NAND_ADDR           NAND_BASE       /* physical address */
                                                        /* to access nand */
 #define CONFIG_SYS_NAND_BASE           NAND_BASE       /* physical address */
diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
index 51b04b6..093f922 100644
--- a/include/configs/omap3_overo.h
+++ b/include/configs/omap3_overo.h
@@ -113,6 +113,7 @@
  * Board NAND Info.
  */
 #define CONFIG_NAND_OMAP_GPMC
+#define M_NAND_GPMC
 #define CONFIG_SYS_NAND_ADDR           NAND_BASE       /* physical address */
                                                        /* to access nand */
 #define CONFIG_SYS_NAND_BASE           NAND_BASE       /* physical address */
diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h
index 40107a6..7c3d2f0 100644
--- a/include/configs/omap3_pandora.h
+++ b/include/configs/omap3_pandora.h
@@ -116,6 +116,7 @@
  * Board NAND Info.
  */
 #define CONFIG_NAND_OMAP_GPMC
+#define M_NAND_GPMC
 #define CONFIG_SYS_NAND_ADDR           NAND_BASE       /* physical address */
                                                        /* to access nand */
 #define CONFIG_SYS_NAND_BASE           NAND_BASE       /* physical address */
diff --git a/include/configs/omap3_zoom1.h b/include/configs/omap3_zoom1.h
index 8e984b4..794ad96 100644
--- a/include/configs/omap3_zoom1.h
+++ b/include/configs/omap3_zoom1.h
@@ -123,6 +123,7 @@
  * Board NAND Info.
  */
 #define CONFIG_NAND_OMAP_GPMC
+#define M_NAND_GPMC
 #define CONFIG_SYS_NAND_ADDR           NAND_BASE       /* physical address */
                                                        /* to access nand */
 #define CONFIG_SYS_NAND_BASE           NAND_BASE       /* physical address */
-- 
1.5.4.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to