diff mbox

[U-Boot,v2,3/3] arm: atmel: sama5d3: add nand spl boot support

Message ID 1393829237-15457-4-git-send-email-voice.shen@atmel.com
State Accepted, archived
Delegated to: Andreas Bießmann
Headers show

Commit Message

Bo Shen March 3, 2014, 6:47 a.m. UTC
Add NAND SPL boot support with hardware PMECC.

Signed-off-by: Bo Shen <voice.shen@atmel.com>
---
Changes in v2:
  - NONE

 arch/arm/cpu/at91-common/spl.c       |  2 ++
 arch/arm/include/asm/arch-at91/spl.h |  2 ++
 board/atmel/sama5d3xek/sama5d3xek.c  |  2 ++
 include/configs/sama5d3xek.h         | 12 ++++++++++++
 4 files changed, 18 insertions(+)

Comments

Andreas Bießmann March 9, 2014, 6:43 p.m. UTC | #1
Dear Bo Shen,

Bo Shen <voice.shen@atmel.com> writes:
>Add NAND SPL boot support with hardware PMECC.
>
>Signed-off-by: Bo Shen <voice.shen@atmel.com>
>
>---
>Changes in v2:
>  - NONE
>
> arch/arm/cpu/at91-common/spl.c       |  2 ++
> arch/arm/include/asm/arch-at91/spl.h |  2 ++
> board/atmel/sama5d3xek/sama5d3xek.c  |  2 ++
> include/configs/sama5d3xek.h         | 12 ++++++++++++
> 4 files changed, 18 insertions(+)

applied to u-boot-atmel/master, thanks!

Best regards,
Andreas Bießmann
diff mbox

Patch

diff --git a/arch/arm/cpu/at91-common/spl.c b/arch/arm/cpu/at91-common/spl.c
index 2598e09..7f4debb 100644
--- a/arch/arm/cpu/at91-common/spl.c
+++ b/arch/arm/cpu/at91-common/spl.c
@@ -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
diff --git a/arch/arm/include/asm/arch-at91/spl.h b/arch/arm/include/asm/arch-at91/spl.h
index f4ced49..d8a87da 100644
--- a/arch/arm/include/asm/arch-at91/spl.h
+++ b/arch/arm/include/asm/arch-at91/spl.h
@@ -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
diff --git a/board/atmel/sama5d3xek/sama5d3xek.c b/board/atmel/sama5d3xek/sama5d3xek.c
index 8a214de..c835c12 100644
--- a/board/atmel/sama5d3xek/sama5d3xek.c
+++ b/board/atmel/sama5d3xek/sama5d3xek.c
@@ -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
diff --git a/include/configs/sama5d3xek.h b/include/configs/sama5d3xek.h
index 510f22c..516be85 100644
--- a/include/configs/sama5d3xek.h
+++ b/include/configs/sama5d3xek.h
@@ -270,6 +270,18 @@ 
 #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