diff --git a/common/board_f.c b/common/board_f.c
index b5bebc9dc862727b7aa2386f64691ace23475cc0..57e8a673bd1a056d0388c05d6d28d0994b70a48a 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -579,7 +579,7 @@ static int reserve_stacks(void)
 	gd->irq_sp = gd->start_addr_sp;
 # endif
 #else
-# ifdef CONFIG_PPC
+# if defined(CONFIG_PPC) || defined(CONFIG_MIPS)
 	ulong *s;
 # endif
 
@@ -609,6 +609,12 @@ static int reserve_stacks(void)
 	s = (ulong *) gd->start_addr_sp;
 	*s = 0; /* Terminate back chain */
 	*++s = 0; /* NULL return address */
+# elif defined(CONFIG_MIPS)
+	/* Clear initial stack frame */
+	s = (ulong *) gd->start_addr_sp;
+	*s-- = 0;
+	*s-- = 0;
+	gd->start_addr_sp = (ulong) s;
 # endif /* Architecture specific code */
 
 	return 0;