]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-atmel
authorTom Rini <trini@konsulko.com>
Tue, 31 Mar 2015 23:15:59 +0000 (19:15 -0400)
committerTom Rini <trini@konsulko.com>
Tue, 31 Mar 2015 23:15:59 +0000 (19:15 -0400)
41 files changed:
arch/arm/mach-at91/Kconfig
arch/arm/mach-at91/Makefile
arch/arm/mach-at91/arm926ejs/clock.c
arch/arm/mach-at91/arm926ejs/timer.c
arch/arm/mach-at91/arm926ejs/u-boot-spl.lds [new file with mode: 0644]
arch/arm/mach-at91/armv7/timer.c
arch/arm/mach-at91/include/mach/at91_pmc.h
arch/arm/mach-at91/include/mach/at91sam9260.h
arch/arm/mach-at91/include/mach/at91sam9261.h
arch/arm/mach-at91/include/mach/at91sam9263.h
arch/arm/mach-at91/include/mach/at91sam9g45.h
arch/arm/mach-at91/include/mach/at91sam9rl.h
arch/arm/mach-at91/include/mach/at91sam9x5.h
arch/arm/mach-at91/include/mach/sama5d3.h
arch/arm/mach-at91/include/mach/sama5d4.h
arch/arm/mach-at91/mpddrc.c
arch/arm/mach-at91/spl.c
arch/arm/mach-at91/spl_at91.c
arch/arm/mach-at91/spl_atmel.c
board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c
board/atmel/at91sam9n12ek/at91sam9n12ek.c
board/atmel/at91sam9x5ek/at91sam9x5ek.c
board/atmel/sama5d4_xplained/sama5d4_xplained.c
board/atmel/sama5d4ek/sama5d4ek.c
configs/at91sam9m10g45ek_mmc_defconfig
configs/at91sam9m10g45ek_nandflash_defconfig
configs/at91sam9n12ek_nandflash_defconfig
configs/at91sam9n12ek_spiflash_defconfig
configs/at91sam9x5ek_nandflash_defconfig
configs/at91sam9x5ek_spiflash_defconfig
configs/corvus_defconfig
drivers/mtd/nand/atmel_nand.c
include/configs/at91-sama5_common.h [new file with mode: 0644]
include/configs/at91sam9m10g45ek.h
include/configs/at91sam9n12ek.h
include/configs/at91sam9x5ek.h
include/configs/corvus.h
include/configs/sama5d3_xplained.h
include/configs/sama5d3xek.h
include/configs/sama5d4_xplained.h
include/configs/sama5d4ek.h

index 30945c101bbfcfdfec03a2257b0248b19321542e..30c4e17ec94338e9e1afd172140d1cfb9392385d 100644 (file)
@@ -66,6 +66,7 @@ config TARGET_STAMP9G20
 config TARGET_AT91SAM9M10G45EK
        bool "Atmel AT91SAM9M10G45-EK board"
        select CPU_ARM926EJS
+       select SUPPORT_SPL
 
 config TARGET_PM9G45
        bool "Ronetix pm9g45 board"
@@ -74,6 +75,7 @@ config TARGET_PM9G45
 config TARGET_AT91SAM9N12EK
        bool "Atmel AT91SAM9N12-EK board"
        select CPU_ARM926EJS
+       select SUPPORT_SPL
 
 config TARGET_AT91SAM9RLEK
        bool "Atmel at91sam9rl reference board"
@@ -82,6 +84,7 @@ config TARGET_AT91SAM9RLEK
 config TARGET_AT91SAM9X5EK
        bool "Atmel AT91SAM9X5-EK board"
        select CPU_ARM926EJS
+       select SUPPORT_SPL
 
 config TARGET_SAMA5D3_XPLAINED
        bool "SAMA5D3 Xplained board"
index e596ba6ce800cc3e663c730e4131bf8613a0923a..0d3ee48493d99b4073d43402b222406cd722c677 100644 (file)
@@ -2,6 +2,8 @@ obj-$(CONFIG_AT91_WANTS_COMMON_PHY) += phy.o
 ifneq ($(CONFIG_SPL_BUILD),)
 obj-$(CONFIG_AT91SAM9G20) += sdram.o spl_at91.o
 obj-$(CONFIG_AT91SAM9M10G45) += mpddrc.o spl_at91.o
+obj-$(CONFIG_AT91SAM9N12) += mpddrc.o spl_at91.o
+obj-$(CONFIG_AT91SAM9X5) += mpddrc.o spl_at91.o
 obj-$(CONFIG_SAMA5D3) += mpddrc.o spl_atmel.o
 obj-$(CONFIG_SAMA5D4) += mpddrc.o spl_atmel.o
 obj-y += spl.o
index f363982d0350d85dea3eef38be960de5b65a2b6b..8d6934e32490dd44b31acddf09b54a1b2a05cdcc 100644 (file)
@@ -195,50 +195,52 @@ int at91_clock_init(unsigned long main_clock)
 void at91_plla_init(u32 pllar)
 {
        struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
-       int timeout = AT91_PLL_LOCK_TIMEOUT;
 
        writel(pllar, &pmc->pllar);
-       while (!(readl(&pmc->sr) & (AT91_PMC_LOCKA | AT91_PMC_MCKRDY))) {
-               timeout--;
-               if (timeout == 0)
-                       break;
-       }
+       while (!(readl(&pmc->sr) & AT91_PMC_LOCKA))
+               ;
 }
 void at91_pllb_init(u32 pllbr)
 {
        struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
-       int timeout = AT91_PLL_LOCK_TIMEOUT;
 
        writel(pllbr, &pmc->pllbr);
-       while (!(readl(&pmc->sr) & (AT91_PMC_LOCKB | AT91_PMC_MCKRDY))) {
-               timeout--;
-               if (timeout == 0)
-                       break;
-       }
+       while (!(readl(&pmc->sr) & AT91_PMC_LOCKB))
+               ;
 }
 
 void at91_mck_init(u32 mckr)
 {
        struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
-       int timeout = AT91_PLL_LOCK_TIMEOUT;
        u32 tmp;
 
        tmp = readl(&pmc->mckr);
-       tmp &= ~(AT91_PMC_MCKR_PRES_MASK |
-                AT91_PMC_MCKR_MDIV_MASK |
-                AT91_PMC_MCKR_PLLADIV_MASK |
-                AT91_PMC_MCKR_CSS_MASK);
-       tmp |= mckr & (AT91_PMC_MCKR_PRES_MASK |
-                      AT91_PMC_MCKR_MDIV_MASK |
-                      AT91_PMC_MCKR_PLLADIV_MASK |
-                      AT91_PMC_MCKR_CSS_MASK);
+       tmp &= ~AT91_PMC_MCKR_PRES_MASK;
+       tmp |= mckr & AT91_PMC_MCKR_PRES_MASK;
        writel(tmp, &pmc->mckr);
+       while (!(readl(&pmc->sr) & AT91_PMC_MCKRDY))
+               ;
 
-       while (!(readl(&pmc->sr) & AT91_PMC_MCKRDY)) {
-               timeout--;
-               if (timeout == 0)
-                       break;
-       }
+       tmp = readl(&pmc->mckr);
+       tmp &= ~AT91_PMC_MCKR_MDIV_MASK;
+       tmp |= mckr & AT91_PMC_MCKR_MDIV_MASK;
+       writel(tmp, &pmc->mckr);
+       while (!(readl(&pmc->sr) & AT91_PMC_MCKRDY))
+               ;
+
+       tmp = readl(&pmc->mckr);
+       tmp &= ~AT91_PMC_MCKR_PLLADIV_MASK;
+       tmp |= mckr & AT91_PMC_MCKR_PLLADIV_MASK;
+       writel(tmp, &pmc->mckr);
+       while (!(readl(&pmc->sr) & AT91_PMC_MCKRDY))
+               ;
+
+       tmp = readl(&pmc->mckr);
+       tmp &= ~AT91_PMC_MCKR_CSS_MASK;
+       tmp |= mckr & AT91_PMC_MCKR_CSS_MASK;
+       writel(tmp, &pmc->mckr);
+       while (!(readl(&pmc->sr) & AT91_PMC_MCKRDY))
+               ;
 }
 
 void at91_periph_clk_enable(int id)
index b0b7fb93fba92e3b901879f67704dbfcd550f9c5..31ce6462603f7d023bee15e0a8d993f83739e56e 100644 (file)
@@ -33,22 +33,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #define TIMER_LOAD_VAL 0xfffff
 
-static inline unsigned long long tick_to_time(unsigned long long tick)
-{
-       tick *= CONFIG_SYS_HZ;
-       do_div(tick, gd->arch.timer_rate_hz);
-
-       return tick;
-}
-
-static inline unsigned long long usec_to_tick(unsigned long long usec)
-{
-       usec *= gd->arch.timer_rate_hz;
-       do_div(usec, 1000000);
-
-       return usec;
-}
-
 /*
  * Use the PITC in full 32 bit incrementing mode
  */
@@ -64,53 +48,10 @@ int timer_init(void)
        writel(TIMER_LOAD_VAL | AT91_PIT_MR_EN , &pit->mr);
 
        gd->arch.timer_rate_hz = gd->arch.mck_rate_hz / 16;
-       gd->arch.tbu = gd->arch.tbl = 0;
 
        return 0;
 }
 
-/*
- * Get the current 64 bit timer tick count
- */
-unsigned long long get_ticks(void)
-{
-       at91_pit_t *pit = (at91_pit_t *) ATMEL_BASE_PIT;
-
-       ulong now = readl(&pit->piir);
-
-       /* increment tbu if tbl has rolled over */
-       if (now < gd->arch.tbl)
-               gd->arch.tbu++;
-       gd->arch.tbl = now;
-       return (((unsigned long long)gd->arch.tbu) << 32) | gd->arch.tbl;
-}
-
-void __udelay(unsigned long usec)
-{
-       unsigned long long start;
-       ulong tmo;
-
-       start = get_ticks();            /* get current timestamp */
-       tmo = usec_to_tick(usec);       /* convert usecs to ticks */
-       while ((get_ticks() - start) < tmo)
-               ;                       /* loop till time has passed */
-}
-
-/*
- * get_timer(base) can be used to check for timeouts or
- * to measure elasped time relative to an event:
- *
- * ulong start_time = get_timer(0) sets start_time to the current
- * time value.
- * get_timer(start_time) returns the time elapsed since then.
- *
- * The time is used in CONFIG_SYS_HZ units!
- */
-ulong get_timer(ulong base)
-{
-       return tick_to_time(get_ticks()) - base;
-}
-
 /*
  * Return the number of timer ticks per second.
  */
diff --git a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds
new file mode 100644 (file)
index 0000000..acadd1d
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2015 Atmel Corporation
+ *                   Bo Shen <voice.shen@atmel.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE, \
+               LENGTH = CONFIG_SPL_MAX_SIZE }
+MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
+               LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+       .text      :
+       {
+               __start = .;
+               *(.vectors)
+               arch/arm/cpu/arm926ejs/start.o  (.text*)
+               *(.text*)
+       } >.sram
+
+       . = ALIGN(4);
+       .rodata : { *(SORT_BY_ALIGNMENT(.rodata*)) } >.sram
+
+       . = ALIGN(4);
+       .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+       . = ALIGN(4);
+       __image_copy_end = .;
+
+       .end :
+       {
+               *(.__end)
+       } >.sram
+
+       .bss :
+       {
+               . = ALIGN(4);
+               __bss_start = .;
+               *(.bss*)
+               . = ALIGN(4);
+               __bss_end = .;
+       } >.sdram
+}
index 19bf80ba7eb6195a57b8d91bde9e793567da7fd6..a4a3817aa63f8b786121461f73d30fa8518ad7b2 100644 (file)
@@ -36,22 +36,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #define TIMER_LOAD_VAL 0xfffff
 
-static inline unsigned long long tick_to_time(unsigned long long tick)
-{
-       tick *= CONFIG_SYS_HZ;
-       do_div(tick, gd->arch.timer_rate_hz);
-
-       return tick;
-}
-
-static inline unsigned long long usec_to_tick(unsigned long long usec)
-{
-       usec *= gd->arch.timer_rate_hz;
-       do_div(usec, 1000000);
-
-       return usec;
-}
-
 /*
  * Use the PITC in full 32 bit incrementing mode
  */
@@ -67,54 +51,9 @@ int timer_init(void)
 
        gd->arch.timer_rate_hz = get_pit_clk_rate() / 16;
 
-       gd->arch.tbu = 0;
-       gd->arch.tbl = 0;
-
        return 0;
 }
 
-/*
- * Get the current 64 bit timer tick count
- */
-unsigned long long get_ticks(void)
-{
-       at91_pit_t *pit = (at91_pit_t *)ATMEL_BASE_PIT;
-
-       ulong now = readl(&pit->piir);
-
-       /* increment tbu if tbl has rolled over */
-       if (now < gd->arch.tbl)
-               gd->arch.tbu++;
-       gd->arch.tbl = now;
-       return (((unsigned long long)gd->arch.tbu) << 32) | gd->arch.tbl;
-}
-
-void __udelay(unsigned long usec)
-{
-       unsigned long long start;
-       ulong tmo;
-
-       start = get_ticks();            /* get current timestamp */
-       tmo = usec_to_tick(usec);       /* convert usecs to ticks */
-       while ((get_ticks() - start) < tmo)
-               ;                       /* loop till time has passed */
-}
-
-/*
- * get_timer(base) can be used to check for timeouts or
- * to measure elasped time relative to an event:
- *
- * ulong start_time = get_timer(0) sets start_time to the current
- * time value.
- * get_timer(start_time) returns the time elapsed since then.
- *
- * The time is used in CONFIG_SYS_HZ units!
- */
-ulong get_timer(ulong base)
-{
-       return tick_to_time(get_ticks()) - base;
-}
-
 /*
  * Return the number of timer ticks per second.
  */
index 65691aba01a50fe9b1a02d4617d5305758cb1da1..ebb7decd22e6001ee92e62ff638b3e6210861e86 100644 (file)
@@ -97,7 +97,8 @@ typedef struct at91_pmc {
 #define AT91_PMC_MCKR_CSS_PLLB         0x00000003
 #define AT91_PMC_MCKR_CSS_MASK         0x00000003
 
-#if defined(CONFIG_SAMA5D3) || defined(CONFIG_SAMA5D4)
+#if defined(CONFIG_SAMA5D3) || defined(CONFIG_SAMA5D4) || \
+       defined(CONFIG_AT91SAM9X5) || defined(CONFIG_AT91SAM9N12)
 #define AT91_PMC_MCKR_PRES_1           0x00000000
 #define AT91_PMC_MCKR_PRES_2           0x00000010
 #define AT91_PMC_MCKR_PRES_4           0x00000020
@@ -126,7 +127,8 @@ typedef struct at91_pmc {
 #else
 #define AT91_PMC_MCKR_MDIV_1           0x00000000
 #define AT91_PMC_MCKR_MDIV_2           0x00000100
-#if defined(CONFIG_SAMA5D3) || defined(CONFIG_SAMA5D4)
+#if defined(CONFIG_SAMA5D3) || defined(CONFIG_SAMA5D4) || \
+       defined(CONFIG_AT91SAM9X5) || defined(CONFIG_AT91SAM9N12)
 #define AT91_PMC_MCKR_MDIV_3           0x00000300
 #endif
 #define AT91_PMC_MCKR_MDIV_4           0x00000200
index 8950d674093a09a1663d8643fec4385dc2b16197..1a4e84b050a94e0a4436b22b3532456b928c72cd 100644 (file)
 #define ATMEL_BASE_CS6         0x70000000
 #define ATMEL_BASE_CS7         0x80000000
 
+/* Timer */
+#define CONFIG_SYS_TIMER_COUNTER       0xfffffd3c
+
 /*
  * Other misc defines
  */
index 6dfcf4c0c865706205a790245a57b747cb74af07..914a3b0460e062e5dd2e7d62fd8bf4e97534002e 100644 (file)
 #define ATMEL_BASE_CS6         0x70000000
 #define ATMEL_BASE_CS7         0x80000000
 
+/* Timer */
+#define CONFIG_SYS_TIMER_COUNTER       0xfffffd3c
+
 /*
  * Other misc defines
  */
index 64a3888e227cc7bed21f2f3068d2340ab199b91b..71675abf824faa4c6d60cea13077c783b7927197 100644 (file)
 #define ATMEL_BASE_CS6         0x70000000
 #define ATMEL_BASE_CS7         0x80000000
 
+/* Timer */
+#define CONFIG_SYS_TIMER_COUNTER       0xfffffd3c
+
 /*
  * Other misc defines
  */
index 6df8cdb56d07bb72501272b45e517976b017c56d..cf1c73f3d986219e3aa3fb3a212299fc0928a750 100644 (file)
 #define ATMEL_BASE_CS6         0x70000000
 #define ATMEL_BASE_CS7         0x80000000
 
+/* Timer */
+#define CONFIG_SYS_TIMER_COUNTER       0xfffffd3c
+
 /*
  * Other misc defines
  */
index 3a8e6d62ce51e351b51c9253109c70278fdc839d..70bbf4edaa432f4219db1acf9be4ed27c8f65414 100644 (file)
 #define ATMEL_BASE_CS4         0x50000000      /* Compact Flash Slot 0 */
 #define ATMEL_BASE_CS5         0x60000000      /* Compact Flash Slot 1 */
 
+/* Timer */
+#define CONFIG_SYS_TIMER_COUNTER       0xfffffd3c
+
 /*
  * Other misc defines
  */
index 36a5cdf476882bb6f4161ef12dd33d625482fbaf..8100ebed4b814d557f0a52bb8561b1ceeeeb35e1 100644 (file)
 #define ATMEL_BASE_EHCI                0x00700000 /* USB Host controller (EHCI) */
 #endif
 
+/*
+ * External memory
+ */
+#define ATMEL_BASE_CS0         0x10000000
+#define ATMEL_BASE_CS1         0x20000000
+#define ATMEL_BASE_CS2         0x30000000
+#define ATMEL_BASE_CS3         0x40000000
+#define ATMEL_BASE_CS4         0x50000000
+#define ATMEL_BASE_CS5         0x60000000
+
 /* 9x5 series chip id definitions */
 #define ARCH_ID_AT91SAM9X5     0x819a05a0
 #define ARCH_ID_VERSION_MASK   0x1f
 #define ATMEL_CPU_NAME get_cpu_name()
 #endif
 
+/* Timer */
+#define CONFIG_SYS_TIMER_COUNTER       0xfffffe3c
+
 /*
  * Other misc defines
  */
index 227ba8082551b039e8ace1d7ee77ad3e70abd60b..b749cb3359728bd5444da509fca1338cd5fcf6b5 100644 (file)
 #define PIO_SCDR_DIV           0x3fff
 #define CPU_HAS_PCR
 
+/* Timer */
+#define CONFIG_SYS_TIMER_COUNTER       0xfffffe3c
+
 /*
  * PMECC table in ROM
  */
index f30cb5fed1d0a03acbdfa65334136c26a103bf7b..7773ace43925d6025646edf5237f4a49eeb53b04 100644 (file)
 #define cpu_is_sama5d44()      (cpu_is_sama5d4() && \
                (get_extension_chip_id() == ARCH_EXID_SAMA5D44))
 
+/* Timer */
+#define CONFIG_SYS_TIMER_COUNTER       0xfc06863c
+
 /*
  * No PMECC Galois table in ROM
  */
index beec13db8c1396d792a74cc7d685e848493c9695..e2b6a49eb92f1d7996f9c691ca7af22ed403a139 100644 (file)
@@ -19,7 +19,8 @@ static inline void atmel_mpddr_op(int mode, u32 ram_address)
 
 static int ddr2_decodtype_is_seq(u32 cr)
 {
-#if defined(CONFIG_SAMA5D3) || defined(CONFIG_SAMA5D4)
+#if defined(CONFIG_SAMA5D3) || defined(CONFIG_SAMA5D4) || \
+       defined(CONFIG_AT91SAM9X5) || defined(CONFIG_AT91SAM9N12)
        if (cr & ATMEL_MPDDRC_CR_DECOD_INTERLEAVED)
                return 0;
 #endif
index aaa5eec2e66ff026f32cb265a1725847856cde7b..27a405a42bf884ed49f2646646637e910386057d 100644 (file)
@@ -29,7 +29,7 @@ u32 spl_boot_device(void)
        return BOOT_DEVICE_MMC1;
 #elif CONFIG_SYS_USE_NANDFLASH
        return BOOT_DEVICE_NAND;
-#elif CONFIG_SYS_USE_SERIALFLASH
+#elif CONFIG_SYS_USE_SERIALFLASH || CONFIG_SYS_USE_SPIFLASH
        return BOOT_DEVICE_SPI;
 #endif
        return BOOT_DEVICE_NONE;
index 89f588be45a01a449a2ff6fd3070f522bc022e92..a79a9dce75ac6548eb9729ce7d61ac0b49fab8b5 100644 (file)
@@ -71,7 +71,11 @@ void __weak at91_spl_board_init(void)
 {
 }
 
-void spl_board_init(void)
+void __weak spl_board_init(void)
+{
+}
+
+void board_init_f(ulong dummy)
 {
        struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
 
@@ -111,9 +115,14 @@ void spl_board_init(void)
        timer_init();
 
        /* enable clocks for all PIOs */
+#if defined(CONFIG_AT91SAM9X5) || defined(CONFIG_AT91SAM9N12)
+       at91_periph_clk_enable(ATMEL_ID_PIOAB);
+       at91_periph_clk_enable(ATMEL_ID_PIOCD);
+#else
        at91_periph_clk_enable(ATMEL_ID_PIOA);
        at91_periph_clk_enable(ATMEL_ID_PIOB);
        at91_periph_clk_enable(ATMEL_ID_PIOC);
+#endif
        /* init console */
        at91_seriald_hw_init();
        preloader_console_init();
index 9cc1111234a16f723519281bbd3fd4f7aae7a531..8ac53353e62d3a5755611d858995484e78434de3 100644 (file)
@@ -70,7 +70,12 @@ __weak void redirect_int_from_saic_to_aic(void)
        /* This only be used for sama5d4 soc now */
 }
 
+/* empty stub to satisfy current lowlevel_init, can be removed any time */
 void s_init(void)
+{
+}
+
+void board_init_f(ulong dummy)
 {
        switch_to_main_crystal_osc();
 
@@ -93,4 +98,9 @@ void s_init(void)
        preloader_console_init();
 
        mem_init();
+
+       /* Clear the BSS. */
+       memset(__bss_start, 0, __bss_end - __bss_start);
+
+       board_init_r(NULL, 0);
 }
index b807ef9a42533f21df782a208e6941473033c69d..4289179ee667c4a1aedbf9756de182dacaf88afd 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <common.h>
 #include <asm/io.h>
+#include <asm/arch/clk.h>
 #include <asm/arch/at91sam9g45_matrix.h>
 #include <asm/arch/at91sam9_smc.h>
 #include <asm/arch/at91_common.h>
@@ -15,6 +16,7 @@
 #include <asm/arch/gpio.h>
 #include <asm/arch/clk.h>
 #include <lcd.h>
+#include <linux/mtd/nand.h>
 #include <atmel_lcdc.h>
 #include <atmel_mci.h>
 #if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB)
@@ -71,6 +73,84 @@ void at91sam9m10g45ek_nand_hw_init(void)
 }
 #endif
 
+#if defined(CONFIG_SPL_BUILD)
+#include <spl.h>
+#include <nand.h>
+
+void at91_spl_board_init(void)
+{
+       /*
+        * On the at91sam9m10g45ek board, the chip wm9711 stays in the
+        * test mode, so it needs do some action to exit test mode.
+        */
+       at91_periph_clk_enable(ATMEL_ID_PIODE);
+       at91_set_gpio_output(AT91_PIN_PD7, 0);
+       at91_set_gpio_output(AT91_PIN_PD8, 0);
+       at91_set_pio_pullup(AT91_PIO_PORTD, 7, 1);
+       at91_set_pio_pullup(AT91_PIO_PORTD, 8, 1);
+
+#ifdef CONFIG_SYS_USE_MMC
+       at91_mci_hw_init();
+#elif CONFIG_SYS_USE_NANDFLASH
+       at91sam9m10g45ek_nand_hw_init();
+#endif
+}
+
+#include <asm/arch/atmel_mpddrc.h>
+static void ddr2_conf(struct atmel_mpddr *ddr2)
+{
+       ddr2->md = (ATMEL_MPDDRC_MD_DBW_16_BITS | ATMEL_MPDDRC_MD_DDR2_SDRAM);
+
+       ddr2->cr = (ATMEL_MPDDRC_CR_NC_COL_10 |
+                   ATMEL_MPDDRC_CR_NR_ROW_14 |
+                   ATMEL_MPDDRC_CR_DQMS_SHARED |
+                   ATMEL_MPDDRC_CR_CAS_DDR_CAS3);
+
+       ddr2->rtr = 0x24b;
+
+       ddr2->tpr0 = (6 << ATMEL_MPDDRC_TPR0_TRAS_OFFSET |/* 6*7.5 = 45 ns */
+                     2 << ATMEL_MPDDRC_TPR0_TRCD_OFFSET |/* 2*7.5 = 15 ns */
+                     2 << ATMEL_MPDDRC_TPR0_TWR_OFFSET | /* 2*7.5 = 15 ns */
+                     8 << ATMEL_MPDDRC_TPR0_TRC_OFFSET | /* 8*7.5 = 60 ns */
+                     2 << ATMEL_MPDDRC_TPR0_TRP_OFFSET | /* 2*7.5 = 15 ns */
+                     1 << ATMEL_MPDDRC_TPR0_TRRD_OFFSET | /* 1*7.5= 7.5 ns*/
+                     1 << ATMEL_MPDDRC_TPR0_TWTR_OFFSET | /* 1 clk cycle */
+                     2 << ATMEL_MPDDRC_TPR0_TMRD_OFFSET); /* 2 clk cycles */
+
+       ddr2->tpr1 = (2 << ATMEL_MPDDRC_TPR1_TXP_OFFSET | /* 2*7.5 = 15 ns */
+                     200 << ATMEL_MPDDRC_TPR1_TXSRD_OFFSET |
+                     16 << ATMEL_MPDDRC_TPR1_TXSNR_OFFSET |
+                     14 << ATMEL_MPDDRC_TPR1_TRFC_OFFSET);
+
+       ddr2->tpr2 = (1 << ATMEL_MPDDRC_TPR2_TRTP_OFFSET |
+                     0 << ATMEL_MPDDRC_TPR2_TRPA_OFFSET |
+                     7 << ATMEL_MPDDRC_TPR2_TXARDS_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
+}
+
+void mem_init(void)
+{
+       struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
+       struct at91_matrix *mat = (struct at91_matrix *)ATMEL_BASE_MATRIX;
+       struct atmel_mpddr ddr2;
+       unsigned long csa;
+
+       ddr2_conf(&ddr2);
+
+       /* enable DDR2 clock */
+       writel(0x4, &pmc->scer);
+
+       /* Chip select 1 is for DDR2/SDRAM */
+       csa = readl(&mat->ebicsa);
+       csa |= AT91_MATRIX_EBI_CS1A_SDRAMC;
+       csa &= ~AT91_MATRIX_EBI_VDDIOMSEL_3_3V;
+       writel(csa, &mat->ebicsa);
+
+       /* DDRAM2 Controller initialize */
+       ddr2_init(ATMEL_BASE_CS6, &ddr2);
+}
+#endif
+
 #ifdef CONFIG_CMD_USB
 static void at91sam9m10g45ek_usb_hw_init(void)
 {
index 9adc9920b473bedda137691236cf8c11ccd07522..4f46a0353338be729a01b6d2d71994449bf0214c 100644 (file)
@@ -257,3 +257,76 @@ int dram_init(void)
                                        CONFIG_SYS_SDRAM_SIZE);
        return 0;
 }
+
+#if defined(CONFIG_SPL_BUILD)
+#include <spl.h>
+#include <nand.h>
+
+void at91_spl_board_init(void)
+{
+#ifdef CONFIG_SYS_USE_MMC
+       at91_mci_hw_init();
+#elif CONFIG_SYS_USE_NANDFLASH
+       at91sam9n12ek_nand_hw_init();
+#elif CONFIG_SYS_USE_SPIFLASH
+       at91_spi0_hw_init(1 << 4);
+#endif
+}
+
+#include <asm/arch/atmel_mpddrc.h>
+static void ddr2_conf(struct atmel_mpddr *ddr2)
+{
+       ddr2->md = (ATMEL_MPDDRC_MD_DBW_16_BITS | ATMEL_MPDDRC_MD_DDR2_SDRAM);
+
+       ddr2->cr = (ATMEL_MPDDRC_CR_NC_COL_10 |
+                   ATMEL_MPDDRC_CR_NR_ROW_13 |
+                   ATMEL_MPDDRC_CR_CAS_DDR_CAS3 |
+                   ATMEL_MPDDRC_CR_NB_8BANKS |
+                   ATMEL_MPDDRC_CR_DECOD_INTERLEAVED);
+
+       ddr2->rtr = 0x411;
+
+       ddr2->tpr0 = (6 << ATMEL_MPDDRC_TPR0_TRAS_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TRCD_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TWR_OFFSET |
+                     8 << ATMEL_MPDDRC_TPR0_TRC_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TRP_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TRRD_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TWTR_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TMRD_OFFSET);
+
+       ddr2->tpr1 = (2 << ATMEL_MPDDRC_TPR1_TXP_OFFSET |
+                     200 << ATMEL_MPDDRC_TPR1_TXSRD_OFFSET |
+                     19 << ATMEL_MPDDRC_TPR1_TXSNR_OFFSET |
+                     18 << ATMEL_MPDDRC_TPR1_TRFC_OFFSET);
+
+       ddr2->tpr2 = (2 << ATMEL_MPDDRC_TPR2_TRTP_OFFSET |
+                     3 << ATMEL_MPDDRC_TPR2_TRPA_OFFSET |
+                     7 << ATMEL_MPDDRC_TPR2_TXARDS_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
+}
+
+void mem_init(void)
+{
+       struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
+       struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
+       struct atmel_mpddr ddr2;
+       unsigned long csa;
+
+       ddr2_conf(&ddr2);
+
+       /* enable DDR2 clock */
+       writel(0x4, &pmc->scer);
+
+       /* Chip select 1 is for DDR2/SDRAM */
+       csa = readl(&matrix->ebicsa);
+       csa |= AT91_MATRIX_EBI_CS1A_SDRAMC;
+       csa &= ~AT91_MATRIX_EBI_DBPU_OFF;
+       csa |= AT91_MATRIX_EBI_DBPD_OFF;
+       csa |= AT91_MATRIX_EBI_EBI_IOSR_NORMAL;
+       writel(csa, &matrix->ebicsa);
+
+       /* DDRAM2 Controller initialize */
+       ddr2_init(ATMEL_BASE_CS1, &ddr2);
+}
+#endif
index 17a2a40b4b3dc398c75e9ebee820f398c40db918..114ac5c85abafc6429e86267ca792767e701a45f 100644 (file)
@@ -293,3 +293,77 @@ int dram_init(void)
                                        CONFIG_SYS_SDRAM_SIZE);
        return 0;
 }
+
+#if defined(CONFIG_SPL_BUILD)
+#include <spl.h>
+#include <nand.h>
+
+void at91_spl_board_init(void)
+{
+#ifdef CONFIG_SYS_USE_MMC
+       at91_mci_hw_init();
+#elif CONFIG_SYS_USE_NANDFLASH
+       at91sam9x5ek_nand_hw_init();
+#elif CONFIG_SYS_USE_SPIFLASH
+       at91_spi0_hw_init(1 << 4);
+#endif
+}
+
+#include <asm/arch/atmel_mpddrc.h>
+static void ddr2_conf(struct atmel_mpddr *ddr2)
+{
+       ddr2->md = (ATMEL_MPDDRC_MD_DBW_16_BITS | ATMEL_MPDDRC_MD_DDR2_SDRAM);
+
+       ddr2->cr = (ATMEL_MPDDRC_CR_NC_COL_10 |
+                   ATMEL_MPDDRC_CR_NR_ROW_13 |
+                   ATMEL_MPDDRC_CR_CAS_DDR_CAS3 |
+                   ATMEL_MPDDRC_CR_NB_8BANKS |
+                   ATMEL_MPDDRC_CR_DECOD_INTERLEAVED);
+
+       ddr2->rtr = 0x411;
+
+       ddr2->tpr0 = (6 << ATMEL_MPDDRC_TPR0_TRAS_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TRCD_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TWR_OFFSET |
+                     8 << ATMEL_MPDDRC_TPR0_TRC_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TRP_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TRRD_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TWTR_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR0_TMRD_OFFSET);
+
+       ddr2->tpr1 = (2 << ATMEL_MPDDRC_TPR1_TXP_OFFSET |
+                     200 << ATMEL_MPDDRC_TPR1_TXSRD_OFFSET |
+                     19 << ATMEL_MPDDRC_TPR1_TXSNR_OFFSET |
+                     18 << ATMEL_MPDDRC_TPR1_TRFC_OFFSET);
+
+       ddr2->tpr2 = (7 << ATMEL_MPDDRC_TPR2_TFAW_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR2_TRTP_OFFSET |
+                     3 << ATMEL_MPDDRC_TPR2_TRPA_OFFSET |
+                     7 << ATMEL_MPDDRC_TPR2_TXARDS_OFFSET |
+                     2 << ATMEL_MPDDRC_TPR2_TXARD_OFFSET);
+}
+
+void mem_init(void)
+{
+       struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
+       struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
+       struct atmel_mpddr ddr2;
+       unsigned long csa;
+
+       ddr2_conf(&ddr2);
+
+       /* enable DDR2 clock */
+       writel(0x4, &pmc->scer);
+
+       /* Chip select 1 is for DDR2/SDRAM */
+       csa = readl(&matrix->ebicsa);
+       csa |= AT91_MATRIX_EBI_CS1A_SDRAMC;
+       csa &= ~AT91_MATRIX_EBI_DBPU_OFF;
+       csa |= AT91_MATRIX_EBI_DBPD_OFF;
+       csa |= AT91_MATRIX_EBI_EBI_IOSR_NORMAL;
+       writel(csa, &matrix->ebicsa);
+
+       /* DDRAM2 Controller initialize */
+       ddr2_init(ATMEL_BASE_CS1, &ddr2);
+}
+#endif
index e7f225a15539ca2dfce1bd471aa5180ee581f525..7d447fe76b241b7a621fe1b985b67f0e1387d189 100644 (file)
@@ -24,6 +24,7 @@
 #include <netdev.h>
 #include <nand.h>
 #include <spi.h>
+#include <version.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -179,6 +180,7 @@ void lcd_show_board_info(void)
        int i;
        char temp[32];
 
+       lcd_printf("%s\n", U_BOOT_VERSION);
        lcd_printf("2014 ATMEL Corp\n");
        lcd_printf("%s CPU at %s MHz\n", get_cpu_name(),
                   strmhz(temp, get_cpu_clk_rate()));
index 46e504131c8ca43f5e24033aea2deddd417e0841..e9bbb4b1c81521d13945997ded556535838bdb04 100644 (file)
@@ -24,6 +24,7 @@
 #include <netdev.h>
 #include <nand.h>
 #include <spi.h>
+#include <version.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -174,6 +175,7 @@ void lcd_show_board_info(void)
        int i;
        char temp[32];
 
+       lcd_printf("%s\n", U_BOOT_VERSION);
        lcd_printf("2014 ATMEL Corp\n");
        lcd_printf("at91@atmel.com\n");
        lcd_printf("%s CPU at %s MHz\n", get_cpu_name(),
index 6949d3a007901083333baa5f4691fb2b3f598f22..f3e1ebec9316a08e3aba5d88dcce7b08a785a941 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9M10G45,SYS_USE_MMC"
 CONFIG_ARM=y
 CONFIG_ARCH_AT91=y
index 30967e39c499104d7d64fa446fe752f11a312a92..5e0b16e775a6ee905c8ec5fe1f667088bee7c243 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9M10G45,SYS_USE_NANDFLASH"
 CONFIG_ARM=y
 CONFIG_ARCH_AT91=y
index f908246d3ddc354054d52d37d59d5bf3dce8103c..11b42d4a9d84c3de896a876e6e3f55052b8fb138 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9N12,SYS_USE_NANDFLASH"
 CONFIG_ARM=y
 CONFIG_ARCH_AT91=y
index d106b5a28e18364ba754ecb9e4cdfc66eb8ae226..5426bcd2882754a0d1d00d075778be8baeec6838 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9N12,SYS_USE_SPIFLASH"
 CONFIG_ARM=y
 CONFIG_ARCH_AT91=y
index c2ebb00a979fae6672a8b05e52e60cc5ff9fd49b..6eea1af904abc24557f867a2a2bf3042913a3483 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9X5,SYS_USE_NANDFLASH"
 CONFIG_ARM=y
 CONFIG_ARCH_AT91=y
index 76f68a6039bb9e2f1612c9ef2f7efedf23022ef7..7ef1534a6e653c40676538c8570ce3cf1bbe5869 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_SPL=y
 CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9X5,SYS_USE_SPIFLASH"
 CONFIG_ARM=y
 CONFIG_ARCH_AT91=y
index 266a2ab49857d214626dd6aaf41366c426a99d1e..0427e9ed60f7f359eef396792f5778073fee10a6 100644 (file)
@@ -1,5 +1,5 @@
 CONFIG_SPL=y
-CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9M10G45,SYS_USE_NANDFLASH"
+CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9M10G45,MACH_TYPE=2066,SYS_USE_NANDFLASH"
 CONFIG_ARM=y
 CONFIG_ARCH_AT91=y
 CONFIG_TARGET_CORVUS=y
index b16e3aa15749428e1a9937f98767ae662b55acb6..a2016e7945d0f06a6c33bc9703e2bdb33665d998 100644 (file)
@@ -1456,6 +1456,9 @@ int board_nand_init(struct nand_chip *nand)
        nand->dev_ready = at91_nand_wait_ready;
 #endif
        nand->chip_delay = 20;
+#ifdef CONFIG_SYS_NAND_USE_FLASH_BBT
+       nand->bbt_options |= NAND_BBT_USE_FLASH;
+#endif
 
 #ifdef CONFIG_ATMEL_NAND_HWECC
 #ifdef CONFIG_ATMEL_NAND_HW_PMECC
@@ -1522,6 +1525,9 @@ int atmel_nand_chip_init(int devnum, ulong base_addr)
        nand->dev_ready = at91_nand_ready;
 #endif
        nand->chip_delay = 75;
+#ifdef CONFIG_SYS_NAND_USE_FLASH_BBT
+       nand->bbt_options |= NAND_BBT_USE_FLASH;
+#endif
 
        ret = nand_scan_ident(mtd, CONFIG_SYS_NAND_MAX_CHIPS, NULL);
        if (ret)
diff --git a/include/configs/at91-sama5_common.h b/include/configs/at91-sama5_common.h
new file mode 100644 (file)
index 0000000..dedb785
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Common part of configuration settings for the AT91 SAMA5 board.
+ *
+ * Copyright (C) 2015 Atmel Corporation
+ *                   Josh Wu <josh.wu@atmel.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#ifndef __AT91_SAMA5_COMMON_H
+#define __AT91_SAMA5_COMMON_H
+
+#include <asm/hardware.h>
+
+#define CONFIG_SYS_TEXT_BASE           0x26f00000
+
+/* ARM asynchronous clock */
+#define CONFIG_SYS_AT91_SLOW_CLOCK      32768
+#define CONFIG_SYS_AT91_MAIN_CLOCK      12000000 /* from 12 MHz crystal */
+
+#define CONFIG_ARCH_CPU_INIT
+
+#ifndef CONFIG_SPL_BUILD
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#endif
+
+#define CONFIG_BOARD_EARLY_INIT_F
+#define CONFIG_DISPLAY_CPUINFO
+
+#define CONFIG_CMD_BOOTZ
+#define CONFIG_OF_LIBFDT               /* Device Tree support */
+
+#define CONFIG_SYS_GENERIC_BOARD
+
+/* general purpose I/O */
+#define CONFIG_AT91_GPIO
+
+#define CONFIG_BOOTDELAY               3
+
+/*
+ * BOOTP options
+ */
+#define CONFIG_BOOTP_BOOTFILESIZE
+#define CONFIG_BOOTP_BOOTPATH
+#define CONFIG_BOOTP_GATEWAY
+#define CONFIG_BOOTP_HOSTNAME
+
+/*
+ * Command line configuration.
+ */
+#include <config_cmd_default.h>
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_IMI
+#undef CONFIG_CMD_LOADS
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_SETEXPR
+
+#ifdef CONFIG_SYS_USE_MMC
+#define CONFIG_BOOTARGS                                                        \
+       "console=ttyS0,115200 earlyprintk "                             \
+       "root=/dev/mmcblk0p2 rw rootwait"
+#else
+#define CONFIG_BOOTARGS                                                        \
+       "console=ttyS0,115200 earlyprintk "                             \
+       "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,"          \
+       "256K(env),256k(evn_redundent),256k(spare),"                    \
+       "512k(dtb),6M(kernel)ro,-(rootfs) "                             \
+       "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs"
+#endif
+
+#define CONFIG_BAUDRATE                        115200
+
+#define CONFIG_SYS_PROMPT              "U-Boot> "
+#define CONFIG_SYS_CBSIZE              256
+#define CONFIG_SYS_MAXARGS             16
+#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
+                                       sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_CMDLINE_EDITING
+#define CONFIG_AUTO_COMPLETE
+#define CONFIG_SYS_HUSH_PARSER
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN          (4 * 1024 * 1024)
+
+#endif
index db5d5ea846b24062a6803557d0f034b9b3198704..e4c49f4c14758188f4799cf72072f1a57a8e7762 100644 (file)
  */
 #define CONFIG_SYS_MALLOC_LEN          ROUND(3 * CONFIG_ENV_SIZE + 128*1024, 0x1000)
 
+/* Defines for SPL */
+#define CONFIG_SPL_FRAMEWORK
+#define CONFIG_SPL_TEXT_BASE           0x300000
+#define CONFIG_SPL_MAX_SIZE            0x010000
+#define CONFIG_SPL_STACK               0x310000
+
+#define CONFIG_SPL_LIBCOMMON_SUPPORT
+#define CONFIG_SPL_LIBGENERIC_SUPPORT
+#define CONFIG_SPL_SERIAL_SUPPORT
+#define CONFIG_SPL_GPIO_SUPPORT
+
+#define CONFIG_SYS_MONITOR_LEN         0x80000
+
+#ifdef CONFIG_SYS_USE_MMC
+
+#define CONFIG_SPL_BSS_START_ADDR      0x70000000
+#define CONFIG_SPL_BSS_MAX_SIZE                0x00080000
+#define CONFIG_SYS_SPL_MALLOC_START    0x70080000
+#define CONFIG_SYS_SPL_MALLOC_SIZE     0x00080000
+
+#define CONFIG_SPL_LDSCRIPT            arch/arm/mach-at91/arm926ejs/u-boot-spl.lds
+#define CONFIG_SPL_MMC_SUPPORT
+#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS     0x400
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x200
+#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION     1
+#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME                "u-boot.img"
+#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_SPL_NAND_ECC
+#define CONFIG_SPL_NAND_SOFTECC
+#define CONFIG_SYS_NAND_U_BOOT_OFFS    0x40000
+#define CONFIG_SYS_NAND_U_BOOT_SIZE    0x80000
+#define CONFIG_SYS_NAND_5_ADDR_CYCLE
+
+#define CONFIG_SYS_NAND_PAGE_SIZE      0x800
+#define CONFIG_SYS_NAND_BLOCK_SIZE     0x20000
+#define CONFIG_SYS_NAND_PAGE_COUNT     64
+#define CONFIG_SYS_NAND_BAD_BLOCK_POS  NAND_LARGE_BADBLOCK_POS
+#define CONFIG_SYS_NAND_ECCSIZE                256
+#define CONFIG_SYS_NAND_ECCBYTES       3
+#define CONFIG_SYS_NAND_OOBSIZE                64
+#define CONFIG_SYS_NAND_ECCPOS         { 40, 41, 42, 43, 44, 45, 46, 47, \
+                                         48, 49, 50, 51, 52, 53, 54, 55, \
+                                         56, 57, 58, 59, 60, 61, 62, 63, }
+#endif
+
+#define CONFIG_SPL_ATMEL_SIZE
+#define CONFIG_SYS_MASTER_CLOCK                132096000
+#define CONFIG_SYS_AT91_PLLA           0x20c73f03
+#define CONFIG_SYS_MCKR                        0x1301
+#define CONFIG_SYS_MCKR_CSS            0x1302
+
+#define ATMEL_BASE_MPDDRC              ATMEL_BASE_DDRSDRC0
 #endif
index f02fce95b39ea631017620593907f7714654f723..c44da1c19e57a353ce0db12523e1e13bdf606f4f 100644 (file)
 #else /* CONFIG_SYS_USE_MMC */
 
 /* bootstrap + u-boot + env + linux in mmc */
-#define CONFIG_ENV_IS_IN_MMC
-/* For FAT system, most cases it should be in the reserved sector */
+
+#ifdef CONFIG_ENV_IS_IN_MMC
+/* Use raw reserved sectors to save environment */
 #define CONFIG_ENV_OFFSET              0x2000
 #define CONFIG_ENV_SIZE                        0x1000
 #define CONFIG_SYS_MMC_ENV_DEV         0
+#else
+/* Use file in FAT file to save environment */
+#define CONFIG_ENV_IS_IN_FAT
+#define CONFIG_FAT_WRITE
+#define FAT_ENV_INTERFACE              "mmc"
+#define FAT_ENV_FILE                   "uboot.env"
+#define FAT_ENV_DEVICE_AND_PART                "0"
+#define CONFIG_ENV_SIZE                        0x4000
+#endif
+
 #define CONFIG_BOOTCOMMAND                                             \
        "setenv bootargs ${console} ${mtdparts} ${bootargs_mmc};"       \
        "fatload mmc 0:1 0x21000000 dtb;"                               \
  * Size of malloc() pool
  */
 #define CONFIG_SYS_MALLOC_LEN  (4 * 1024 * 1024)
-#define CONFIG_STACKSIZE       (32 * 1024)     /* regular stack */
+
+/* SPL */
+#define CONFIG_SPL_FRAMEWORK
+#define CONFIG_SPL_TEXT_BASE           0x300000
+#define CONFIG_SPL_MAX_SIZE            0x6000
+#define CONFIG_SPL_STACK               0x308000
+
+#define CONFIG_SPL_BSS_START_ADDR      0x20000000
+#define CONFIG_SPL_BSS_MAX_SIZE                0x80000
+#define CONFIG_SYS_SPL_MALLOC_START    0x20080000
+#define CONFIG_SYS_SPL_MALLOC_SIZE     0x80000
+
+#define CONFIG_SPL_LIBCOMMON_SUPPORT
+#define CONFIG_SPL_LIBGENERIC_SUPPORT
+#define CONFIG_SPL_GPIO_SUPPORT
+#define CONFIG_SPL_SERIAL_SUPPORT
+
+#define CONFIG_SPL_BOARD_INIT
+#define CONFIG_SYS_MONITOR_LEN         (512 << 10)
+
+#define CONFIG_SYS_MASTER_CLOCK                132096000
+#define CONFIG_SYS_AT91_PLLA           0x20953f03
+#define CONFIG_SYS_MCKR                        0x1301
+#define CONFIG_SYS_MCKR_CSS            0x1302
+
+#define ATMEL_BASE_MPDDRC              ATMEL_BASE_DDRSDRC
+
+#ifdef CONFIG_SYS_USE_MMC
+#define CONFIG_SPL_LDSCRIPT            arch/arm/mach-at91/arm926ejs/u-boot-spl.lds
+#define CONFIG_SPL_MMC_SUPPORT
+#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS     0x400
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x200
+#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION     1
+#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME                "u-boot.img"
+#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
+#define CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER
+
+#elif CONFIG_SYS_USE_SPIFLASH
+#define CONFIG_SPL_SPI_SUPPORT
+#define CONFIG_SPL_SPI_FLASH_SUPPORT
+#define CONFIG_SPL_SPI_LOAD
+#define CONFIG_SYS_SPI_U_BOOT_OFFS     0x8400
+
+#endif
 
 #endif
index 6d8b71dcedadec2a4fd420b11709544b55786b99..1a481b3fd12f522a917f2750e447ba4d5c602a00 100644 (file)
  */
 #define CONFIG_SYS_MALLOC_LEN          (512 * 1024 + 0x1000)
 
+/* SPL */
+#define CONFIG_SPL_FRAMEWORK
+#define CONFIG_SPL_TEXT_BASE           0x300000
+#define CONFIG_SPL_MAX_SIZE            0x6000
+#define CONFIG_SPL_STACK               0x308000
+
+#define CONFIG_SPL_BSS_START_ADDR      0x20000000
+#define CONFIG_SPL_BSS_MAX_SIZE                0x80000
+#define CONFIG_SYS_SPL_MALLOC_START    0x20080000
+#define CONFIG_SYS_SPL_MALLOC_SIZE     0x80000
+
+#define CONFIG_SPL_LIBCOMMON_SUPPORT
+#define CONFIG_SPL_LIBGENERIC_SUPPORT
+#define CONFIG_SPL_GPIO_SUPPORT
+#define CONFIG_SPL_SERIAL_SUPPORT
+
+#define CONFIG_SPL_BOARD_INIT
+#define CONFIG_SYS_MONITOR_LEN         (512 << 10)
+
+#define CONFIG_SYS_MASTER_CLOCK                132096000
+#define CONFIG_SYS_AT91_PLLA           0x20c73f03
+#define CONFIG_SYS_MCKR                        0x1301
+#define CONFIG_SYS_MCKR_CSS            0x1302
+
+#define ATMEL_BASE_MPDDRC              ATMEL_BASE_DDRSDRC
+
+#ifdef CONFIG_SYS_USE_MMC
+#define CONFIG_SPL_LDSCRIPT            arch/arm/mach-at91/arm926ejs/u-boot-spl.lds
+#define CONFIG_SPL_MMC_SUPPORT
+#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS     0x400
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x200
+#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION     1
+#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME                "u-boot.img"
+#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
+#define CONFIG_SPL_GENERATE_ATMEL_PMECC_HEADER
+
+#elif CONFIG_SYS_USE_SPIFLASH
+#define CONFIG_SPL_SPI_SUPPORT
+#define CONFIG_SPL_SPI_FLASH_SUPPORT
+#define CONFIG_SPL_SPI_LOAD
+#define CONFIG_SYS_SPI_U_BOOT_OFFS     0x8400
+
+#endif
+
 #endif
index ace511f76534bc9188a2222eee32a0f15cb2bc0f..f5b8f9b4421b694d7847eddb8803dcd0cf3d45ce 100644 (file)
@@ -16,9 +16,6 @@
 
 #include <asm/hardware.h>
 
-#define MACH_TYPE_CORVUS               2066
-
-#define CONFIG_MACH_TYPE               MACH_TYPE_CORVUS
 #define CONFIG_SYS_GENERIC_BOARD
 /*
  * Warning: changing CONFIG_SYS_TEXT_BASE requires
index c82728e99934bcfcc9af074ddbfc898b465284b1..bfd8aa7e6c2ef7fb738cd6c3d0c5c47af8dccc63 100644 (file)
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#include <asm/hardware.h>
-
-#define CONFIG_SYS_TEXT_BASE           0x26f00000
-
-/* ARM asynchronous clock */
-#define CONFIG_SYS_AT91_SLOW_CLOCK      32768
-#define CONFIG_SYS_AT91_MAIN_CLOCK      12000000 /* from 12 MHz crystal */
-
-#define CONFIG_ARCH_CPU_INIT
-
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_SKIP_LOWLEVEL_INIT
-#endif
-
-#define CONFIG_BOARD_EARLY_INIT_F
-#define CONFIG_DISPLAY_CPUINFO
-
-#define CONFIG_CMD_BOOTZ
-#define CONFIG_OF_LIBFDT               /* Device Tree support */
-
-#define CONFIG_SYS_GENERIC_BOARD
+/* No NOR flash, this definition should put before common header */
+#define CONFIG_SYS_NO_FLASH
 
-/* general purpose I/O */
-#define CONFIG_AT91_GPIO
+#include "at91-sama5_common.h"
 
 /* serial console */
 #define CONFIG_ATMEL_USART
  */
 #define ATMEL_PMC_UHP                  AT91SAM926x_PMC_UHP
 
-#define CONFIG_BOOTDELAY               3
-
-/*
- * BOOTP options
- */
-#define CONFIG_BOOTP_BOOTFILESIZE
-#define CONFIG_BOOTP_BOOTPATH
-#define CONFIG_BOOTP_GATEWAY
-#define CONFIG_BOOTP_HOSTNAME
-
-/* No NOR flash */
-#define CONFIG_SYS_NO_FLASH
-
-/*
- * Command line configuration.
- */
-#include <config_cmd_default.h>
-#undef CONFIG_CMD_FPGA
-#undef CONFIG_CMD_IMI
-#undef CONFIG_CMD_LOADS
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_DHCP
-
 /* SDRAM */
 #define CONFIG_NR_DRAM_BANKS           1
 #define CONFIG_SYS_SDRAM_BASE           ATMEL_BASE_DDRCS
 #define CONFIG_ENV_IS_NOWHERE
 #endif
 
-#ifdef CONFIG_SYS_USE_MMC
-#define CONFIG_BOOTARGS                                                        \
-       "console=ttyS0,115200 earlyprintk "                             \
-       "root=/dev/mmcblk0p2 rw rootwait"
-#else
-#define CONFIG_BOOTARGS                                                        \
-       "console=ttyS0,115200 earlyprintk "                             \
-       "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,"          \
-       "256K(env),256k(evn_redundent),256k(spare),"                    \
-       "512k(dtb),6M(kernel)ro,-(rootfs) "                             \
-       "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs"
-#endif
-
-#define CONFIG_BAUDRATE                        115200
-
-#define CONFIG_SYS_PROMPT              "U-Boot> "
-#define CONFIG_SYS_CBSIZE              256
-#define CONFIG_SYS_MAXARGS             16
-#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
-                                       sizeof(CONFIG_SYS_PROMPT) + 16)
-#define CONFIG_SYS_LONGHELP
-#define CONFIG_CMDLINE_EDITING
-#define CONFIG_AUTO_COMPLETE
-#define CONFIG_SYS_HUSH_PARSER
-
-/* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN          (4 * 1024 * 1024)
-
 /* SPL */
 #define CONFIG_SPL_FRAMEWORK
 #define CONFIG_SPL_TEXT_BASE           0x300000
index a99b559da68e112a98a15f35b5673ae781fc8f63..d933a9e7c684ec9ae9a185197b90adba39e12ab2 100644 (file)
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#include <asm/hardware.h>
-
-#define CONFIG_SYS_TEXT_BASE           0x26f00000
-
-/* ARM asynchronous clock */
-#define CONFIG_SYS_AT91_SLOW_CLOCK      32768
-#define CONFIG_SYS_AT91_MAIN_CLOCK      12000000 /* from 12 MHz crystal */
-
-#define CONFIG_ARCH_CPU_INIT
-
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_SKIP_LOWLEVEL_INIT
-#endif
-
-#define CONFIG_BOARD_EARLY_INIT_F
-#define CONFIG_DISPLAY_CPUINFO
-
-#define CONFIG_CMD_BOOTZ
-#define CONFIG_OF_LIBFDT               /* Device Tree support */
-
-#define CONFIG_SYS_GENERIC_BOARD
-
-/* general purpose I/O */
-#define CONFIG_AT91_GPIO
+/*
+ * If has No NOR flash, please put the definition: CONFIG_SYS_NO_FLASH
+ * before the common header.
+ */
+#include "at91-sama5_common.h"
 
 /* serial console */
 #define CONFIG_ATMEL_USART
 /* board specific (not enough SRAM) */
 #define CONFIG_SAMA5D3_LCD_BASE                0x23E00000
 
-#define CONFIG_BOOTDELAY               3
-
-/*
- * BOOTP options
- */
-#define CONFIG_BOOTP_BOOTFILESIZE
-#define CONFIG_BOOTP_BOOTPATH
-#define CONFIG_BOOTP_GATEWAY
-#define CONFIG_BOOTP_HOSTNAME
-
 /* NOR flash */
+#ifndef CONFIG_SYS_NO_FLASH
 #define CONFIG_CMD_FLASH
-
-#ifdef CONFIG_CMD_FLASH
 #define CONFIG_FLASH_CFI_DRIVER
 #define CONFIG_SYS_FLASH_CFI
 #define CONFIG_SYS_FLASH_PROTECTION
 #define CONFIG_SYS_FLASH_BASE          0x10000000
 #define CONFIG_SYS_MAX_FLASH_SECT      131
 #define CONFIG_SYS_MAX_FLASH_BANKS     1
-#else
-#define CONFIG_SYS_NO_FLASH
 #endif
 
-/*
- * Command line configuration.
- */
-#include <config_cmd_default.h>
-#undef CONFIG_CMD_FPGA
-#undef CONFIG_CMD_IMI
-#undef CONFIG_CMD_LOADS
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_DHCP
-
 /* SDRAM */
 #define CONFIG_NR_DRAM_BANKS           1
 #define CONFIG_SYS_SDRAM_BASE           ATMEL_BASE_DDRCS
 #define CONFIG_ENV_IS_NOWHERE
 #endif
 
-#ifdef CONFIG_SYS_USE_MMC
-#define CONFIG_BOOTARGS                                                        \
-       "console=ttyS0,115200 earlyprintk "                             \
-       "root=/dev/mmcblk0p2 rw rootwait"
-#else
-#define CONFIG_BOOTARGS                                                        \
-       "console=ttyS0,115200 earlyprintk "                             \
-       "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,"          \
-       "256K(env),256k(evn_redundent),256k(spare),"                    \
-       "512k(dtb),6M(kernel)ro,-(rootfs) "                             \
-       "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs"
-#endif
-
-#define CONFIG_BAUDRATE                        115200
-
-#define CONFIG_SYS_PROMPT              "U-Boot> "
-#define CONFIG_SYS_CBSIZE              256
-#define CONFIG_SYS_MAXARGS             16
-#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
-                                       sizeof(CONFIG_SYS_PROMPT) + 16)
-#define CONFIG_SYS_LONGHELP
-#define CONFIG_CMDLINE_EDITING
-#define CONFIG_AUTO_COMPLETE
-#define CONFIG_SYS_HUSH_PARSER
-
-/* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN          (1024 * 1024)
-
 /* SPL */
 #define CONFIG_SPL_FRAMEWORK
 #define CONFIG_SPL_TEXT_BASE           0x300000
index 4cb076152035ba60f7c8076d1b0049d58038ef82..5fb621ec8531aa79aeaac1a71eaf634c9e53ac99 100644 (file)
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#include <asm/hardware.h>
-
-#define CONFIG_SYS_TEXT_BASE           0x26f00000
-
-/* ARM asynchronous clock */
-#define CONFIG_SYS_AT91_SLOW_CLOCK      32768
-#define CONFIG_SYS_AT91_MAIN_CLOCK      12000000 /* from 12 MHz crystal */
-
-#define CONFIG_ARCH_CPU_INIT
-
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_SKIP_LOWLEVEL_INIT
-#endif
-#define CONFIG_BOARD_EARLY_INIT_F
-#define CONFIG_DISPLAY_CPUINFO
-
-#define CONFIG_CMD_BOOTZ
-#define CONFIG_OF_LIBFDT               /* Device Tree support */
-
-#define CONFIG_SYS_GENERIC_BOARD
+/* No NOR flash, this definition should put before common header */
+#define CONFIG_SYS_NO_FLASH
 
-/* general purpose I/O */
-#define CONFIG_AT91_GPIO
+#include "at91-sama5_common.h"
 
 /* serial console */
 #define CONFIG_ATMEL_USART
 #define CONFIG_USART_BASE              ATMEL_BASE_USART3
 #define CONFIG_USART_ID                        ATMEL_ID_USART3
 
-#define CONFIG_BOOTDELAY               3
-
-/*
- * BOOTP options
- */
-#define CONFIG_BOOTP_BOOTFILESIZE
-#define CONFIG_BOOTP_BOOTPATH
-#define CONFIG_BOOTP_GATEWAY
-#define CONFIG_BOOTP_HOSTNAME
-
-/* No NOR flash */
-#define CONFIG_SYS_NO_FLASH
-
-/*
- * Command line configuration.
- */
-#include <config_cmd_default.h>
-#undef CONFIG_CMD_FPGA
-#undef CONFIG_CMD_IMI
-#undef CONFIG_CMD_LOADS
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_DHCP
-#define CONFIG_CMD_SETEXPR
-
 /* SDRAM */
 #define CONFIG_NR_DRAM_BANKS           1
 #define CONFIG_SYS_SDRAM_BASE           ATMEL_BASE_DDRCS
                                "bootz 0x22000000 - 0x21000000"
 #endif
 
-#ifdef CONFIG_SYS_USE_MMC
-#define CONFIG_BOOTARGS                                                        \
-       "console=ttyS0,115200 earlyprintk "                             \
-       "root=/dev/mmcblk0p2 rw rootwait"
-#else
-#define CONFIG_BOOTARGS                                                        \
-       "console=ttyS0,115200 earlyprintk "                             \
-       "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,"          \
-       "256K(env),256k(evn_redundent),256k(spare),"                    \
-       "512k(dtb),6M(kernel)ro,-(rootfs) "                             \
-       "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs"
-#endif
-
-#define CONFIG_BAUDRATE                        115200
-
-#define CONFIG_SYS_PROMPT              "U-Boot> "
-#define CONFIG_SYS_CBSIZE              256
-#define CONFIG_SYS_MAXARGS             16
-#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
-                                       sizeof(CONFIG_SYS_PROMPT) + 16)
-#define CONFIG_SYS_LONGHELP
-#define CONFIG_CMDLINE_EDITING
-#define CONFIG_AUTO_COMPLETE
-#define CONFIG_SYS_HUSH_PARSER
-
-/* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN          (4 * 1024 * 1024)
 
 
 /* SPL */
index 897d4819f8fd740d57447ea51d8e90d226f4aafc..546d7a3a9f38db9ed5c36ed457a32a776f83dec9 100644 (file)
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#include <asm/hardware.h>
-
-#define CONFIG_SYS_TEXT_BASE           0x26f00000
-
-/* ARM asynchronous clock */
-#define CONFIG_SYS_AT91_SLOW_CLOCK      32768
-#define CONFIG_SYS_AT91_MAIN_CLOCK      12000000 /* from 12 MHz crystal */
-
-#define CONFIG_ARCH_CPU_INIT
-
-#ifndef CONFIG_SPL_BUILD
-#define CONFIG_SKIP_LOWLEVEL_INIT
-#endif
-#define CONFIG_BOARD_EARLY_INIT_F
-#define CONFIG_DISPLAY_CPUINFO
-
-#define CONFIG_CMD_BOOTZ
-#define CONFIG_OF_LIBFDT               /* Device Tree support */
-
-#define CONFIG_SYS_GENERIC_BOARD
+/* No NOR flash, this definition should put before common header */
+#define CONFIG_SYS_NO_FLASH
 
-/* general purpose I/O */
-#define CONFIG_AT91_GPIO
+#include "at91-sama5_common.h"
 
 /* serial console */
 #define CONFIG_ATMEL_USART
 #define CONFIG_USART_BASE              ATMEL_BASE_USART3
 #define        CONFIG_USART_ID                 ATMEL_ID_USART3
 
-#define CONFIG_BOOTDELAY               3
-
-/*
- * BOOTP options
- */
-#define CONFIG_BOOTP_BOOTFILESIZE
-#define CONFIG_BOOTP_BOOTPATH
-#define CONFIG_BOOTP_GATEWAY
-#define CONFIG_BOOTP_HOSTNAME
-
-/* No NOR flash */
-#define CONFIG_SYS_NO_FLASH
-
-/*
- * Command line configuration.
- */
-#include <config_cmd_default.h>
-#undef CONFIG_CMD_FPGA
-#undef CONFIG_CMD_IMI
-#undef CONFIG_CMD_LOADS
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_DHCP
-#define CONFIG_CMD_SETEXPR
-
 /* SDRAM */
 #define CONFIG_NR_DRAM_BANKS           1
 #define CONFIG_SYS_SDRAM_BASE           ATMEL_BASE_DDRCS
                                "bootz 0x22000000 - 0x21000000"
 #endif
 
-#ifdef CONFIG_SYS_USE_MMC
-#define CONFIG_BOOTARGS                                                        \
-       "console=ttyS0,115200 earlyprintk "                             \
-       "root=/dev/mmcblk0p2 rw rootwait"
-#else
-#define CONFIG_BOOTARGS                                                        \
-       "console=ttyS0,115200 earlyprintk "                             \
-       "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,"          \
-       "256K(env),256k(evn_redundent),256k(spare),"                    \
-       "512k(dtb),6M(kernel)ro,-(rootfs) "                             \
-       "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs"
-#endif
-
-#define CONFIG_BAUDRATE                        115200
-
-#define CONFIG_SYS_PROMPT              "U-Boot> "
-#define CONFIG_SYS_CBSIZE              256
-#define CONFIG_SYS_MAXARGS             16
-#define CONFIG_SYS_PBSIZE              (CONFIG_SYS_CBSIZE + \
-                                       sizeof(CONFIG_SYS_PROMPT) + 16)
-#define CONFIG_SYS_LONGHELP
-#define CONFIG_CMDLINE_EDITING
-#define CONFIG_AUTO_COMPLETE
-#define CONFIG_SYS_HUSH_PARSER
-
-/* Size of malloc() pool */
-#define CONFIG_SYS_MALLOC_LEN          (4 * 1024 * 1024)
-
-
 /* SPL */
 #define CONFIG_SPL_FRAMEWORK
 #define CONFIG_SPL_TEXT_BASE           0x200000