On Tue, Jul 21, 2015 at 10:59:19PM +0100, Jonathan (Zhixiong) Zhang wrote:
From: "Jonathan (Zhixiong) Zhang" zjzhang@codeaurora.org
If the physical address has memory attributes defined by EFI memmap as EFI_MEMORY_UC, the page protection type is PROT_DEVICE_nGnRE. Otherwise, the page protection type is PAGE_KERNEL.
Signed-off-by: Jonathan (Zhixiong) Zhang zjzhang@codeaurora.org
This patch applies cleanly to efi-next-14364 of efi/next and arm64-upstream-13521 of arm64/master, but needed slight change to apply to next-20150720 of linux-next/master and pm+acpi-4.2-rc3 of linux-pm/master. The later two branches has newer arch/arm64/include/asm/acpi.h with following patch: b6cfb277378e ACPI / ARM64: add BAD_MADT_GICC_ENTRY() macro
arch/arm64/include/asm/acpi.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
[...]
diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h +static inline pgprot_t arch_apei_get_mem_attribute(phys_addr_t addr) +{
- pgprot_t prot;
- prot = efi_mem_attributes(addr);
- if (prot & EFI_MEMORY_UC)
return PROT_DEVICE_nGnRnE;
- if (prot & EFI_MEMORY_WC)
return PROT_NORMAL_NC;
Can we not use pgprot_noncached and pgprot_writecombine for these two?
- if (prot & EFI_MEMORY_WT)
return PROT_NORMAL_WT;
Then you could add pgprot_writethrough for this guy.
Will