board: sama5d2_xplained: Make SPL work on spiflash
authorWenyou Yang <wenyou.yang@microchip.com>
Wed, 13 Sep 2017 06:58:50 +0000 (14:58 +0800)
committerTom Rini <trini@konsulko.com>
Thu, 14 Sep 2017 20:02:44 +0000 (16:02 -0400)
Because before switching to a lower clock source, we must switch
the clock source first instead of last. So before configuring the
PMC_MCKR register, invoke at91_mck_init_down() first.

As said in datasheet, the the size of SPL must not exceed the maximum
size allowed(64Kbytes).

Signed-off-by: Wenyou Yang <wenyou.yang@microchip.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
board/atmel/sama5d2_xplained/sama5d2_xplained.c
include/configs/sama5d2_xplained.h

index 7e0cb42..5758653 100644 (file)
@@ -247,6 +247,16 @@ void at91_pmc_init(void)
        struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
        u32 tmp;
 
+       /*
+        * while coming from the ROM code, we run on PLLA @ 492 MHz / 164 MHz
+        * so we need to slow down and configure MCKR accordingly.
+        * This is why we have a special flavor of the switching function.
+        */
+       tmp = AT91_PMC_MCKR_PLLADIV_2 |
+             AT91_PMC_MCKR_MDIV_3 |
+             AT91_PMC_MCKR_CSS_MAIN;
+       at91_mck_init_down(tmp);
+
        tmp = AT91_PMC_PLLAR_29 |
              AT91_PMC_PLLXR_PLLCOUNT(0x3f) |
              AT91_PMC_PLLXR_MUL(82) |
index 891218d..aedd568 100644 (file)
@@ -61,7 +61,7 @@
 /* SPL */
 #define CONFIG_SPL_FRAMEWORK
 #define CONFIG_SPL_TEXT_BASE           0x200000
-#define CONFIG_SPL_MAX_SIZE            0x18000
+#define CONFIG_SPL_MAX_SIZE            0x10000
 #define CONFIG_SPL_BSS_START_ADDR      0x20000000
 #define CONFIG_SPL_BSS_MAX_SIZE                0x80000
 #define CONFIG_SYS_SPL_MALLOC_START    0x20080000