Index: kernel/arch/arm32/include/mm/page_armv7.h
===================================================================
--- kernel/arch/arm32/include/mm/page_armv7.h	(revision 71ca5a4ba9d02878249c184e17db5a15df94f1ad)
+++ kernel/arch/arm32/include/mm/page_armv7.h	(revision 07a8ef51c024af14ad338054fc4566e302ac2bf3)
@@ -264,4 +264,5 @@
 		p->should_be_zero_0 = 0;
 		p->should_be_zero_1 = 0;
+		p->domain = 0;
 	}
 }
@@ -292,5 +293,15 @@
 	}
 	
-	p->cacheable = p->bufferable = (flags & PAGE_CACHEABLE) != 0;
+	p->cacheable = (flags & PAGE_CACHEABLE);
+	
+	/* even devices can use bufferable */
+	p->bufferable = 1;
+	p->tex = 0;
+	
+	/* Shareable is ignored for devices (non-cacheable),
+	 * turn it on for normal memory. */
+	p->shareable = 1;
+	
+	p->non_global = !(flags & PAGE_GLOBAL);
 	
 	/* default access permission: kernel only*/
