diff options
author | wdenk <wdenk> | 2003-03-06 13:39:27 +0000 |
---|---|---|
committer | wdenk <wdenk> | 2003-03-06 13:39:27 +0000 |
commit | 47cd00fa707af9de76408b69d3e911717dbbfab1 (patch) | |
tree | dd887729a4eaf11e7a225563f4c604ef4b7d695b /cpu/xscale/start.S | |
parent | db2f721ffcf9693086a7e5c6c7015f2019e7f52e (diff) | |
download | u-boot-imx-47cd00fa707af9de76408b69d3e911717dbbfab1.zip u-boot-imx-47cd00fa707af9de76408b69d3e911717dbbfab1.tar.gz u-boot-imx-47cd00fa707af9de76408b69d3e911717dbbfab1.tar.bz2 |
* Patches by Robert Schwebel, 06 Mar 2003:
- fix bug in BOOTP code (must use NetCopyIP)
- update of CSB226 port
- clear BSS segment on XScale
- added support for i2c_init_board() function
- update to the Innokom plattform
* Extend support for redundand environments for configurations where
environment size < sector size
Diffstat (limited to 'cpu/xscale/start.S')
-rw-r--r-- | cpu/xscale/start.S | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/cpu/xscale/start.S b/cpu/xscale/start.S index e63fece..3d9784e 100644 --- a/cpu/xscale/start.S +++ b/cpu/xscale/start.S @@ -84,6 +84,17 @@ _armboot_end: .word armboot_end /* + * This is defined in the board specific linker script + */ +.globl _bss_start +_bss_start: + .word bss_start + +.globl _bss_end +_bss_end: + .word bss_end + +/* * _armboot_real_end is the first usable RAM address behind armboot * and the various stacks */ @@ -143,7 +154,20 @@ copy_loop: ldr r0, _uboot_reloc /* upper 128 KiB: relocated uboot */ sub r0, r0, #CFG_MALLOC_LEN /* malloc area */ /* FIXME: bdinfo should be here */ - sub sp, r0, #12 /* leave 3 words for abort-stack */ + sub sp, r0, #12 /* leave 3 words for abort-stack */ + +clear_bss: + + ldr r0, _bss_start /* find start of bss segment */ + add r0, r0, #4 /* start at first byte of bss */ + ldr r1, _bss_end /* stop here */ + mov r2, #0x00000000 /* clear */ + +clbss_l:str r2, [r0] /* clear loop... */ + add r0, r0, #4 + cmp r0, r1 + bne clbss_l + ldr pc, _start_armboot |