Thread (37 messages) 37 messages, 3 authors, 2013-03-29
STALE4833d

[PATCH v2 02/30] arm64: KVM: define HYP and Stage-2 translation page flags

From: Marc Zyngier <hidden>
Date: 2013-03-27 14:20:50
Also in: kvm

On 27/03/13 14:11, Catalin Marinas wrote:
On Tue, Mar 26, 2013 at 05:00:57PM +0000, Marc Zyngier wrote:
quoted
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -44,6 +44,7 @@ struct page *empty_zero_page;
 EXPORT_SYMBOL(empty_zero_page);
 
 pgprot_t pgprot_default;
+pgprot_t pgprot_device;
 EXPORT_SYMBOL(pgprot_default);
 
 static pmdval_t prot_sect_kernel;
@@ -127,10 +128,11 @@ early_param("cachepolicy", early_cachepolicy);
  */
 static void __init init_mem_pgprot(void)
 {
-	pteval_t default_pgprot;
+	pteval_t default_pgprot, device_pgprot;
 	int i;
 
 	default_pgprot = PTE_ATTRINDX(MT_NORMAL);
+	device_pgprot = PTE_ATTRINDX(MT_DEVICE_nGnRE) | PTE_PXN | PTE_UXN;
 	prot_sect_kernel = PMD_TYPE_SECT | PMD_SECT_AF | PMD_ATTRINDX(MT_NORMAL);
 
 #ifdef CONFIG_SMP
@@ -138,6 +140,7 @@ static void __init init_mem_pgprot(void)
 	 * Mark memory with the "shared" attribute for SMP systems
 	 */
 	default_pgprot |= PTE_SHARED;
+	device_pgprot |= PTE_SHARED;
 	prot_sect_kernel |= PMD_SECT_S;
 #endif
 
@@ -147,6 +150,7 @@ static void __init init_mem_pgprot(void)
 	}
 
 	pgprot_default = __pgprot(PTE_TYPE_PAGE | PTE_AF | default_pgprot);
+	pgprot_device = __pgprot(PTE_TYPE_PAGE | PTE_AF | device_pgprot);
 }
I don't think all this pgprot_device addition is needed. According to
the ARMv8 Translation spec, any shareability attributes for Device
memory are ignored as the memory is always regarded as Outer Shareable.
That's why the ioremap() implementation on arm64 only uses pre-defined
constants.
Right. That makes it much simpler then. I'll drop this part and update
the relevant definitions with PROT_DEVICE_nGnRE instead.

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help