@ -160,7 +160,6 @@ relocate_code:
mov r4 , r0 / * s a v e a d d r _ s p * /
mov r5 , r1 / * s a v e a d d r o f g d * /
mov r6 , r2 / * s a v e a d d r o f d e s t i n a t i o n * /
mov r7 , r2 / * s a v e a d d r o f d e s t i n a t i o n * /
/* Set up the stack */
stack_setup :
@ -170,6 +169,7 @@ stack_setup:
ldr r2 , _ T E X T _ B A S E
ldr r3 , _ b s s _ s t a r t _ o f s
add r2 , r0 , r3 / * r2 < - s o u r c e e n d a d d r e s s * /
mov r1 , r6 / * r1 < - s c r a t c h f o r c o p y _ l o o p * /
cmp r0 , r6
# ifndef C O N F I G _ P R E L O A D E R
beq j u m p _ 2 _ r a m
@ -177,7 +177,7 @@ stack_setup:
copy_loop :
ldmia r0 ! , { r9 - r10 } / * c o p y f r o m s o u r c e a d d r e s s [ r0 ] * /
stmia r6 ! , { r9 - r10 } / * c o p y t o t a r g e t a d d r e s s [ r1 ] * /
stmia r1 ! , { r9 - r10 } / * c o p y t o t a r g e t a d d r e s s [ r1 ] * /
cmp r0 , r2 / * u n t i l s o u r c e e n d a d d r e s s [ r2 ] * /
blo c o p y _ l o o p
@ -186,7 +186,7 @@ copy_loop:
* fix . r e l . d y n r e l o c a t i o n s
* /
ldr r0 , _ T E X T _ B A S E / * r0 < - T e x t b a s e * /
sub r9 , r7 , r0 / * r9 < - r e l o c a t i o n o f f s e t * /
sub r9 , r6 , r0 / * r9 < - r e l o c a t i o n o f f s e t * /
ldr r10 , _ d y n s y m _ s t a r t _ o f s / * r10 < - s y m t a b l e o f s * /
add r10 , r10 , r0 / * r10 < - s y m t a b l e i n F L A S H * /
ldr r2 , _ r e l _ d y n _ s t a r t _ o f s / * r2 < - r e l d y n s t a r t o f s * /
@ -225,7 +225,7 @@ clear_bss:
ldr r0 , _ b s s _ s t a r t _ o f s
ldr r1 , _ b s s _ e n d _ o f s
ldr r3 , _ T E X T _ B A S E / * T e x t b a s e * /
mov r4 , r7 / * r e l o c a d d r * /
mov r4 , r6 / * r e l o c a d d r * /
add r0 , r0 , r4
add r1 , r1 , r4
mov r2 , #0x00000000 / * c l e a r * /
@ -247,7 +247,7 @@ jump_2_ram:
add l r , l r , r9
/* setup parameters for board_init_r */
mov r0 , r5 / * g d _ t * /
mov r1 , r7 / * d e s t _ a d d r * /
mov r1 , r6 / * d e s t _ a d d r * /
/* jump to it ... */
mov p c , l r