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
This commit is contained in:
parent
ee0140a678
commit
065d6e9047
3 changed files with 69 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
Loading…
Reference in a new issue