[PATCH 1/4] bootwrapper: missing relocation in crt0.S

Milton Miller miltonm at bga.com
Wed Mar 28 18:21:02 EST 2007


crt0.S had provisions to provide run address relocaton to got2 and
cache flush, but not on the bss clear or stack pointer load.  Apply
the same fixup for them.

Signed-off-by: Milton Miller <miltonm at bga.com>
--- 
This one uses r10 to zero, so that the offset in r0 is preserved.

Index: kernel/arch/powerpc/boot/crt0.S
===================================================================
--- kernel.orig/arch/powerpc/boot/crt0.S	2007-03-28 01:09:05.000000000 -0500
+++ kernel/arch/powerpc/boot/crt0.S	2007-03-28 01:09:21.000000000 -0500
@@ -65,10 +65,12 @@ _zimage_start_lib:
 	/* Clear the BSS */
 	lis	r9,__bss_start at ha
 	addi	r9,r9,__bss_start at l
+	add	r9,r0,r9
 	lis	r8,_end at ha
 	addi	r8,r8,_end at l
-	li	r0,0
-5:	stw	r0,0(r9)
+	add	r8,r0,r8
+	li	r10,0
+5:	stw	r10,0(r9)
 	addi	r9,r9,4
 	cmplw	cr0,r9,r8
 	blt	5b
@@ -79,7 +81,9 @@ _zimage_start_lib:
 	addi	r8,r8,_platform_stack_top at l
 	cmpwi	r8,0
 	beq	6f
+	add	r8,r0,r8
 	lwz	r1,0(r8)
+	add	r1,r0,r1
 	li	r0,0
 	stwu	r0,-16(r1)	/* establish a stack frame */
 6:



More information about the Linuxppc-dev mailing list