diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/start.S | 16 | 
1 files changed, 5 insertions, 11 deletions
| diff --git a/arch/powerpc/cpu/mpc85xx/start.S b/arch/powerpc/cpu/mpc85xx/start.S index 6aabc30c2..b1998b215 100644 --- a/arch/powerpc/cpu/mpc85xx/start.S +++ b/arch/powerpc/cpu/mpc85xx/start.S @@ -855,18 +855,12 @@ version_string:  	.globl	_start_cont  _start_cont:  	/* Setup the stack in initial RAM,could be L2-as-SRAM or L1 dcache*/ -	lis	r1,CONFIG_SYS_INIT_RAM_ADDR@h -	ori	r1,r1,CONFIG_SYS_INIT_SP_OFFSET@l - +	lis	r3,(CONFIG_SYS_INIT_RAM_ADDR)@h +	ori	r3,r3,((CONFIG_SYS_INIT_SP_OFFSET-16)&~0xf)@l /* Align to 16 */  	li	r0,0 -	stwu	r0,-4(r1) -	stwu	r0,-4(r1)		/* Terminate call chain */ - -	stwu	r1,-8(r1)		/* Save back chain and move SP */ -	lis	r0,RESET_VECTOR@h	/* Address of reset vector */ -	ori	r0,r0,RESET_VECTOR@l -	stwu	r1,-8(r1)		/* Save back chain and move SP */ -	stw	r0,+12(r1)		/* Save return addr (underflow vect) */ +	stw	r0,0(r3)	/* Terminate Back Chain */ +	stw	r0,+4(r3)	/* NULL return address. */ +	mr	r1,r3		/* Transfer to SP(r1) */  	GET_GOT  	bl	cpu_init_early_f |