Add startup code to clear the BSS of standalone applications
diff --git a/CHANGELOG b/CHANGELOG
index 3923ca8..cd05795 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,8 @@
 Changes for U-Boot 1.1.1:
 ======================================================================
 
+* add startup code to clear the BSS of standalone applications
+
 * Fix if / elif handling bug in HUSH shell
 
 ======================================================================
diff --git a/examples/mips.lds b/examples/mips.lds
index 8ed01c4..9d9849b 100644
--- a/examples/mips.lds
+++ b/examples/mips.lds
@@ -51,6 +51,9 @@
 	.sdata  : { *(.sdata) }
 
 	. = ALIGN(4);
+	__bss_start = .;
 	.sbss  : { *(.sbss) }
 	.bss  : { *(.bss) }
+
+	_end = .;
 }
diff --git a/examples/nios.lds b/examples/nios.lds
index 527eb3a..dd5bfad 100644
--- a/examples/nios.lds
+++ b/examples/nios.lds
@@ -57,4 +57,5 @@
 	}
 	. = ALIGN(4);
 	__bss_end = .;
+	_end = .;
 }
diff --git a/examples/stubs.c b/examples/stubs.c
index a26337a..a897d0d 100644
--- a/examples/stubs.c
+++ b/examples/stubs.c
@@ -110,8 +110,17 @@
 #include <_exports.h>
 }
 
+extern unsigned long __bss_start, _end;
+
 void app_startup(char **argv)
 {
+	unsigned long * cp = &__bss_start;
+
+	/* Zero out BSS */
+	while (cp < &_end) {
+		*cp++ = 0;
+	}
+
 #if defined(CONFIG_I386)
 	/* x86 does not have a dedicated register for passing global_data */
 	global_data = (gd_t *)argv[-1];