diff options
author | Jonas Gorski <jogo@openwrt.org> | 2015-03-25 15:34:59 +0000 |
---|---|---|
committer | Jonas Gorski <jogo@openwrt.org> | 2015-03-25 15:34:59 +0000 |
commit | 065d6e9047d235ffa916dcf0ce330bfc124e2fd0 (patch) | |
tree | 8e217d356df413aeee7b56bd89ac3fd5ee6d6046 /target/linux | |
parent | ee0140a678a0955d0883bebcc87e7e2a42eca800 (diff) | |
download | mtk-20170518-065d6e9047d235ffa916dcf0ce330bfc124e2fd0.zip mtk-20170518-065d6e9047d235ffa916dcf0ce330bfc124e2fd0.tar.gz mtk-20170518-065d6e9047d235ffa916dcf0ce330bfc124e2fd0.tar.bz2 |
brcm63xx: move kernel load address to 8MiB
Fixes boot when uncompressed kernel is > 4 MiB (#19251).
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 44984
Diffstat (limited to 'target/linux')
3 files changed, 69 insertions, 1 deletions
diff --git a/target/linux/brcm63xx/image/Makefile b/target/linux/brcm63xx/image/Makefile index 47756bf..a55fc46 100755 --- a/target/linux/brcm63xx/image/Makefile +++ b/target/linux/brcm63xx/image/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk -LOADADDR = 0x80010000 # RAM start + 64K +LOADADDR = 0x80800000 # RAM start + 8MB KERNEL_ENTRY = $(LOADADDR) # Newer kernels add a jmp to the kernel_entry at the start of the binary RAMSIZE = 0x02000000 # 32MB LZMA_TEXT_START = 0x81800000 # 32MB - 8MB diff --git a/target/linux/brcm63xx/patches-3.14/810-BCM63XX-move-kernel-behind-CFE.patch b/target/linux/brcm63xx/patches-3.14/810-BCM63XX-move-kernel-behind-CFE.patch new file mode 100644 index 0000000..15970f1 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.14/810-BCM63XX-move-kernel-behind-CFE.patch @@ -0,0 +1,34 @@ +From b99815f47828214b298178b0d0e2a9f3aae9f24a Mon Sep 17 00:00:00 2001 +From: Jonas Gorski <jogo@openwrt.org> +Date: Sun, 22 Mar 2015 11:49:16 +0100 +Subject: [PATCH] MIPS: BCM63XX: move kernel behind CFE + +CFE will load itself to offset 4 MiB (or 6 MiB) in memory occupying a +bit over one MiB. Traditionally the kernel will get linked to and loaded +at offset 64k. +This will pose a problem if the kernel size reaches 4 MiB - 64 kB, as +CFE will start overwriting itself. This can easily happen by including a +ramdisk image in the kernel. +While for net-booted elf kernels this can be worked around by wrapping +them in a lzma boot loader, on-flash images require the kernel to be +lzma compressed. This would cause inefficient double compression. + +Luckily we have full control over where the kernel will be extracted to +and the entry point to be called, so move the kernel to behind CFE. +--- + arch/mips/bcm63xx/Platform | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/mips/bcm63xx/Platform b/arch/mips/bcm63xx/Platform +index 5f86b2f..ee73f8f 100644 +--- a/arch/mips/bcm63xx/Platform ++++ b/arch/mips/bcm63xx/Platform +@@ -4,4 +4,4 @@ + platform-$(CONFIG_BCM63XX) += bcm63xx/ + cflags-$(CONFIG_BCM63XX) += \ + -I$(srctree)/arch/mips/include/asm/mach-bcm63xx/ +-load-$(CONFIG_BCM63XX) := 0xffffffff80010000 ++load-$(CONFIG_BCM63XX) := 0xffffffff80800000 +-- +1.7.10.4 + diff --git a/target/linux/brcm63xx/patches-3.18/810-BCM63XX-move-kernel-behind-CFE.patch b/target/linux/brcm63xx/patches-3.18/810-BCM63XX-move-kernel-behind-CFE.patch new file mode 100644 index 0000000..15970f1 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.18/810-BCM63XX-move-kernel-behind-CFE.patch @@ -0,0 +1,34 @@ +From b99815f47828214b298178b0d0e2a9f3aae9f24a Mon Sep 17 00:00:00 2001 +From: Jonas Gorski <jogo@openwrt.org> +Date: Sun, 22 Mar 2015 11:49:16 +0100 +Subject: [PATCH] MIPS: BCM63XX: move kernel behind CFE + +CFE will load itself to offset 4 MiB (or 6 MiB) in memory occupying a +bit over one MiB. Traditionally the kernel will get linked to and loaded +at offset 64k. +This will pose a problem if the kernel size reaches 4 MiB - 64 kB, as +CFE will start overwriting itself. This can easily happen by including a +ramdisk image in the kernel. +While for net-booted elf kernels this can be worked around by wrapping +them in a lzma boot loader, on-flash images require the kernel to be +lzma compressed. This would cause inefficient double compression. + +Luckily we have full control over where the kernel will be extracted to +and the entry point to be called, so move the kernel to behind CFE. +--- + arch/mips/bcm63xx/Platform | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/mips/bcm63xx/Platform b/arch/mips/bcm63xx/Platform +index 5f86b2f..ee73f8f 100644 +--- a/arch/mips/bcm63xx/Platform ++++ b/arch/mips/bcm63xx/Platform +@@ -4,4 +4,4 @@ + platform-$(CONFIG_BCM63XX) += bcm63xx/ + cflags-$(CONFIG_BCM63XX) += \ + -I$(srctree)/arch/mips/include/asm/mach-bcm63xx/ +-load-$(CONFIG_BCM63XX) := 0xffffffff80010000 ++load-$(CONFIG_BCM63XX) := 0xffffffff80800000 +-- +1.7.10.4 + |