]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/boot/crt0.S
powerpc/fsl: proliferate simple-bus compatibility to soc nodes
[linux-2.6-omap-h63xx.git] / arch / powerpc / boot / crt0.S
index 3dc8d8f784998746693a1529e5085cce32eaf024..f1c4dfc635be20380d6a718d420cb83b6e4a6068 100644 (file)
 
        .text
        /* a procedure descriptor used when booting this as a COFF file */
+       .globl  _zimage_start_opd
 _zimage_start_opd:
        .long   _zimage_start, 0, 0, 0
 
        .weak   _zimage_start
        .globl  _zimage_start
 _zimage_start:
+       .globl  _zimage_start_lib
+_zimage_start_lib:
        /* Work out the offset between the address we were linked at
           and the address where we're running. */
        bl      1f
@@ -63,10 +66,12 @@ _zimage_start:
        /* 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
@@ -77,7 +82,9 @@ _zimage_start:
        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:
@@ -86,5 +93,4 @@ _zimage_start:
        bl      platform_init
 
        /* Call start */
-       mr      r3,r1
        b       start