sunxi: Enable CONFIG_SPL_STACK_R
authorHans de Goede <hdegoede@redhat.com>
Sun, 13 Sep 2015 11:02:48 +0000 (13:02 +0200)
committerHans de Goede <hdegoede@redhat.com>
Tue, 20 Oct 2015 16:40:27 +0000 (18:40 +0200)
Select CONFIG_SPL_STACK_R for sunxi boards, this gives us much more
room on the stack once we've the DRAM running.

Besides being a good change to have on itself, this also paves the
way for switching to using malloc_simple in the SPL which cuts of
close to 4KiB of the SPL size.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
arch/arm/Kconfig
board/sunxi/Kconfig
include/configs/sunxi-common.h

index 7981355..1a7e916 100644 (file)
@@ -522,6 +522,7 @@ config ARCH_SUNXI
        select DM_USB
        select OF_CONTROL
        select OF_SEPARATE
+       select SPL_STACK_R if !MACH_SUN9I
        select USB
        select USB_STORAGE
        select USB_KEYBOARD
index 55906b5..b336777 100644 (file)
@@ -562,4 +562,8 @@ config GMAC_TX_DELAY
        ---help---
        Set the GMAC Transmit Clock Delay Chain value.
 
+config SPL_STACK_R_ADDR
+       default 0x4fe00000 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN7I || MACH_SUN8I
+       default 0x2fe00000 if MACH_SUN9I
+
 endif
index e1ba791..2ba21b3 100644 (file)
 #define CONFIG_SYS_LOAD_ADDR           0x22000000 /* default load address */
 #define CONFIG_SYS_TEXT_BASE           0x2a000000
 #define CONFIG_PRE_CON_BUF_ADDR                0x2f000000
+/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here 
+ * since it needs to fit in with the other values. By also #defining it
+ * we get warnings if the Kconfig value mismatches. */
+#define CONFIG_SPL_STACK_R_ADDR                0x2fe00000
 #define CONFIG_SYS_SPL_MALLOC_START    0x2ff00000
 #define CONFIG_SPL_BSS_START_ADDR      0x2ff80000
 #else
 #define CONFIG_SYS_LOAD_ADDR           0x42000000 /* default load address */
 #define CONFIG_SYS_TEXT_BASE           0x4a000000
 #define CONFIG_PRE_CON_BUF_ADDR                0x4f000000
+/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here 
+ * since it needs to fit in with the other values. By also #defining it
+ * we get warnings if the Kconfig value mismatches. */
+#define CONFIG_SPL_STACK_R_ADDR                0x4fe00000
 #define CONFIG_SYS_SPL_MALLOC_START    0x4ff00000
 #define CONFIG_SPL_BSS_START_ADDR      0x4ff80000
 #endif