[openwrt/openwrt] brcm47xx: relocate the stack in loader

LEDE Commits lede-commits at lists.infradead.org
Fri Jan 5 16:01:59 PST 2018


hauke pushed a commit to openwrt/openwrt.git, branch lede-17.01:
https://git.lede-project.org/ddedcb19e52909b9de851bcdad500656069046b5

commit ddedcb19e52909b9de851bcdad500656069046b5
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Oct 8 18:31:03 2017 +0200

    brcm47xx: relocate the stack in loader
    
    By default we are reusing the stack provided by CFE, like it is intended
    by CFE. On my WRT54GS it is located at 0x8043BF30, so a big kernel image
    could overwrite it. Relocate it to a different memory region which is
    still under the 8MB RAM, but in the higher area. We only need this
    memory region for the stack of the loader, Linux will set up this
    for its own.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/brcm47xx/image/lzma-loader/src/Makefile | 5 +++--
 target/linux/brcm47xx/image/lzma-loader/src/head.S   | 1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/target/linux/brcm47xx/image/lzma-loader/src/Makefile b/target/linux/brcm47xx/image/lzma-loader/src/Makefile
index 444039c..a08fc05 100644
--- a/target/linux/brcm47xx/image/lzma-loader/src/Makefile
+++ b/target/linux/brcm47xx/image/lzma-loader/src/Makefile
@@ -19,6 +19,7 @@
 
 TEXT_START	:= 0x80001000
 BZ_TEXT_START	:= 0x80600000
+BZ_STACK_START	:= 0x80700000
 
 OBJCOPY		:= $(CROSS_COMPILE)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S
 
@@ -28,9 +29,9 @@ CFLAGS		= -D__KERNEL__ -Wall -Wstrict-prototypes -Wno-trigraphs -Os \
 		  -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap
 CFLAGS		+= -DLOADADDR=$(TEXT_START) -D_LZMA_IN_CB
 
-ASFLAGS		= $(CFLAGS) -D__ASSEMBLY__ -DBZ_TEXT_START=$(BZ_TEXT_START)
+ASFLAGS		= $(CFLAGS) -D__ASSEMBLY__ -DBZ_TEXT_START=$(BZ_TEXT_START) -DBZ_STACK_START=$(BZ_STACK_START)
 
-SEDFLAGS	:= s/BZ_TEXT_START/$(BZ_TEXT_START)/;s/TEXT_START/$(TEXT_START)/
+SEDFLAGS	:= s/BZ_TEXT_START/$(BZ_TEXT_START)/;s/BZ_STACK_START/$(BZ_STACK_START)/;s/TEXT_START/$(TEXT_START)/
 
 OBJECTS		:= head.o data.o
 
diff --git a/target/linux/brcm47xx/image/lzma-loader/src/head.S b/target/linux/brcm47xx/image/lzma-loader/src/head.S
index 930c9ba..50c159c 100644
--- a/target/linux/brcm47xx/image/lzma-loader/src/head.S
+++ b/target/linux/brcm47xx/image/lzma-loader/src/head.S
@@ -38,6 +38,7 @@
 	.text
 	LEAF(startup)
 	.set noreorder
+	li	sp, BZ_STACK_START
 	addi    sp, -48
 	sw      a0, 16(sp)
 	sw      a1, 20(sp)



More information about the lede-commits mailing list