Index: arch/mips32/src/mm/frame.c
===================================================================
--- arch/mips32/src/mm/frame.c	(revision 607c5f9ed835a2f0301c7d609f3e38c0d5e4dc77)
+++ arch/mips32/src/mm/frame.c	(revision cf585c9d13b2a99d59f18755568c21ec59dd48f7)
@@ -33,16 +33,10 @@
 #include <config.h>
 #include <panic.h>
+#include <print.h>
 
 void frame_arch_init(void)
 {
-	zone_t *z;
-	
-	z = zone_create(0, config.memory_size, 0);
-	if (!z) {
-		panic("Can't allocate zone (%dB).\n", config.memory_size);
-	}
-	zone_attach(z);
-
 	/* Disable Everything until load address */
-	frame_region_not_free(0, KA2PA(KERNEL_LOAD_ADDRESS));
+	frame_region_not_free(0, KA2PA(KERNEL_LOAD_ADDRESS) + FRAME_SIZE);
+        zone_create_in_region(0, config.memory_size & ~(FRAME_SIZE-1));
 }
Index: arch/mips32/src/mm/page.c
===================================================================
--- arch/mips32/src/mm/page.c	(revision 607c5f9ed835a2f0301c7d609f3e38c0d5e4dc77)
+++ arch/mips32/src/mm/page.c	(revision cf585c9d13b2a99d59f18755568c21ec59dd48f7)
@@ -40,5 +40,5 @@
 	__address ptl0;
 	
-	ptl0 = frame_alloc(FRAME_KA | FRAME_PANIC);
+	ptl0 = frame_alloc(FRAME_KA | FRAME_PANIC, 0);
 	memsetb(ptl0, FRAME_SIZE, 0);
 	
