Index: arch/mips32/include/mm/tlb.h
===================================================================
--- arch/mips32/include/mm/tlb.h	(revision ede493eb5d01ca9729939a58af2ac8b3c4bae002)
+++ arch/mips32/include/mm/tlb.h	(revision 052da81d6e492cc87ae6e70a7e8929262d1ceabc)
@@ -75,15 +75,4 @@
 /** Page Table Entry. */
 struct pte {
-#ifdef BIG_ENDIAN
-	unsigned a : 1;			/**< Accessed bit. */
-	unsigned w : 1;			/**< Page writable bit. */
-	unsigned pfn : 24;		/**< Physical frame number. */
-	unsigned soft_valid : 1;	/**< Valid content even if not present. */
-	unsigned : 1;			/**< Unused. */
-	unsigned cacheable : 1;		/**< Cacheable bit. */
-	unsigned d : 1;			/**< Dirty bit. */
-	unsigned p : 1;			/**< Present bit. */
-	unsigned g : 1;			/**< Global bit. */
-#else
 	unsigned g : 1;			/**< Global bit. */
 	unsigned p : 1;			/**< Present bit. */
@@ -95,5 +84,4 @@
 	unsigned w : 1;			/**< Page writable bit. */
 	unsigned a : 1;			/**< Accessed bit. */
-#endif
 };
 
Index: arch/mips32/src/console.c
===================================================================
--- arch/mips32/src/console.c	(revision ede493eb5d01ca9729939a58af2ac8b3c4bae002)
+++ arch/mips32/src/console.c	(revision 052da81d6e492cc87ae6e70a7e8929262d1ceabc)
@@ -40,8 +40,9 @@
 	} else if (serial_init()) {
 		serial_console();
-	} else
+	} else {
 		msim_console();
 #ifdef CONFIG_FB
-	fb_init(0xb2000000, 640, 480, 3); // gxemul framebuffer
+		fb_init(0xb2000000, 640, 480, 3); // gxemul framebuffer
 #endif
+	}
 }
Index: arch/mips32/src/drivers/arc.c
===================================================================
--- arch/mips32/src/drivers/arc.c	(revision ede493eb5d01ca9729939a58af2ac8b3c4bae002)
+++ arch/mips32/src/drivers/arc.c	(revision 052da81d6e492cc87ae6e70a7e8929262d1ceabc)
@@ -37,4 +37,6 @@
 #include <align.h>
 #include <console/console.h>
+#include <console/kconsole.h>
+#include <console/cmd.h>
 
 /* This is a good joke, SGI HAS different types than NT bioses... */
@@ -153,5 +155,6 @@
 	desc = arc_entry->getmemorydescriptor(NULL);
 	while (desc) {
-		printf("%s: %d (size: %dKB)\n",basetypes[desc->type],
+		printf("%s: %d(%P) (size: %dKB)\n",basetypes[desc->type],
+		       desc->basepage * ARC_FRAME,
 		       desc->basepage * ARC_FRAME,
 		       desc->basecount*ARC_FRAME/1024);
@@ -173,4 +176,16 @@
 }
 
+static int cmd_reboot(cmd_arg_t *argv)
+{
+	arc_entry->reboot();
+	return 0;
+}
+static cmd_info_t reboot_info = {
+	.name = "reboot",
+	.description = "Reboot computer",
+	.func = cmd_reboot,
+	.argc = 0
+};
+
 /** Initialize ARC structure
  *
@@ -189,4 +204,8 @@
 	arc_putchar('C');
 	arc_putchar('\n');
+
+	/* Add command for resetting the computer */
+	cmd_initialize(&reboot_info);
+	cmd_register(&reboot_info);
 
 	return 0;
@@ -305,7 +324,6 @@
 			total += basesize;
 			
-			zone_create(ADDR2PFN(base),
-				    SIZE2FRAMES(ALIGN_DOWN(basesize,FRAME_SIZE)),
-				    ADDR2PFN(base),0);
+			zone_create(ADDR2PFN(base), SIZE2FRAMES(basesize),
+				    ADDR2PFN(base), 0);
 		}
 		desc = arc_entry->getmemorydescriptor(desc);
Index: arch/mips32/src/exception.c
===================================================================
--- arch/mips32/src/exception.c	(revision ede493eb5d01ca9729939a58af2ac8b3c4bae002)
+++ arch/mips32/src/exception.c	(revision 052da81d6e492cc87ae6e70a7e8929262d1ceabc)
@@ -75,6 +75,6 @@
 		rasymbol = s;
 	
-	printf("PC: %X(%s) RA: %X(%s)\n",pstate->epc,pcsymbol,
-	       pstate->ra,rasymbol);
+	printf("PC: %X(%s) RA: %X(%s), SP(%P)\n",pstate->epc,pcsymbol,
+	       pstate->ra,rasymbol, pstate->sp);
 }
 
