Index: arch/mips32/src/mm/tlb.c
===================================================================
--- arch/mips32/src/mm/tlb.c	(revision b00fdde560b3ef069ecb5aed3e0f1e04f21fe28a)
+++ arch/mips32/src/mm/tlb.c	(revision a276c56a368b08d763cb3d91208a4f2992822aa9)
@@ -66,5 +66,5 @@
 	 * Invalidate all entries.
 	 */
-	for (i = 0; i < TLB_SIZE; i++) {
+	for (i = 0; i < TLB_ENTRY_COUNT; i++) {
 		cp0_index_write(i);
 		tlbwi();
@@ -323,5 +323,5 @@
 	ipl = interrupts_disable();
 	
-	for (i = 0; i < TLB_SIZE; i++) {
+	for (i = 0; i < TLB_ENTRY_COUNT; i++) {
 		cp0_index_write(i);
 		tlbr();
@@ -400,5 +400,25 @@
 }
 
+/** Print contents of TLB. */
 void tlb_print(void)
 {
-}
+	entry_lo_t lo0, lo1;
+	entry_hi_t hi;
+	int i;
+
+	printf("TLB:\n");
+	for (i = 0; i < TLB_ENTRY_COUNT; i++) {
+		cp0_index_write(i);
+
+		tlbr();
+		
+		hi.value = cp0_entry_hi_read();
+		lo0.value = cp0_entry_lo0_read();
+		lo1.value = cp0_entry_lo1_read();
+		
+		printf("%d: asid=%d, vpn2=%d\tg[0]=%d, v[0]=%d, d[0]=%d, c[0]=%B, pfn[0]=%d\n"
+		       "\t\t\tg[1]=%d, v[1]=%d, d[1]=%d, c[1]=%B, pfn[1]=%d\n",
+		       i, hi.asid, hi.vpn2, lo0.g, lo0.v, lo0.d, lo0.c, lo0.pfn,
+		       lo1.g, lo1.v, lo1.d, lo1.c, lo1.pfn);
+	}
+}
