Index: arch/mips32/src/mm/tlb.c
===================================================================
--- arch/mips32/src/mm/tlb.c	(revision d0a0f125da5e6e33ad6557453e99903f9057c78b)
+++ arch/mips32/src/mm/tlb.c	(revision ecbdc7245534ef719f1c33d657c2cee6ab034ab6)
@@ -46,5 +46,5 @@
 static pte_t *find_mapping_and_check(__address badvaddr);
 
-static void prepare_entry_lo(entry_lo_t *lo, bool g, bool v, bool d, int c, __address pfn);
+static void prepare_entry_lo(entry_lo_t *lo, bool g, bool v, bool d, bool cacheable, __address pfn);
 static void prepare_entry_hi(entry_hi_t *hi, asid_t asid, __address addr);
 
@@ -105,5 +105,5 @@
 
 	prepare_entry_hi(&hi, AS->asid, badvaddr);
-	prepare_entry_lo(&lo, pte->lo.g, pte->lo.v, pte->lo.d, pte->lo.c, pte->lo.pfn);
+	prepare_entry_lo(&lo, pte->g, pte->p, pte->d, pte->cacheable, pte->pfn);
 
 	/*
@@ -179,5 +179,5 @@
 	pte->a = 1;
 
-	prepare_entry_lo(&lo, pte->lo.g, pte->lo.v, pte->lo.d, pte->lo.c, pte->lo.pfn);
+	prepare_entry_lo(&lo, pte->g, pte->p, pte->d, pte->cacheable, pte->pfn);
 
 	/*
@@ -253,7 +253,7 @@
 	 */
 	pte->a = 1;
-	pte->lo.d = 1;
-
-	prepare_entry_lo(&lo, pte->lo.g, pte->lo.v, pte->w, pte->lo.c, pte->lo.pfn);
+	pte->d = 1;
+
+	prepare_entry_lo(&lo, pte->g, pte->p, pte->w, pte->cacheable, pte->pfn);
 
 	/*
@@ -338,5 +338,5 @@
 	 */	
 	pte = page_mapping_find(AS, badvaddr);
-	if (pte && pte->lo.v) {
+	if (pte && pte->p) {
 		/*
 		 * Mapping found in page tables.
@@ -355,5 +355,5 @@
 			 */
 			pte = page_mapping_find(AS, badvaddr);
-			ASSERT(pte && pte->lo.v);
+			ASSERT(pte && pte->p);
 			return pte;
 		}
@@ -371,5 +371,5 @@
 	 * Handler cannot succeed if the mapping is marked as invalid.
 	 */
-	if (!pte->lo.v) {
+	if (!pte->p) {
 		printf("Invalid mapping.\n");
 		return NULL;
@@ -379,5 +379,5 @@
 }
 
-void prepare_entry_lo(entry_lo_t *lo, bool g, bool v, bool d, int c, __address pfn)
+void prepare_entry_lo(entry_lo_t *lo, bool g, bool v, bool d, bool cacheable, __address pfn)
 {
 	lo->value = 0;
@@ -385,5 +385,5 @@
 	lo->v = v;
 	lo->d = d;
-	lo->c = c;
+	lo->c = cacheable ? PAGE_CACHEABLE_EXC_WRITE : PAGE_UNCACHED;
 	lo->pfn = pfn;
 }
