[source] brcm47xx: relocate the stack in loader
LEDE Commits
lede-commits at lists.infradead.org
Wed Oct 11 12:55:10 PDT 2017
hauke pushed a commit to source.git, branch master:
https://git.lede-project.org/2909a4b78e2bce5f6b9c35361866d5e9477a1bdc
commit 2909a4b78e2bce5f6b9c35361866d5e9477a1bdc
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