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 2598e09959cd9e5d24a4d24ec38d9200944156e8..7f4debb912597d5a251cfa095b0309497b2528b0 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 f4ced49618a0a12ca6c7a27e951d10d9b4325ead..d8a87daa4a3b575d7cdb74ca856ac4ccd7f43814 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 8a214de475a11d5b10eddfd5de144961caaaa643..c835c12d02d623777ab756c384bf8b948f6a7711 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 510f22c7ff39c26f6b28c05aa5549e514393789f..516be85fe08d9a1af60624826465a237448c5d6b 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