@ -100,6 +100,10 @@ _TEXT_BASE:
_bss_start_ofs :
.word __bss_start - _ start
.global _image_copy_end_ofs
_image_copy_end_ofs :
.word __image_copy_end - _ start
.globl _bss_end_ofs
_bss_end_ofs :
.word __bss_end__ - _ start
@ -193,7 +197,7 @@ stack_setup:
moveq r9 , #0 / * n o r e l o c a t i o n . r e l o c a t i o n o f f s e t ( r9 ) = 0 * /
beq c l e a r _ b s s / * s k i p r e l o c a t i o n * /
mov r1 , r6 / * r1 < - s c r a t c h f o r c o p y _ l o o p * /
ldr r3 , _ b s s _ s t a r t _ o f s
ldr r3 , _ i m a g e _ c o p y _ e n d _ o f s
add r2 , r0 , r3 / * r2 < - s o u r c e e n d a d d r e s s * /
copy_loop :
@ -241,15 +245,28 @@ fixnext:
add r2 , r2 , #8 / * e a c h r e l . d y n e n t r y i s 8 b y t e s * /
cmp r2 , r3
blo f i x l o o p
b c l e a r _ b s s
_rel_dyn_start_ofs :
.word __rel_dyn_start - _ start
_rel_dyn_end_ofs :
.word __rel_dyn_end - _ start
_dynsym_start_ofs :
.word __dynsym_start - _ start
# endif
clear_bss :
# ifndef C O N F I G _ S P L _ B U I L D
# ifdef C O N F I G _ S P L _ B U I L D
/* No relocation for SPL */
ldr r0 , =__bss_start
ldr r1 , =__bss_end__
# else
ldr r0 , _ b s s _ s t a r t _ o f s
ldr r1 , _ b s s _ e n d _ o f s
mov r4 , r6 / * r e l o c a d d r * /
add r0 , r0 , r4
add r1 , r1 , r4
# endif
mov r2 , #0x00000000 / * c l e a r * /
clbss_l : cmp r0 , r1 / * c l e a r l o o p . . . * /
@ -258,7 +275,6 @@ clbss_l:cmp r0, r1 /* clear loop... */
add r0 , r0 , #4
b c l b s s _ l
clbss_e :
# endif / * #i f n d e f C O N F I G _ S P L _ B U I L D * /
/ *
* We a r e d o n e . D o n o t r e t u r n , i n s t e a d b r a n c h t o s e c o n d p a r t o f b o a r d
@ -273,7 +289,7 @@ _nand_boot_ofs:
# else
jump_2_ram :
ldr r0 , _ b o a r d _ i n i t _ r _ o f s
ldr r1 , _ T E X T _ B A S E
adr r1 , _ s t a r t
add l r , r0 , r1
add l r , l r , r9
/* setup parameters for board_init_r */
@ -286,13 +302,6 @@ _board_init_r_ofs:
.word board_init_r - _ start
# endif
_rel_dyn_start_ofs :
.word __rel_dyn_start - _ start
_rel_dyn_end_ofs :
.word __rel_dyn_end - _ start
_dynsym_start_ofs :
.word __dynsym_start - _ start
/ *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*