summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManjunath Hadli <manjunath.hadli@ti.com>2011-10-07 23:38:39 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2011-10-27 21:56:35 +0200
commit28375eb6f6a34b0a4584a3c46c1879f8852f69a9 (patch)
tree9275a97e3dac43d976958c3996b5f48ef6b8d56b
parent83244a3885310249aac377bdc592cb46e9cf4329 (diff)
downloadu-boot-imx-28375eb6f6a34b0a4584a3c46c1879f8852f69a9.zip
u-boot-imx-28375eb6f6a34b0a4584a3c46c1879f8852f69a9.tar.gz
u-boot-imx-28375eb6f6a34b0a4584a3c46c1879f8852f69a9.tar.bz2
da830: add support for NAND boot mode
Add support for enabling NAND boot mode in configuration file and add correspanding pinmux support, nand initialize function in board file. The size required for environment variables not more than 10KB the CONFIG_ENV_SIZE is set to 10KB from (512 << 10). Acked-by: Nick Thompson <nick.thompson@ge.com> Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com> Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
-rw-r--r--board/davinci/da8xxevm/da830evm.c63
-rw-r--r--include/configs/da830evm.h4
2 files changed, 66 insertions, 1 deletions
diff --git a/board/davinci/da8xxevm/da830evm.c b/board/davinci/da8xxevm/da830evm.c
index 0650653..2021e73 100644
--- a/board/davinci/da8xxevm/da830evm.c
+++ b/board/davinci/da8xxevm/da830evm.c
@@ -40,6 +40,8 @@
#include <asm/arch/emif_defs.h>
#include <asm/arch/emac_defs.h>
#include <asm/io.h>
+#include <nand.h>
+#include <asm/arch/nand_defs.h>
#include <asm/arch/davinci_misc.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -98,6 +100,56 @@ static const struct pinmux_config i2c_pins[] = {
{ pinmux(8), 2, 4 }
};
+#ifdef CONFIG_USE_NAND
+/* NAND pin muxer settings */
+const struct pinmux_config aemif_pins[] = {
+ { pinmux(13), 1, 6 },
+ { pinmux(13), 1, 7 },
+ { pinmux(14), 1, 0 },
+ { pinmux(14), 1, 1 },
+ { pinmux(14), 1, 2 },
+ { pinmux(14), 1, 3 },
+ { pinmux(14), 1, 4 },
+ { pinmux(14), 1, 5 },
+ { pinmux(14), 1, 6 },
+ { pinmux(14), 1, 7 },
+ { pinmux(15), 1, 0 },
+ { pinmux(15), 1, 1 },
+ { pinmux(15), 1, 2 },
+ { pinmux(15), 1, 3 },
+ { pinmux(15), 1, 4 },
+ { pinmux(15), 1, 5 },
+ { pinmux(15), 1, 6 },
+ { pinmux(15), 1, 7 },
+ { pinmux(16), 1, 0 },
+ { pinmux(16), 1, 1 },
+ { pinmux(16), 1, 2 },
+ { pinmux(16), 1, 3 },
+ { pinmux(16), 1, 4 },
+ { pinmux(16), 1, 5 },
+ { pinmux(16), 1, 6 },
+ { pinmux(16), 1, 7 },
+ { pinmux(17), 1, 0 },
+ { pinmux(17), 1, 1 },
+ { pinmux(17), 1, 2 },
+ { pinmux(17), 1, 3 },
+ { pinmux(17), 1, 4 },
+ { pinmux(17), 1, 5 },
+ { pinmux(17), 1, 6 },
+ { pinmux(17), 1, 7 },
+ { pinmux(18), 1, 0 },
+ { pinmux(18), 1, 1 },
+ { pinmux(18), 1, 2 },
+ { pinmux(18), 1, 3 },
+ { pinmux(18), 1, 4 },
+ { pinmux(18), 1, 5 },
+ { pinmux(18), 1, 6 },
+ { pinmux(18), 1, 7 },
+ { pinmux(10), 1, 0 }
+};
+#endif
+
+
/* USB0_DRVVBUS pin muxer settings */
static const struct pinmux_config usb_pins[] = {
{ pinmux(9), 1, 1 }
@@ -114,6 +166,7 @@ static const struct pinmux_resource pinmuxes[] = {
#endif
#ifdef CONFIG_USE_NAND
PINMUX_ITEM(emifa_nand_pins),
+ PINMUX_ITEM(aemif_pins),
#endif
#if defined(CONFIG_DRIVER_TI_EMAC)
PINMUX_ITEM(emac_pins),
@@ -184,6 +237,16 @@ int board_init(void)
return(0);
}
+
+#ifdef CONFIG_NAND_DAVINCI
+int board_nand_init(struct nand_chip *nand)
+{
+ davinci_nand_init(nand);
+
+ return 0;
+}
+#endif
+
#if defined(CONFIG_DRIVER_TI_EMAC)
#define PHY_SW_I2C_ADDR 0x5f /* Address of PHY on i2c bus */
diff --git a/include/configs/da830evm.h b/include/configs/da830evm.h
index c522af9..cca75ce 100644
--- a/include/configs/da830evm.h
+++ b/include/configs/da830evm.h
@@ -105,8 +105,10 @@
#define CONFIG_SYS_NO_FLASH
#define CONFIG_ENV_IS_IN_NAND /* U-Boot env in NAND Flash */
#define CONFIG_ENV_OFFSET (512 << 10)
-#define CONFIG_ENV_SIZE (512 << 10)
+#define CONFIG_ENV_SIZE (10 << 10) /* 10KB */
+#define CONFIG_SYS_NAND_USE_FLASH_BBT
#define CONFIG_SYS_NAND_4BIT_HW_ECC_OOBFIRST
+#define CONFIG_SYS_NAND_PAGE_2K
#define CONFIG_SYS_NAND_CS 3
#define CONFIG_SYS_NAND_BASE DAVINCI_ASYNC_EMIF_DATA_CE3_BASE
#define CONFIG_SYS_NAND_PAGE_2K