[PATCH] bsps/sparc: Fix BSS initialization
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue May 13 12:34:46 UTC 2014
Use __bss_start available via %g4 to clear the BSS section. The usage
of _edata resulted in a copy of [_edata, __bss_start) from ROM to RAM
and then a clear to zero of this area.
Clear now only [__bss_start, _end).
---
c/src/lib/libbsp/sparc/shared/start/start.S | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/c/src/lib/libbsp/sparc/shared/start/start.S b/c/src/lib/libbsp/sparc/shared/start/start.S
index 26da7b4..b191c7e 100644
--- a/c/src/lib/libbsp/sparc/shared/start/start.S
+++ b/c/src/lib/libbsp/sparc/shared/start/start.S
@@ -344,8 +344,7 @@ copy_data:
/* clear the bss */
1:
- sethi %hi(_edata),%g2
- or %g2,%lo(_edata),%g2 ! g2 = start of bss
+ mov %g4, %g2 ! g2 = start of bss
sethi %hi(_end),%g3
or %g3,%lo(_end),%g3 ! g3 = end of bss
mov %g0,%g1 ! so std has two zeros
--
1.7.7
More information about the devel
mailing list