From e7675da8d7a7ffb411fc9b1fbdd398e5ee268e8c Mon Sep 17 00:00:00 2001 From: andreast Date: Wed, 17 Nov 2010 19:28:48 +0000 Subject: Make sure the .bss is cleared at the beginning. The pSeries OF ELF loader does not clear .bss automatically. Approved by: nwhitehorn (mentor) --- sys/boot/powerpc/ofw/start.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'sys/boot') diff --git a/sys/boot/powerpc/ofw/start.c b/sys/boot/powerpc/ofw/start.c index 60c5db7..8637e1f 100644 --- a/sys/boot/powerpc/ofw/start.c +++ b/sys/boot/powerpc/ofw/start.c @@ -50,7 +50,20 @@ _start: \n\ addi %r1,%r1,stack@l \n\ addi %r1,%r1,16384 \n\ \n\ - b startup \n\ + /* Clear the .bss!!! */ \n\ + li %r0,0 \n\ + lis %r8,_edata@ha \n\ + addi %r8,%r8,_edata@l\n\ + lis %r9,_end@ha \n\ + addi %r9,%r9,_end@l \n\ + \n\ +1: cmpw 0,%r8,%r9 \n\ + bge 2f \n\ + stw %r0,0(%r8) \n\ + addi %r8,%r8,4 \n\ + b 1b \n\ + \n\ +2: b startup \n\ "); void -- cgit v1.1