#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;
        { 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 }
 #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),
        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 */
 
 #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