@ -743,8 +743,16 @@ _start:
/*----------------------------------------------------------------*/
/* Setup the stack in internal SRAM */
/*----------------------------------------------------------------*/
lis r1 ,C O N F I G _ S Y S _ I N I T _ R A M _ A D D R @h
ori r1 ,r1 ,C O N F I G _ S Y S _ I N I T _ S P _ O F F S E T @l
lis r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E ) @h
ori r1 , r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E ) @l
/ *
* Reserve s p a c e f o r g l o b a l s a n d s t o r e a d d r e s s f o r i n i t i a l i z a t i o n
* with b o a r d _ i n i t _ f _ i n i t _ r e s e r v e ( ) i n r14
* /
mr r3 , r1
bl b o a r d _ i n i t _ f _ a l l o c _ r e s e r v e
mr r1 , r3
mr r14 , r3
li r0 ,0
stwu r0 ,- 4 ( r1 )
stwu r0 ,- 4 ( r1 ) / * T e r m i n a t e c a l l c h a i n * /
@ -760,13 +768,9 @@ _start:
# endif
bl c p u _ i n i t _ f / * r u n l o w - l e v e l C P U i n i t c o d e ( f r o m F l a s h ) * /
mr r3 , r1
bl b o a r d _ i n i t _ f _ a l l o c _ r e s e r v e
mr r1 , r3
/* address for globals was stored in r14 */
mr r3 , r14
bl b o a r d _ i n i t _ f _ i n i t _ r e s e r v e
li r0 ,0
stwu r0 , - 4 ( r1 )
stwu r0 , - 4 ( r1 )
li r3 , 0
bl b o a r d _ i n i t _ f
/* NOTREACHED - board_init_f() does not return */
@ -831,8 +835,16 @@ _start:
* for t h e i r p r i m o r d i a l s t a c k , s e t u p s t a c k h e r e d i r e c t l y a f t e r t h e
* SDRAM i s i n i t i a l i z e d i n e x t _ b u s _ c n t l r _ i n i t .
* /
lis r1 , C O N F I G _ S Y S _ I N I T _ R A M _ A D D R @h
ori r1 ,r1 ,C O N F I G _ S Y S _ I N I T _ S P _ O F F S E T / * s e t u p t h e s t a c k i n S D R A M * /
lis r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E ) @h
ori r1 , r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E ) @l
/ *
* Reserve s p a c e f o r g l o b a l s a n d s t o r e a d d r e s s f o r i n i t i a l i z a t i o n
* with b o a r d _ i n i t _ f _ i n i t _ r e s e r v e ( ) i n r14
* /
mr r3 , r1
bl b o a r d _ i n i t _ f _ a l l o c _ r e s e r v e
mr r1 , r3
mr r14 , r3
li r0 , 0 / * M a k e r o o m f o r s t a c k f r a m e h e a d e r a n d * /
stwu r0 , - 4 ( r1 ) / * c l e a r f i n a l s t a c k f r a m e s o t h a t * /
@ -972,8 +984,16 @@ _start:
* Load t h e i n i t i a l s t a c k p o i n t e r a n d d a t a a r e a a n d c o n v e r t t h e s i z e ,
* in b y t e s , t o t h e n u m b e r o f w o r d s t o i n i t i a l i z e t o a k n o w n v a l u e .
* /
lis r1 , C O N F I G _ S Y S _ I N I T _ R A M _ A D D R @h
ori r1 , r1 , C O N F I G _ S Y S _ I N I T _ S P _ O F F S E T @l
lis r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E ) @h
ori r1 , r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E ) @l
/ *
* Reserve s p a c e f o r g l o b a l s a n d s t o r e a d d r e s s f o r i n i t i a l i z a t i o n
* with b o a r d _ i n i t _ f _ i n i t _ r e s e r v e ( ) i n r14
* /
mr r3 , r1
bl b o a r d _ i n i t _ f _ a l l o c _ r e s e r v e
mr r1 , r3
mr r14 , r3
lis r4 , ( C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E > > 2 ) @h
ori r4 , r4 , ( C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E > > 2 ) @l
@ -993,6 +1013,7 @@ _start:
* Make r o o m f o r s t a c k f r a m e h e a d e r a n d c l e a r f i n a l s t a c k f r a m e s o
* that s t a c k b a c k t r a c e s t e r m i n a t e c l e a n l y .
* /
li r0 , 0
stwu r0 , - 4 ( r1 )
stwu r0 , - 4 ( r1 )
@ -1011,10 +1032,16 @@ _start:
/ *
* Stack i n O C M .
* /
/* Set up Stack at top of OCM */
lis r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ S P _ O F F S E T ) @h
ori r1 , r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ S P _ O F F S E T ) @l
lis r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E ) @h
ori r1 , r1 , ( C O N F I G _ S Y S _ I N I T _ R A M _ A D D R + C O N F I G _ S Y S _ I N I T _ R A M _ S I Z E ) @l
/ *
* Reserve s p a c e f o r g l o b a l s a n d s t o r e a d d r e s s f o r i n i t i a l i z a t i o n
* with b o a r d _ i n i t _ f _ i n i t _ r e s e r v e ( ) i n r14
* /
mr r3 , r1
bl b o a r d _ i n i t _ f _ a l l o c _ r e s e r v e
mr r1 , r3
mr r14 , r3
/* Set up a zeroized stack frame so that backtrace works right */
li r0 , 0
@ -1035,12 +1062,9 @@ _start:
GET_ G O T / * i n i t i a l i z e G O T a c c e s s * /
bl c p u _ i n i t _ f / * r u n l o w - l e v e l C P U i n i t c o d e ( f r o m F l a s h ) * /
mr r3 , r1
bl b o a r d _ i n i t _ f _ a l l o c _ r e s e r v e
mr r1 , r3
/* address for globals was stored in r14 */
mr r3 , r14
bl b o a r d _ i n i t _ f _ i n i t _ r e s e r v e
stwu r0 , - 4 ( r1 )
stwu r0 , - 4 ( r1 )
li r3 , 0
bl b o a r d _ i n i t _ f / * r u n f i r s t p a r t o f i n i t c o d e ( f r o m F l a s h ) * /
/* NOTREACHED - board_init_f() does not return */