[POWERPC] bootwrapper: missing relocation in crt0.S
authorMilton Miller <miltonm@bga.com>
Wed, 28 Mar 2007 08:21:02 +0000 (02:21 -0600)
committerPaul Mackerras <paulus@samba.org>
Thu, 12 Apr 2007 17:55:16 +0000 (03:55 +1000)
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@bga.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/boot/crt0.S

index bd7770b60730396e44c73e28e082c3c0b42a1007..5a4215c4b0146aa063fe87c5bb503a398232f6d3 100644 (file)
@@ -65,10 +65,12 @@ _zimage_start_lib:
        /* Clear the BSS */
        lis     r9,__bss_start@ha
        addi    r9,r9,__bss_start@l
+       add     r9,r0,r9
        lis     r8,_end@ha
        addi    r8,r8,_end@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@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: