Index: arch/ppc32/include/asm/regname.h
===================================================================
--- arch/ppc32/include/asm/regname.h	(revision fbf7b4c84e6dfb4548cc87160234f53d9547af3c)
+++ arch/ppc32/include/asm/regname.h	(revision e600ec4189d091952874647f99f26f74d3dc7e89)
@@ -27,5 +27,5 @@
  */
 
- /** @addtogroup ppc32	
+/** @addtogroup ppc32	
  * @{
  */
@@ -228,5 +228,4 @@
 #endif
 
- /** @}
- */
-
+/** @}
+ */
Index: arch/ppc32/src/mm/memory_init.c
===================================================================
--- arch/ppc32/src/mm/memory_init.c	(revision fbf7b4c84e6dfb4548cc87160234f53d9547af3c)
+++ arch/ppc32/src/mm/memory_init.c	(revision e600ec4189d091952874647f99f26f74d3dc7e89)
@@ -50,5 +50,5 @@
 	
 	for (i = 0; i < bootinfo.memmap.count; i++)
-		printf("base: %#x size: %#x\n", bootinfo.memmap.zones[i].start, bootinfo.memmap.zones[i].size);
+		printf("base: %.*p size: %#x\n", sizeof(bootinfo.memmap.zones[i].start) * 2, bootinfo.memmap.zones[i].start, bootinfo.memmap.zones[i].size);
 }
 
Index: arch/ppc32/src/mm/tlb.c
===================================================================
--- arch/ppc32/src/mm/tlb.c	(revision fbf7b4c84e6dfb4548cc87160234f53d9547af3c)
+++ arch/ppc32/src/mm/tlb.c	(revision e600ec4189d091952874647f99f26f74d3dc7e89)
@@ -376,4 +376,27 @@
 
 
+#define PRINT_BAT(name, ureg, lreg) \
+	asm volatile ( \
+		"mfspr %0," #ureg "\n" \
+		"mfspr %1," #lreg "\n" \
+		: "=r" (upper), "=r" (lower) \
+	); \
+	mask = (upper & 0x1ffc) >> 2; \
+	if (upper & 3) { \
+		__u32 tmp = mask; \
+		length = 128; \
+		while (tmp) { \
+			if ((tmp & 1) == 0) { \
+				printf("ibat[0]: error in mask\n"); \
+				break; \
+			} \
+			length <<= 1; \
+			tmp >>= 1; \
+		} \
+	} else \
+		length = 0; \
+	printf(name ": page=%.*p frame=%.*p length=%d KB (mask=%#x)%s%s\n", sizeof(upper) * 2, upper & 0xffff0000, sizeof(lower) * 2, lower & 0xffff0000, length, mask, ((upper >> 1) & 1) ? " supervisor" : "", (upper & 1) ? " user" : "");
+
+
 void tlb_print(void)
 {
@@ -387,6 +410,21 @@
 			: "r" (sr << 28)
 		);
-		printf("vsid[%#x]=%#x\n", sr << 28, vsid);
-	}
+		printf("vsid[%d]: VSID=%.*p (ASID=%d)%s%s\n", sr, sizeof(vsid) * 2, vsid & 0xffffff, (vsid & 0xffffff) >> 4, ((vsid >> 30) & 1) ? " supervisor" : "", ((vsid >> 29) & 1) ? " user" : "");
+	}
+	
+	__u32 upper;
+	__u32 lower;
+	__u32 mask;
+	__u32 length;
+	
+	PRINT_BAT("ibat[0]", 528, 529);
+	PRINT_BAT("ibat[1]", 530, 531);
+	PRINT_BAT("ibat[2]", 532, 533);
+	PRINT_BAT("ibat[3]", 534, 535);
+	
+	PRINT_BAT("dbat[0]", 536, 537);
+	PRINT_BAT("dbat[1]", 538, 539);
+	PRINT_BAT("dbat[2]", 540, 541);
+	PRINT_BAT("dbat[3]", 542, 543);
 }
 
