Index: arch/mips32/src/mm/tlb.c
===================================================================
--- arch/mips32/src/mm/tlb.c	(revision fbe058f936b3f872b943c3aaef6878e7ee038c8e)
+++ arch/mips32/src/mm/tlb.c	(revision 0bd4f56d26dfbe8df5cc3d583aa4e029954a3601)
@@ -69,4 +69,5 @@
 		tlbwi();
 	}
+
 		
 	/*
@@ -118,4 +119,5 @@
 		cp0_entry_lo1_write(lo.value);
 	}
+	cp0_pagemask_write(TLB_PAGE_MASK_16K);
 	tlbwr();
 
@@ -186,4 +188,5 @@
 	else
 		cp0_entry_lo1_write(lo.value);
+	cp0_pagemask_write(TLB_PAGE_MASK_16K);
 	tlbwi();
 
@@ -261,4 +264,5 @@
 	else
 		cp0_entry_lo1_write(lo.value);
+	cp0_pagemask_write(TLB_PAGE_MASK_16K);
 	tlbwi();
 
@@ -369,4 +373,5 @@
 void tlb_print(void)
 {
+	page_mask_t mask;
 	entry_lo_t lo0, lo1;
 	entry_hi_t hi;
@@ -378,11 +383,12 @@
 		tlbr();
 		
+		mask.value = cp0_pagemask_read();
 		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,
+		printf("%d: asid=%d, vpn2=%d, mask=%d\tg[0]=%d, v[0]=%d, d[0]=%d, c[0]=%B, pfn[0]=%d\n"
+		       "\t\t\t\tg[1]=%d, v[1]=%d, d[1]=%d, c[1]=%B, pfn[1]=%d\n",
+		       i, hi.asid, hi.vpn2, mask.mask, lo0.g, lo0.v, lo0.d, lo0.c, lo0.pfn,
 		       lo1.g, lo1.v, lo1.d, lo1.c, lo1.pfn);
 	}
