diff mbox

[U-Boot,6/7] sunxi: Enable CONFIG_SPL_STACK_R

Message ID 1442158965-29962-7-git-send-email-hdegoede@redhat.com
State Accepted
Delegated to: Hans de Goede
Headers show

Commit Message

Hans de Goede Sept. 13, 2015, 3:42 p.m. UTC
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>
---
 arch/arm/Kconfig                             | 1 +
 configs/A10-OLinuXino-Lime_defconfig         | 1 +
 configs/A10s-OLinuXino-M_defconfig           | 1 +
 configs/A13-OLinuXinoM_defconfig             | 1 +
 configs/A13-OLinuXino_defconfig              | 1 +
 configs/A20-OLinuXino-Lime2_defconfig        | 1 +
 configs/A20-OLinuXino-Lime_defconfig         | 1 +
 configs/A20-OLinuXino_MICRO_defconfig        | 1 +
 configs/A20-Olimex-SOM-EVB_defconfig         | 1 +
 configs/Ainol_AW1_defconfig                  | 1 +
 configs/Ampe_A76_defconfig                   | 1 +
 configs/Auxtek-T003_defconfig                | 1 +
 configs/Auxtek-T004_defconfig                | 1 +
 configs/Bananapi_defconfig                   | 1 +
 configs/Bananapro_defconfig                  | 1 +
 configs/CSQ_CS908_defconfig                  | 1 +
 configs/Chuwi_V7_CW0825_defconfig            | 1 +
 configs/Colombus_defconfig                   | 1 +
 configs/Cubieboard2_defconfig                | 1 +
 configs/Cubieboard_defconfig                 | 1 +
 configs/Cubietruck_defconfig                 | 1 +
 configs/Et_q8_v1_6_defconfig                 | 1 +
 configs/Hummingbird_A31_defconfig            | 1 +
 configs/Hyundai_A7HD_defconfig               | 1 +
 configs/Ippo_q8h_v1_2_a33_1024x600_defconfig | 1 +
 configs/Ippo_q8h_v1_2_defconfig              | 1 +
 configs/Ippo_q8h_v5_defconfig                | 1 +
 configs/Linksprite_pcDuino3_Nano_defconfig   | 1 +
 configs/Linksprite_pcDuino3_defconfig        | 1 +
 configs/Linksprite_pcDuino_defconfig         | 1 +
 configs/MK808C_defconfig                     | 1 +
 configs/MSI_Primo73_defconfig                | 1 +
 configs/MSI_Primo81_defconfig                | 1 +
 configs/Marsboard_A10_defconfig              | 1 +
 configs/Mele_A1000G_quad_defconfig           | 1 +
 configs/Mele_A1000_defconfig                 | 1 +
 configs/Mele_I7_defconfig                    | 1 +
 configs/Mele_M3_defconfig                    | 1 +
 configs/Mele_M5_defconfig                    | 1 +
 configs/Mele_M9_defconfig                    | 1 +
 configs/Merrii_A80_Optimus_defconfig         | 1 +
 configs/Mini-X_defconfig                     | 1 +
 configs/Orangepi_defconfig                   | 1 +
 configs/Orangepi_mini_defconfig              | 1 +
 configs/Sinlinx_SinA33_defconfig             | 1 +
 configs/TZX-Q8-713B7_defconfig               | 1 +
 configs/UTOO_P66_defconfig                   | 1 +
 configs/Wexler_TAB7200_defconfig             | 1 +
 configs/Wits_Pro_A20_DKT_defconfig           | 1 +
 configs/Wobo_i5_defconfig                    | 1 +
 configs/Yones_Toptech_BD1078_defconfig       | 1 +
 configs/ba10_tv_box_defconfig                | 1 +
 configs/forfun_q88db_defconfig               | 1 +
 configs/ga10h_v1_1_defconfig                 | 1 +
 configs/gt90h_v4_defconfig                   | 1 +
 configs/i12-tvbox_defconfig                  | 1 +
 configs/iNet_3F_defconfig                    | 1 +
 configs/iNet_3W_defconfig                    | 1 +
 configs/iNet_86VS_defconfig                  | 1 +
 configs/inet1_defconfig                      | 1 +
 configs/inet97fv2_defconfig                  | 1 +
 configs/inet98v_rev2_defconfig               | 1 +
 configs/inet9f_rev03_defconfig               | 1 +
 configs/jesurun_q5_defconfig                 | 1 +
 configs/mixtile_loftq_defconfig              | 1 +
 configs/mk802_a10s_defconfig                 | 1 +
 configs/mk802_defconfig                      | 1 +
 configs/mk802ii_defconfig                    | 1 +
 configs/pov_protab2_ips9_defconfig           | 1 +
 configs/q8_a13_tablet_defconfig              | 1 +
 configs/r7-tv-dongle_defconfig               | 1 +
 configs/sunxi_Gemei_G9_defconfig             | 1 +
 include/configs/sunxi-common.h               | 6 ++++++
 73 files changed, 78 insertions(+)

Comments

Ian Campbell Sept. 13, 2015, 4:33 p.m. UTC | #1
On Sun, 2015-09-13 at 17:42 +0200, Hans de Goede wrote:
> index 7c1507b..6aa1bf2 100644
> --- a/include/configs/sunxi-common.h
> +++ b/include/configs/sunxi-common.h
> @@ -73,6 +73,9 @@
>  #define CONFIG_SYS_LOAD_ADDR		0x22000000 /* default
> load address */
>  #define CONFIG_SYS_TEXT_BASE		0x2a000000
>  #define CONFIG_PRE_CON_BUF_ADDR		0x2f000000
> +/* Note this is primarily set through Kconfig, we redefine it here so that
> + * we get warnings if the Kconfig value mismatches. */

Mismatches with what? Why can't we just use the Kconfig supplied value
throughout?

If there is a piece of code somewhere which cannot use the Kconfig
value for some reason and is therefore hardcoded then using
BUILD_BUG_ON would be best IMHO. There should also be a comment next to
the B_B_ON explaining why that code cannot use the Kconfig value.

> +#define CONFIG_SPL_STACK_R_ADDR		0x2fe00000

Ian.
Hans de Goede Sept. 13, 2015, 4:38 p.m. UTC | #2
Hi,

On 13-09-15 18:33, Ian Campbell wrote:
> On Sun, 2015-09-13 at 17:42 +0200, Hans de Goede wrote:
>> index 7c1507b..6aa1bf2 100644
>> --- a/include/configs/sunxi-common.h
>> +++ b/include/configs/sunxi-common.h
>> @@ -73,6 +73,9 @@
>>   #define CONFIG_SYS_LOAD_ADDR		0x22000000 /* default
>> load address */
>>   #define CONFIG_SYS_TEXT_BASE		0x2a000000
>>   #define CONFIG_PRE_CON_BUF_ADDR		0x2f000000
>> +/* Note this is primarily set through Kconfig, we redefine it here so that
>> + * we get warnings if the Kconfig value mismatches. */
>
> Mismatches with what? Why can't we just use the Kconfig supplied value
> throughout?

Mismatches with the value defined here in sunxi-common.h, sunxi-common.h
lists all other spl memory addresses right in this block, making it
possible to quickly see what goes there. If someone ever decides to tweak
the layout, then they will likely forget the single value which is set
in the defconfig-s, but they will (presumably) update the copy in
sunxi-common.h, as that is sitting there right next to the others.

If this happens then the compiler will give a warning (for each C-file)
that CONFIG_SPL_STACK_R_ADDR is being redefined.

So functionality wise this does nothing, leaving it out will result
in an identical build. It is just there to help us poor humans to
not forger to update the value in the defconfig files if we ever
decide to tweak the SPL memory layout.

Regards,

Hans
Ian Campbell Sept. 13, 2015, 6:50 p.m. UTC | #3
On Sun, 2015-09-13 at 18:38 +0200, Hans de Goede wrote:
> Hi,
> 
> On 13-09-15 18:33, Ian Campbell wrote:
> > On Sun, 2015-09-13 at 17:42 +0200, Hans de Goede wrote:
> >> index 7c1507b..6aa1bf2 100644
> >> --- a/include/configs/sunxi-common.h
> >> +++ b/include/configs/sunxi-common.h
> >> @@ -73,6 +73,9 @@
> >>   #define CONFIG_SYS_LOAD_ADDR		0x22000000 /*
> default
> >> load address */
> >>   #define CONFIG_SYS_TEXT_BASE		0x2a000000
> >>   #define CONFIG_PRE_CON_BUF_ADDR		0x2f000000
> >> +/* Note this is primarily set through Kconfig, we redefine it
> here so that
> >> + * we get warnings if the Kconfig value mismatches. */
> >
> > Mismatches with what? Why can't we just use the Kconfig supplied
> value
> > throughout?
> 
> Mismatches with the value defined here in sunxi-common.h, sunxi
> -common.h
> lists all other spl memory addresses right in this block, making it
> possible to quickly see what goes there. If someone ever decides to
> tweak
> the layout, then they will likely forget the single value which is
> set
> in the defconfig-s, but they will (presumably) update the copy in
> sunxi-common.h, as that is sitting there right next to the others.
> 
> If this happens then the compiler will give a warning (for each C
> -file)
> that CONFIG_SPL_STACK_R_ADDR is being redefined.
> 
> So functionality wise this does nothing, leaving it out will result
> in an identical build. It is just there to help us poor humans to
> not forger to update the value in the defconfig files if we ever
> decide to tweak the SPL memory layout.

Got it, in which case I would drop the "primarily" from the comment,
since that suggests it is defined "secondarily" here, when really it is
just for documentation (with a clever trick to stop the docs getting
out of date).

Maybe even:

/* 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. */

???

(And presumably this all gets less mad as more and more stuff moves to
Kconfig...)

Ian.
Hans de Goede Sept. 13, 2015, 6:51 p.m. UTC | #4
Hi,

On 13-09-15 20:50, Ian Campbell wrote:
> On Sun, 2015-09-13 at 18:38 +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 13-09-15 18:33, Ian Campbell wrote:
>>> On Sun, 2015-09-13 at 17:42 +0200, Hans de Goede wrote:
>>>> index 7c1507b..6aa1bf2 100644
>>>> --- a/include/configs/sunxi-common.h
>>>> +++ b/include/configs/sunxi-common.h
>>>> @@ -73,6 +73,9 @@
>>>>    #define CONFIG_SYS_LOAD_ADDR		0x22000000 /*
>> default
>>>> load address */
>>>>    #define CONFIG_SYS_TEXT_BASE		0x2a000000
>>>>    #define CONFIG_PRE_CON_BUF_ADDR		0x2f000000
>>>> +/* Note this is primarily set through Kconfig, we redefine it
>> here so that
>>>> + * we get warnings if the Kconfig value mismatches. */
>>>
>>> Mismatches with what? Why can't we just use the Kconfig supplied
>> value
>>> throughout?
>>
>> Mismatches with the value defined here in sunxi-common.h, sunxi
>> -common.h
>> lists all other spl memory addresses right in this block, making it
>> possible to quickly see what goes there. If someone ever decides to
>> tweak
>> the layout, then they will likely forget the single value which is
>> set
>> in the defconfig-s, but they will (presumably) update the copy in
>> sunxi-common.h, as that is sitting there right next to the others.
>>
>> If this happens then the compiler will give a warning (for each C
>> -file)
>> that CONFIG_SPL_STACK_R_ADDR is being redefined.
>>
>> So functionality wise this does nothing, leaving it out will result
>> in an identical build. It is just there to help us poor humans to
>> not forger to update the value in the defconfig files if we ever
>> decide to tweak the SPL memory layout.
>
> Got it, in which case I would drop the "primarily" from the comment,
> since that suggests it is defined "secondarily" here, when really it is
> just for documentation (with a clever trick to stop the docs getting
> out of date).
>
> Maybe even:
>
> /* 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. */

That works for me, I'll replace my comment with the one you've suggested.

Regards,

Hans
Ian Campbell Sept. 14, 2015, 6 a.m. UTC | #5
On Sun, 2015-09-13 at 20:51 +0200, Hans de Goede wrote:
> Hi,
> 
> On 13-09-15 20:50, Ian Campbell wrote:

> > Maybe even:
> >
> > /* 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. */
> 
> That works for me, I'll replace my comment with the one you've suggested.

That version: Acked-by: Ian Campbell <ijc@hellion.org.uk>
diff mbox

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 57c48d5..a862a7a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -518,6 +518,7 @@  config ARCH_SUNXI
 	select DM_USB
 	select OF_CONTROL
 	select OF_SEPARATE
+	select SPL_STACK_R
 	select USB
 	select USB_STORAGE
 	select USB_KEYBOARD
diff --git a/configs/A10-OLinuXino-Lime_defconfig b/configs/A10-OLinuXino-Lime_defconfig
index ee219f8..08f69d6 100644
--- a/configs/A10-OLinuXino-Lime_defconfig
+++ b/configs/A10-OLinuXino-Lime_defconfig
@@ -13,3 +13,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPC(3)"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/A10s-OLinuXino-M_defconfig b/configs/A10s-OLinuXino-M_defconfig
index 7783c7d..fea71a0 100644
--- a/configs/A10s-OLinuXino-M_defconfig
+++ b/configs/A10s-OLinuXino-M_defconfig
@@ -14,3 +14,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER,SUNXI_EMAC"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/A13-OLinuXinoM_defconfig b/configs/A13-OLinuXinoM_defconfig
index ccf35c7..8445143 100644
--- a/configs/A13-OLinuXinoM_defconfig
+++ b/configs/A13-OLinuXinoM_defconfig
@@ -18,3 +18,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/A13-OLinuXino_defconfig b/configs/A13-OLinuXino_defconfig
index 1f68d98..fcaa822 100644
--- a/configs/A13-OLinuXino_defconfig
+++ b/configs/A13-OLinuXino_defconfig
@@ -19,3 +19,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/A20-OLinuXino-Lime2_defconfig b/configs/A20-OLinuXino-Lime2_defconfig
index c9d0f47..ed56de8 100644
--- a/configs/A20-OLinuXino-Lime2_defconfig
+++ b/configs/A20-OLinuXino-Lime2_defconfig
@@ -14,3 +14,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPC(3
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/A20-OLinuXino-Lime_defconfig b/configs/A20-OLinuXino-Lime_defconfig
index 4a257b3..cc0a47c 100644
--- a/configs/A20-OLinuXino-Lime_defconfig
+++ b/configs/A20-OLinuXino-Lime_defconfig
@@ -12,3 +12,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPC(3)"
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/A20-OLinuXino_MICRO_defconfig b/configs/A20-OLinuXino_MICRO_defconfig
index a7f1395..5feee69 100644
--- a/configs/A20-OLinuXino_MICRO_defconfig
+++ b/configs/A20-OLinuXino_MICRO_defconfig
@@ -15,3 +15,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPB(8)"
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/A20-Olimex-SOM-EVB_defconfig b/configs/A20-Olimex-SOM-EVB_defconfig
index e8c3d18..ec0d1e5 100644
--- a/configs/A20-Olimex-SOM-EVB_defconfig
+++ b/configs/A20-Olimex-SOM-EVB_defconfig
@@ -14,3 +14,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPC(3
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Ainol_AW1_defconfig b/configs/Ainol_AW1_defconfig
index 7c41aa8..70552e8 100644
--- a/configs/Ainol_AW1_defconfig
+++ b/configs/Ainol_AW1_defconfig
@@ -19,3 +19,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Ampe_A76_defconfig b/configs/Ampe_A76_defconfig
index 57ff52d..a02c8a35 100644
--- a/configs/Ampe_A76_defconfig
+++ b/configs/Ampe_A76_defconfig
@@ -20,3 +20,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Auxtek-T003_defconfig b/configs/Auxtek-T003_defconfig
index b9692dc..769f66d 100644
--- a/configs/Auxtek-T003_defconfig
+++ b/configs/Auxtek-T003_defconfig
@@ -13,3 +13,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Auxtek-T004_defconfig b/configs/Auxtek-T004_defconfig
index c019176..1892f02 100644
--- a/configs/Auxtek-T004_defconfig
+++ b/configs/Auxtek-T004_defconfig
@@ -11,3 +11,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Bananapi_defconfig b/configs/Bananapi_defconfig
index 560295f..13d0377 100644
--- a/configs/Bananapi_defconfig
+++ b/configs/Bananapi_defconfig
@@ -13,3 +13,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHC
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Bananapro_defconfig b/configs/Bananapro_defconfig
index 346db34..b2a3261 100644
--- a/configs/Bananapro_defconfig
+++ b/configs/Bananapro_defconfig
@@ -15,3 +15,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHC
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/CSQ_CS908_defconfig b/configs/CSQ_CS908_defconfig
index 7c8eca8..a1453b4 100644
--- a/configs/CSQ_CS908_defconfig
+++ b/configs/CSQ_CS908_defconfig
@@ -16,3 +16,4 @@  CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3300
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Chuwi_V7_CW0825_defconfig b/configs/Chuwi_V7_CW0825_defconfig
index 7f1c4eb..5f4c87b 100644
--- a/configs/Chuwi_V7_CW0825_defconfig
+++ b/configs/Chuwi_V7_CW0825_defconfig
@@ -22,3 +22,4 @@  CONFIG_VIDEO_LCD_SPI_CS="PA0"
 CONFIG_VIDEO_LCD_SPI_SCLK="PA1"
 CONFIG_VIDEO_LCD_SPI_MOSI="PA2"
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Colombus_defconfig b/configs/Colombus_defconfig
index 35f644a..61d98a2 100644
--- a/configs/Colombus_defconfig
+++ b/configs/Colombus_defconfig
@@ -25,3 +25,4 @@  CONFIG_ETH_DESIGNWARE=y
 CONFIG_AXP221_ALDO1_VOLT=3300
 CONFIG_AXP221_ELDO3_VOLT=1800
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Cubieboard2_defconfig b/configs/Cubieboard2_defconfig
index 9bcaed1..50fe24e 100644
--- a/configs/Cubieboard2_defconfig
+++ b/configs/Cubieboard2_defconfig
@@ -12,3 +12,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPB(8)"
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Cubieboard_defconfig b/configs/Cubieboard_defconfig
index bbda5bf..eec0863 100644
--- a/configs/Cubieboard_defconfig
+++ b/configs/Cubieboard_defconfig
@@ -11,3 +11,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPB(8)"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Cubietruck_defconfig b/configs/Cubietruck_defconfig
index e1b76ce..fdb78c1 100644
--- a/configs/Cubietruck_defconfig
+++ b/configs/Cubietruck_defconfig
@@ -14,3 +14,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPH(1
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Et_q8_v1_6_defconfig b/configs/Et_q8_v1_6_defconfig
index 65b8e1a..055b495 100644
--- a/configs/Et_q8_v1_6_defconfig
+++ b/configs/Et_q8_v1_6_defconfig
@@ -21,3 +21,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
 CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3000
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Hummingbird_A31_defconfig b/configs/Hummingbird_A31_defconfig
index 35c746c..2695eb8 100644
--- a/configs/Hummingbird_A31_defconfig
+++ b/configs/Hummingbird_A31_defconfig
@@ -16,3 +16,4 @@  CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPA(21)"
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_AXP221_ALDO1_VOLT=3300
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Hyundai_A7HD_defconfig b/configs/Hyundai_A7HD_defconfig
index 9ef06a7..a571261 100644
--- a/configs/Hyundai_A7HD_defconfig
+++ b/configs/Hyundai_A7HD_defconfig
@@ -20,3 +20,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig b/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig
index 40ccf8f..4d607d6 100644
--- a/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig
+++ b/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig
@@ -22,3 +22,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
 CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3000
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Ippo_q8h_v1_2_defconfig b/configs/Ippo_q8h_v1_2_defconfig
index 5b49c44..7d79bcb 100644
--- a/configs/Ippo_q8h_v1_2_defconfig
+++ b/configs/Ippo_q8h_v1_2_defconfig
@@ -22,3 +22,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
 CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3000
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Ippo_q8h_v5_defconfig b/configs/Ippo_q8h_v5_defconfig
index 5316860..80ed134 100644
--- a/configs/Ippo_q8h_v5_defconfig
+++ b/configs/Ippo_q8h_v5_defconfig
@@ -22,3 +22,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
 CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3000
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Linksprite_pcDuino3_Nano_defconfig b/configs/Linksprite_pcDuino3_Nano_defconfig
index 0b64b60..3259020 100644
--- a/configs/Linksprite_pcDuino3_Nano_defconfig
+++ b/configs/Linksprite_pcDuino3_Nano_defconfig
@@ -14,3 +14,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPH(2
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Linksprite_pcDuino3_defconfig b/configs/Linksprite_pcDuino3_defconfig
index cced032..24c6bd6 100644
--- a/configs/Linksprite_pcDuino3_defconfig
+++ b/configs/Linksprite_pcDuino3_defconfig
@@ -12,3 +12,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2)"
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Linksprite_pcDuino_defconfig b/configs/Linksprite_pcDuino_defconfig
index de44890..1ff3bfe 100644
--- a/configs/Linksprite_pcDuino_defconfig
+++ b/configs/Linksprite_pcDuino_defconfig
@@ -10,3 +10,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/MK808C_defconfig b/configs/MK808C_defconfig
index 5e37485..49c5625 100644
--- a/configs/MK808C_defconfig
+++ b/configs/MK808C_defconfig
@@ -10,3 +10,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/MSI_Primo73_defconfig b/configs/MSI_Primo73_defconfig
index a60ce34..9dd1f55 100644
--- a/configs/MSI_Primo73_defconfig
+++ b/configs/MSI_Primo73_defconfig
@@ -14,3 +14,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/MSI_Primo81_defconfig b/configs/MSI_Primo81_defconfig
index 3b8e043..6969b3f 100644
--- a/configs/MSI_Primo81_defconfig
+++ b/configs/MSI_Primo81_defconfig
@@ -24,3 +24,4 @@  CONFIG_VIDEO_LCD_SPI_SCLK="PH10"
 CONFIG_VIDEO_LCD_SPI_MOSI="PH11"
 CONFIG_VIDEO_LCD_SPI_MISO="PH12"
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Marsboard_A10_defconfig b/configs/Marsboard_A10_defconfig
index 4933659..9f98ccc 100644
--- a/configs/Marsboard_A10_defconfig
+++ b/configs/Marsboard_A10_defconfig
@@ -9,3 +9,4 @@  CONFIG_SYS_EXTRA_OPTIONS="SUNXI_EMAC,AHCI"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Mele_A1000G_quad_defconfig b/configs/Mele_A1000G_quad_defconfig
index 5e31ef6..b02febb 100644
--- a/configs/Mele_A1000G_quad_defconfig
+++ b/configs/Mele_A1000G_quad_defconfig
@@ -18,3 +18,4 @@  CONFIG_AXP221_DLDO4_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3300
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Mele_A1000_defconfig b/configs/Mele_A1000_defconfig
index b983c8c..5905e4f 100644
--- a/configs/Mele_A1000_defconfig
+++ b/configs/Mele_A1000_defconfig
@@ -11,3 +11,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,MACPWR=SUNXI_GPH(15),AHCI"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Mele_I7_defconfig b/configs/Mele_I7_defconfig
index 774a92f..23ea80b 100644
--- a/configs/Mele_I7_defconfig
+++ b/configs/Mele_I7_defconfig
@@ -17,3 +17,4 @@  CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_DLDO4_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3300
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Mele_M3_defconfig b/configs/Mele_M3_defconfig
index 5c9796a..498e8b7 100644
--- a/configs/Mele_M3_defconfig
+++ b/configs/Mele_M3_defconfig
@@ -15,3 +15,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC"
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Mele_M5_defconfig b/configs/Mele_M5_defconfig
index 0d1ba15..aa6070d 100644
--- a/configs/Mele_M5_defconfig
+++ b/configs/Mele_M5_defconfig
@@ -14,3 +14,4 @@  CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC,AHCI,STATUSLED=234"
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Mele_M9_defconfig b/configs/Mele_M9_defconfig
index b52e3c2..716a9e4 100644
--- a/configs/Mele_M9_defconfig
+++ b/configs/Mele_M9_defconfig
@@ -17,3 +17,4 @@  CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_DLDO4_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3300
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Merrii_A80_Optimus_defconfig b/configs/Merrii_A80_Optimus_defconfig
index 53e023a..acfbd21 100644
--- a/configs/Merrii_A80_Optimus_defconfig
+++ b/configs/Merrii_A80_Optimus_defconfig
@@ -11,3 +11,4 @@  CONFIG_DEFAULT_DEVICE_TREE="sun9i-a80-optimus"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
+CONFIG_SPL_STACK_R_ADDR=0x2fe00000
diff --git a/configs/Mini-X_defconfig b/configs/Mini-X_defconfig
index 31d6217..755b2ec 100644
--- a/configs/Mini-X_defconfig
+++ b/configs/Mini-X_defconfig
@@ -12,3 +12,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Orangepi_defconfig b/configs/Orangepi_defconfig
index d67bb90..4966aff 100644
--- a/configs/Orangepi_defconfig
+++ b/configs/Orangepi_defconfig
@@ -16,3 +16,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHC
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Orangepi_mini_defconfig b/configs/Orangepi_mini_defconfig
index 71d236b..af45541 100644
--- a/configs/Orangepi_mini_defconfig
+++ b/configs/Orangepi_mini_defconfig
@@ -18,3 +18,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHC
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Sinlinx_SinA33_defconfig b/configs/Sinlinx_SinA33_defconfig
index 720f3dc..2167665 100644
--- a/configs/Sinlinx_SinA33_defconfig
+++ b/configs/Sinlinx_SinA33_defconfig
@@ -10,3 +10,4 @@  CONFIG_SPL=y
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_AXP221_ALDO1_VOLT=3000
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/TZX-Q8-713B7_defconfig b/configs/TZX-Q8-713B7_defconfig
index f5e3574..a9e6257 100644
--- a/configs/TZX-Q8-713B7_defconfig
+++ b/configs/TZX-Q8-713B7_defconfig
@@ -19,3 +19,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/UTOO_P66_defconfig b/configs/UTOO_P66_defconfig
index 5417814..8cad8bb 100644
--- a/configs/UTOO_P66_defconfig
+++ b/configs/UTOO_P66_defconfig
@@ -26,3 +26,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FPGA is not set
 # CONFIG_REQUIRE_SERIAL_CONSOLE is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Wexler_TAB7200_defconfig b/configs/Wexler_TAB7200_defconfig
index 02504f9..2db35bb 100644
--- a/configs/Wexler_TAB7200_defconfig
+++ b/configs/Wexler_TAB7200_defconfig
@@ -19,3 +19,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Wits_Pro_A20_DKT_defconfig b/configs/Wits_Pro_A20_DKT_defconfig
index 66b51bc..81bbfda 100644
--- a/configs/Wits_Pro_A20_DKT_defconfig
+++ b/configs/Wits_Pro_A20_DKT_defconfig
@@ -17,3 +17,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI"
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Wobo_i5_defconfig b/configs/Wobo_i5_defconfig
index 206fd48..7e988a5 100644
--- a/configs/Wobo_i5_defconfig
+++ b/configs/Wobo_i5_defconfig
@@ -12,3 +12,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/Yones_Toptech_BD1078_defconfig b/configs/Yones_Toptech_BD1078_defconfig
index e26816c..ae50556 100644
--- a/configs/Yones_Toptech_BD1078_defconfig
+++ b/configs/Yones_Toptech_BD1078_defconfig
@@ -24,3 +24,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/ba10_tv_box_defconfig b/configs/ba10_tv_box_defconfig
index 104d53d..d85b891 100644
--- a/configs/ba10_tv_box_defconfig
+++ b/configs/ba10_tv_box_defconfig
@@ -15,3 +15,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC"
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/forfun_q88db_defconfig b/configs/forfun_q88db_defconfig
index 30e0937..de5037e 100644
--- a/configs/forfun_q88db_defconfig
+++ b/configs/forfun_q88db_defconfig
@@ -18,3 +18,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/ga10h_v1_1_defconfig b/configs/ga10h_v1_1_defconfig
index 417a89c..aa1e747 100644
--- a/configs/ga10h_v1_1_defconfig
+++ b/configs/ga10h_v1_1_defconfig
@@ -25,3 +25,4 @@  CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3000
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/gt90h_v4_defconfig b/configs/gt90h_v4_defconfig
index 3b72dc2..e6bd733 100644
--- a/configs/gt90h_v4_defconfig
+++ b/configs/gt90h_v4_defconfig
@@ -24,3 +24,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
 CONFIG_AXP221_DCDC2_VOLT=1100
 CONFIG_AXP221_DLDO1_VOLT=3300
 CONFIG_AXP221_ALDO1_VOLT=3000
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/i12-tvbox_defconfig b/configs/i12-tvbox_defconfig
index d4d9524..3646bd6 100644
--- a/configs/i12-tvbox_defconfig
+++ b/configs/i12-tvbox_defconfig
@@ -12,3 +12,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,MACPWR=SUNXI_GPH(21)"
 # CONFIG_CMD_FPGA is not set
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/iNet_3F_defconfig b/configs/iNet_3F_defconfig
index 211cb86..f792eb3 100644
--- a/configs/iNet_3F_defconfig
+++ b/configs/iNet_3F_defconfig
@@ -19,3 +19,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/iNet_3W_defconfig b/configs/iNet_3W_defconfig
index 35f08e5..2447fdb 100644
--- a/configs/iNet_3W_defconfig
+++ b/configs/iNet_3W_defconfig
@@ -19,3 +19,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/iNet_86VS_defconfig b/configs/iNet_86VS_defconfig
index bb8d080..c34b1cd 100644
--- a/configs/iNet_86VS_defconfig
+++ b/configs/iNet_86VS_defconfig
@@ -18,3 +18,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/inet1_defconfig b/configs/inet1_defconfig
index b2ba497..399a976 100644
--- a/configs/inet1_defconfig
+++ b/configs/inet1_defconfig
@@ -20,3 +20,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/inet97fv2_defconfig b/configs/inet97fv2_defconfig
index d7ddee1..5aeddbe 100644
--- a/configs/inet97fv2_defconfig
+++ b/configs/inet97fv2_defconfig
@@ -18,3 +18,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/inet98v_rev2_defconfig b/configs/inet98v_rev2_defconfig
index c23245a..6b2284c 100644
--- a/configs/inet98v_rev2_defconfig
+++ b/configs/inet98v_rev2_defconfig
@@ -20,3 +20,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/inet9f_rev03_defconfig b/configs/inet9f_rev03_defconfig
index fdfb02a..fe2b350 100644
--- a/configs/inet9f_rev03_defconfig
+++ b/configs/inet9f_rev03_defconfig
@@ -18,3 +18,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_IMLS is not set
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/jesurun_q5_defconfig b/configs/jesurun_q5_defconfig
index 46c38e5..889696a 100644
--- a/configs/jesurun_q5_defconfig
+++ b/configs/jesurun_q5_defconfig
@@ -13,3 +13,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,MACPWR=SUNXI_GPH(19)"
 CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_MUSB_HOST=y
 CONFIG_USB0_VBUS_PIN="PB9"
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/mixtile_loftq_defconfig b/configs/mixtile_loftq_defconfig
index 26fc4ce..cc8a024 100644
--- a/configs/mixtile_loftq_defconfig
+++ b/configs/mixtile_loftq_defconfig
@@ -15,3 +15,4 @@  CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPA(21)"
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_AXP221_ALDO1_VOLT=3300
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/mk802_a10s_defconfig b/configs/mk802_a10s_defconfig
index db437f0..b0584b5 100644
--- a/configs/mk802_a10s_defconfig
+++ b/configs/mk802_a10s_defconfig
@@ -12,3 +12,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/mk802_defconfig b/configs/mk802_defconfig
index 68b2c5e..c2136b7 100644
--- a/configs/mk802_defconfig
+++ b/configs/mk802_defconfig
@@ -10,3 +10,4 @@  CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/mk802ii_defconfig b/configs/mk802ii_defconfig
index d3cb664..5cf742c 100644
--- a/configs/mk802ii_defconfig
+++ b/configs/mk802ii_defconfig
@@ -9,3 +9,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/pov_protab2_ips9_defconfig b/configs/pov_protab2_ips9_defconfig
index 3107f31..b28eb4d 100644
--- a/configs/pov_protab2_ips9_defconfig
+++ b/configs/pov_protab2_ips9_defconfig
@@ -19,3 +19,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/q8_a13_tablet_defconfig b/configs/q8_a13_tablet_defconfig
index 2c61f51..16b2d51 100644
--- a/configs/q8_a13_tablet_defconfig
+++ b/configs/q8_a13_tablet_defconfig
@@ -20,3 +20,4 @@  CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_MUSB_HOST=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/r7-tv-dongle_defconfig b/configs/r7-tv-dongle_defconfig
index 62c58fc..77c9170 100644
--- a/configs/r7-tv-dongle_defconfig
+++ b/configs/r7-tv-dongle_defconfig
@@ -11,3 +11,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/configs/sunxi_Gemei_G9_defconfig b/configs/sunxi_Gemei_G9_defconfig
index d0f987c..66c763e 100644
--- a/configs/sunxi_Gemei_G9_defconfig
+++ b/configs/sunxi_Gemei_G9_defconfig
@@ -16,3 +16,4 @@  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER"
 # CONFIG_CMD_FLASH is not set
 # CONFIG_CMD_FPGA is not set
 CONFIG_USB_EHCI_HCD=y
+CONFIG_SPL_STACK_R_ADDR=0x4fe00000
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index 7c1507b..6aa1bf2 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -73,6 +73,9 @@ 
 #define CONFIG_SYS_LOAD_ADDR		0x22000000 /* default load address */
 #define CONFIG_SYS_TEXT_BASE		0x2a000000
 #define CONFIG_PRE_CON_BUF_ADDR		0x2f000000
+/* Note this is primarily set through Kconfig, we redefine it here so that
+ * 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
@@ -81,6 +84,9 @@ 
 #define CONFIG_SYS_LOAD_ADDR		0x42000000 /* default load address */
 #define CONFIG_SYS_TEXT_BASE		0x4a000000
 #define CONFIG_PRE_CON_BUF_ADDR		0x4f000000
+/* Note this is primarily set through Kconfig, we redefine it here so that
+ * 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