diff options
author | Sudhakar Rajashekhara <sudhakar.raj@ti.com> | 2010-01-15 13:48:40 +0530 |
---|---|---|
committer | Sudhakar Rajashekhara <sudhakar.raj@ti.com> | 2010-01-15 14:57:11 +0530 |
commit | f5736b879889ed798bded7fc24fecc5d4520b42b (patch) | |
tree | 1ba830b16af8b5bd4961fed334b2af05072229fc | |
parent | a3294b69bb1aa22a56839efdd57e38a5d9957b2c (diff) |
da830: Add support for NAND boot mode
Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
-rw-r--r-- | board/davinci/da830evm/da830evm.c | 64 | ||||
-rw-r--r-- | include/configs/da830evm.h | 9 |
2 files changed, 68 insertions, 5 deletions
diff --git a/board/davinci/da830evm/da830evm.c b/board/davinci/da830evm/da830evm.c index f8529b736d..97d2d9764b 100644 --- a/board/davinci/da830evm/da830evm.c +++ b/board/davinci/da830evm/da830evm.c @@ -36,6 +36,8 @@ #include <i2c.h> #include <asm/arch/hardware.h> #include <asm/io.h> +#include <nand.h> +#include <asm/arch/nand_defs.h> #include "../common/misc.h" DECLARE_GLOBAL_DATA_PTR; @@ -80,6 +82,54 @@ const struct pinmux_config i2c_pins[] = { { pinmux[8], 2, 4 } }; +#ifdef CONFIG_USE_NAND +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 + int board_init(void) { #ifndef CONFIG_USE_IRQ @@ -138,6 +188,11 @@ int board_init(void) return 1; #endif +#ifdef CONFIG_USE_NAND + if (davinci_configure_pin_mux(aemif_pins, ARRAY_SIZE(aemif_pins)) != 0) + return 1; +#endif + /* enable the console UART */ writel((DAVINCI_UART_PWREMU_MGMT_FREE | DAVINCI_UART_PWREMU_MGMT_URRST | DAVINCI_UART_PWREMU_MGMT_UTRST), @@ -161,3 +216,12 @@ int misc_init_r(void) printf("Ethernet switch start failed!\n"); } } + +#ifdef CONFIG_NAND_DAVINCI +int board_nand_init(struct nand_chip *nand) +{ + davinci_nand_init(nand); + + return 0; +} +#endif diff --git a/include/configs/da830evm.h b/include/configs/da830evm.h index eb963068ff..467337352e 100644 --- a/include/configs/da830evm.h +++ b/include/configs/da830evm.h @@ -28,6 +28,7 @@ * Board */ #define CONFIG_USE_SPIFLASH +#undef CONFIG_USE_NAND /* * SoC Configuration @@ -108,12 +109,14 @@ #define CONFIG_ENV_IS_IN_NAND /* U-Boot env in NAND Flash */ #define CONFIG_ENV_OFFSET 0x0 /* Block 0--not used by bootcode */ #define CONFIG_ENV_SIZE (128 << 10) +#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_CLE_MASK 0x10 #define CONFIG_SYS_ALE_MASK 0x8 -#define CONFIG_SYS_NAND_HW_ECC +#undef CONFIG_SYS_NAND_HW_ECC #define CONFIG_SYS_MAX_NAND_DEVICE 1 /* Max number of NAND devices */ #define NAND_MAX_CHIPS 1 #define DEF_BOOTM "" @@ -212,10 +215,6 @@ #undef CONFIG_CMD_FLASH #undef CONFIG_CMD_IMLS #define CONFIG_CMD_NAND -#define CONFIG_CMD_MTDPARTS -#define CONFIG_MTD_PARTITIONS -#define CONFIG_CMD_UBI -#define CONFIG_RBTREE #endif #ifdef CONFIG_USE_SPIFLASH |