[PATCH 3/3] zImage: Cleanup and improve zImage entry point
Geoff Levand
geoffrey.levand at am.sony.com
Sun Feb 18 12:22:24 EST 2007
David Gibson wrote:
> Index: working-2.6/arch/powerpc/boot/crt0.S
> @@ -59,6 +60,29 @@ _zimage_start:
> sync
> isync
>
> - mr r6,r1
> - b start
> + /* Possibly set up a custom stack */
> +.weak _platform_stack_top
> + lis r8,_platform_stack_top at ha
> + addi r8,r8,_platform_stack_top at l
> + cmpwi r8,0
> + beq 5f
> + lwz r1,0(r8)
Do you need to make a stack frame here for your
call to platform_init so it will have a place when it
stores the link register?
> +5:
> +
> + /* Clear the BSS */
> + lis r9,__bss_start at ha
> + addi r9,r9,__bss_start at l
> + lis r8,_end at ha
> + addi r8,r8,_end at l
> + li r0,0
> +6: stw r0,0(r9)
> + addi r9,r9,4
> + cmplw cr0,r9,r8
> + blt 6b
This messed me up a bit since I had two stacks in the bss, one for each
processor thread. By the time this was called on the primary thread the
secondary thread could already be using its stack. I changed the secondary
thread to use a small stack in the data section, so this seems OK.
-Geoff
More information about the Linuxppc-dev
mailing list