[source] brcm47xx: relocate loader to higher address

LEDE Commits lede-commits at lists.infradead.org
Wed Oct 11 12:55:09 PDT 2017


hauke pushed a commit to source.git, branch master:
https://git.lede-project.org/d5cf4a5aa4a3211012967748569d9a631ee19466

commit d5cf4a5aa4a3211012967748569d9a631ee19466
Author: Hauke Mehrtens <hauke at hauke-m.de>
AuthorDate: Sun Oct 8 16:52:28 2017 +0200

    brcm47xx: relocate loader to higher address
    
    The boot process on a WRT54GL works the following way:
    1. CFE gets loaded by the boot rom from flash
    2. CFE loads the loader from the flash and gzip uncompresses it
    3. CFE starts the loader
    4. The loader stores the FW arguments and relocates itself to
       BZ_TEXT_START (now 0x80600000)
    5. The loader reads the Linux image from flash
    6. The loader lzma decompresses the Linux image to LOADADDR (0x80001000)
    7. The loader executes the uncompress Linux image at LOADADDR
    
    The BZ_TEXT_START was set to 0x80400000 before. When the kernel gets
    uncompressed and is bigger than BZ_TEXT_START - LOADADDR it overwrote
    the loader which was currently uncompressing it and made the board
    crash. Increase the BZ_TEXT_START my 2 MB to have more space for the
    kernel. Even on 16MB RAM devices the memory goes till 0x80FFFFFF so this
    should not be a problem.
    
    Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 target/linux/brcm47xx/image/lzma-loader/src/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/linux/brcm47xx/image/lzma-loader/src/Makefile b/target/linux/brcm47xx/image/lzma-loader/src/Makefile
index 3320e56..444039c 100644
--- a/target/linux/brcm47xx/image/lzma-loader/src/Makefile
+++ b/target/linux/brcm47xx/image/lzma-loader/src/Makefile
@@ -18,7 +18,7 @@
 #
 
 TEXT_START	:= 0x80001000
-BZ_TEXT_START	:= 0x80400000
+BZ_TEXT_START	:= 0x80600000
 
 OBJCOPY		:= $(CROSS_COMPILE)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S
 



More information about the lede-commits mailing list