Index: kernel/arch/ppc32/src/mm/tlb.c
===================================================================
--- kernel/arch/ppc32/src/mm/tlb.c	(revision f817d3a500d65d74090358c680483a7a8c72924e)
+++ kernel/arch/ppc32/src/mm/tlb.c	(revision 12bf33aabbb4c9c0de96d2a50f4601aff4642be2)
@@ -67,5 +67,5 @@
 	 */	
 	pte_t *pte = page_mapping_find(as, badvaddr);
-	if ((pte) && (pte->p)) {
+	if ((pte) && (pte->present)) {
 		/*
 		 * Mapping found in page tables.
@@ -89,5 +89,5 @@
 			page_table_lock(as, lock);
 			pte = page_mapping_find(as, badvaddr);
-			ASSERT((pte) && (pte->p));
+			ASSERT((pte) && (pte->present));
 			*pfrc = 0;
 			return pte;
@@ -127,5 +127,5 @@
 
 
-static void pht_insert(const uintptr_t vaddr, const pfn_t pfn)
+static void pht_insert(const uintptr_t vaddr, const pte_t *pte)
 {
 	uint32_t page = (vaddr >> 12) & 0xffff;
@@ -190,7 +190,8 @@
 	phte[base + i].h = h;
 	phte[base + i].api = api;
-	phte[base + i].rpn = pfn;
+	phte[base + i].rpn = pte->pfn;
 	phte[base + i].r = 0;
 	phte[base + i].c = 0;
+	phte[base + i].wimg = (pte->page_cache_disable ? WIMG_NO_CACHE : 0);
 	phte[base + i].pp = 2; // FIXME
 }
@@ -264,4 +265,5 @@
 	phte_physical[base + i].r = 0;
 	phte_physical[base + i].c = 0;
+	phte_physical[base + i].wimg = 0;
 	phte_physical[base + i].pp = 2; // FIXME
 }
@@ -319,6 +321,6 @@
 	}
 	
-	pte->a = 1; /* Record access to PTE */
-	pht_insert(badvaddr, pte->pfn);
+	pte->accessed = 1; /* Record access to PTE */
+	pht_insert(badvaddr, pte);
 	
 	page_table_unlock(as, lock);
