summaryrefslogtreecommitdiffstats
path: root/arch/ppc64
diff options
context:
space:
mode:
authorOlaf Hering2005-10-29 02:46:49 +0200
committerPaul Mackerras2005-10-29 07:11:00 +0200
commit67a1b68263d58a3ed5ce024468606044a1561312 (patch)
tree0e997ea83aa27cb2ceb622549acc8e47aefa6bb2 /arch/ppc64
parent[PATCH] ppc64 boot: make the zImage relocateable (diff)
downloadkernel-qcow2-linux-67a1b68263d58a3ed5ce024468606044a1561312.tar.gz
kernel-qcow2-linux-67a1b68263d58a3ed5ce024468606044a1561312.tar.xz
kernel-qcow2-linux-67a1b68263d58a3ed5ce024468606044a1561312.zip
[PATCH] ppc64 boot: proof that reloc works
To prove that the relocation works, move the crt0.o away from the beginning. Move linker options from command line into linker script. rename entry point because '_start' is referenced in printf output. Signed-off-by: Olaf Hering <olh@suse.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc64')
-rw-r--r--arch/ppc64/boot/Makefile4
-rw-r--r--arch/ppc64/boot/crt0.S4
-rw-r--r--arch/ppc64/boot/zImage.lds3
3 files changed, 7 insertions, 4 deletions
diff --git a/arch/ppc64/boot/Makefile b/arch/ppc64/boot/Makefile
index 9e19351f3dfa..301bc1536c49 100644
--- a/arch/ppc64/boot/Makefile
+++ b/arch/ppc64/boot/Makefile
@@ -24,7 +24,7 @@
HOSTCC := gcc
BOOTCFLAGS := $(HOSTCFLAGS) -fno-builtin -nostdinc -isystem $(shell $(CROSS32CC) -print-file-name=include) -fPIC
BOOTAFLAGS := -D__ASSEMBLY__ $(BOOTCFLAGS) -traditional -nostdinc
-BOOTLFLAGS := -Ttext 0x00400000 -e _start -T $(srctree)/$(src)/zImage.lds
+BOOTLFLAGS := -T $(srctree)/$(src)/zImage.lds
OBJCOPYFLAGS := contents,alloc,load,readonly,data
zlib := infblock.c infcodes.c inffast.c inflate.c inftrees.c infutil.c
@@ -34,7 +34,7 @@ zliblinuxheader := zlib.h zconf.h zutil.h
$(addprefix $(obj)/,$(zlib) main.o): $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))
#$(addprefix $(obj)/,main.o): $(addprefix $(obj)/,zlib.h)
-src-boot := crt0.S string.S prom.c main.c div64.S
+src-boot := string.S prom.c main.c div64.S crt0.S
src-boot += $(zlib)
src-boot := $(addprefix $(obj)/, $(src-boot))
obj-boot := $(addsuffix .o, $(basename $(src-boot)))
diff --git a/arch/ppc64/boot/crt0.S b/arch/ppc64/boot/crt0.S
index 5788a453a7a2..8bfdeaf3be83 100644
--- a/arch/ppc64/boot/crt0.S
+++ b/arch/ppc64/boot/crt0.S
@@ -12,8 +12,8 @@
#include "ppc_asm.h"
.text
- .globl _start
-_start:
+ .globl _zimage_start
+_zimage_start:
bl reloc_offset
reloc_offset:
diff --git a/arch/ppc64/boot/zImage.lds b/arch/ppc64/boot/zImage.lds
index 79d62c733ec0..4b6bb3ffe3dc 100644
--- a/arch/ppc64/boot/zImage.lds
+++ b/arch/ppc64/boot/zImage.lds
@@ -1,6 +1,9 @@
OUTPUT_ARCH(powerpc:common)
+ENTRY(_zimage_start)
SECTIONS
{
+ . = (4*1024*1024);
+ _start = .;
.text :
{
*(.text)