aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/boot
diff options
context:
space:
mode:
authorMatt Fleming <matt@console-pimps.org>2010-04-24 13:28:20 +0100
committerMatt Fleming <matt@console-pimps.org>2010-04-25 20:44:23 +0100
commitb161313ae8d9c64de589d1de72f975210ce37b48 (patch)
tree1c4d73e1a3c09076390bde3406581f35fd374feb /arch/sh/boot
parentsh: Assembly friendly __pa and __va definitions (diff)
downloadlinux-dev-b161313ae8d9c64de589d1de72f975210ce37b48.tar.xz
linux-dev-b161313ae8d9c64de589d1de72f975210ce37b48.zip
sh: Fix address to decompress at when CONFIG_32BIT=y
When running in 32BIT mode the P1SEG region doesn't necessarily provide a window onto RAM (it depends how the bootloader setup the PMB). The correct location to place the decompressed kernel is the physical address of _text. Signed-off-by: Matt Fleming <matt@console-pimps.org>
Diffstat (limited to 'arch/sh/boot')
-rw-r--r--arch/sh/boot/compressed/head_32.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/sh/boot/compressed/head_32.S b/arch/sh/boot/compressed/head_32.S
index 02a30935f0b9..200c1d4f1efe 100644
--- a/arch/sh/boot/compressed/head_32.S
+++ b/arch/sh/boot/compressed/head_32.S
@@ -97,7 +97,11 @@ init_stack_addr:
decompress_kernel_addr:
.long decompress_kernel
kernel_start_addr:
+#ifdef CONFIG_32BIT
+ .long ___pa(_text+PAGE_SIZE)
+#else
.long _text+PAGE_SIZE
+#endif
.align 9
fake_headers_as_bzImage: