diff options
author | Milton Miller <miltonm@bga.com> | 2007-03-28 04:21:02 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-04-12 13:55:16 -0400 |
commit | f4bdbfc41b3cad813745f64fb849c298770da517 (patch) | |
tree | 7c54e0c7aa06ba4d8811ee418daf354d10ac3706 /arch/powerpc/boot/crt0.S | |
parent | d6f1d2a9a83f447af6c210c8268ce117772da77f (diff) |
[POWERPC] bootwrapper: missing relocation in crt0.S
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>
Diffstat (limited to 'arch/powerpc/boot/crt0.S')
-rw-r--r-- | arch/powerpc/boot/crt0.S | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/powerpc/boot/crt0.S b/arch/powerpc/boot/crt0.S index bd7770b60730..5a4215c4b014 100644 --- a/arch/powerpc/boot/crt0.S +++ b/arch/powerpc/boot/crt0.S | |||
@@ -65,10 +65,12 @@ _zimage_start_lib: | |||
65 | /* Clear the BSS */ | 65 | /* Clear the BSS */ |
66 | lis r9,__bss_start@ha | 66 | lis r9,__bss_start@ha |
67 | addi r9,r9,__bss_start@l | 67 | addi r9,r9,__bss_start@l |
68 | add r9,r0,r9 | ||
68 | lis r8,_end@ha | 69 | lis r8,_end@ha |
69 | addi r8,r8,_end@l | 70 | addi r8,r8,_end@l |
70 | li r0,0 | 71 | add r8,r0,r8 |
71 | 5: stw r0,0(r9) | 72 | li r10,0 |
73 | 5: stw r10,0(r9) | ||
72 | addi r9,r9,4 | 74 | addi r9,r9,4 |
73 | cmplw cr0,r9,r8 | 75 | cmplw cr0,r9,r8 |
74 | blt 5b | 76 | blt 5b |
@@ -79,7 +81,9 @@ _zimage_start_lib: | |||
79 | addi r8,r8,_platform_stack_top@l | 81 | addi r8,r8,_platform_stack_top@l |
80 | cmpwi r8,0 | 82 | cmpwi r8,0 |
81 | beq 6f | 83 | beq 6f |
84 | add r8,r0,r8 | ||
82 | lwz r1,0(r8) | 85 | lwz r1,0(r8) |
86 | add r1,r0,r1 | ||
83 | li r0,0 | 87 | li r0,0 |
84 | stwu r0,-16(r1) /* establish a stack frame */ | 88 | stwu r0,-16(r1) /* establish a stack frame */ |
85 | 6: | 89 | 6: |