arm: atmel: sama5d3: add nand spl boot support
authorBo Shen <voice.shen@atmel.com>
Mon, 3 Mar 2014 06:47:17 +0000 (14:47 +0800)
committerAndreas Bießmann <andreas.devel@googlemail.com>
Sun, 9 Mar 2014 18:19:13 +0000 (19:19 +0100)
Add NAND SPL boot support with hardware PMECC.

Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
arch/arm/cpu/at91-common/spl.c
arch/arm/include/asm/arch-at91/spl.h
board/atmel/sama5d3xek/sama5d3xek.c
include/configs/sama5d3xek.h

index 2598e09..7f4debb 100644 (file)
@@ -52,6 +52,8 @@ u32 spl_boot_device(void)
 {
 #ifdef CONFIG_SYS_USE_MMC
        return BOOT_DEVICE_MMC1;
+#elif CONFIG_SYS_USE_NANDFLASH
+       return BOOT_DEVICE_NAND;
 #elif CONFIG_SYS_USE_SERIALFLASH
        return BOOT_DEVICE_SPI;
 #endif
index f4ced49..d8a87da 100644 (file)
@@ -14,6 +14,8 @@ enum {
        BOOT_DEVICE_MMC1,
        BOOT_DEVICE_MMC2,
        BOOT_DEVICE_MMC2_2,
+#elif CONFIG_SYS_USE_NANDFLASH
+       BOOT_DEVICE_NAND,
 #elif CONFIG_SYS_USE_SERIALFLASH
        BOOT_DEVICE_SPI,
 #endif
index 8a214de..c835c12 100644 (file)
@@ -307,6 +307,8 @@ void spl_board_init(void)
 {
 #ifdef CONFIG_SYS_USE_MMC
        sama5d3xek_mci_hw_init();
+#elif CONFIG_SYS_USE_NANDFLASH
+       sama5d3xek_nand_hw_init();
 #elif CONFIG_SYS_USE_SERIALFLASH
        at91_spi0_hw_init(1 << 0);
 #endif
index 510f22c..516be85 100644 (file)
 #define CONFIG_SPL_FAT_SUPPORT
 #define CONFIG_SPL_LIBDISK_SUPPORT
 
+#elif CONFIG_SYS_USE_NANDFLASH
+#define CONFIG_SPL_NAND_SUPPORT
+#define CONFIG_SPL_NAND_DRIVERS
+#define CONFIG_SPL_NAND_BASE
+#define CONFIG_SYS_NAND_U_BOOT_OFFS    0x40000
+#define CONFIG_SYS_NAND_5_ADDR_CYCLE
+#define CONFIG_SYS_NAND_PAGE_SIZE      0x800
+#define CONFIG_SYS_NAND_PAGE_COUNT     64
+#define CONFIG_SYS_NAND_OOBSIZE                64
+#define CONFIG_SYS_NAND_BLOCK_SIZE     0x20000
+#define CONFIG_SYS_NAND_BAD_BLOCK_POS  0x0
+
 #elif CONFIG_SYS_USE_SERIALFLASH
 #define CONFIG_SPL_SPI_SUPPORT
 #define CONFIG_SPL_SPI_FLASH_SUPPORT