@@ -92,11 +92,14 @@ acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
mfn_t mfn = _mfn(PFN_DOWN(phys));
unsigned int offs = phys & (PAGE_SIZE - 1);
- /* The low first Mb is always mapped. */
- if ( !((phys + size - 1) >> 20) )
- return __va(phys);
+ if (IS_ENABLED(CONFIG_X86)) {
+ /* The low first Mb is always mapped. */
+ if ( !((phys + size - 1) >> 20) )
+ return __va(phys);
+ }
+
return __vmap(&mfn, PFN_UP(offs + size), 1, 1,
- PAGE_HYPERVISOR_NOCACHE) + offs;
+ ACPI_MAP_MEM_ATTR) + offs;
}
return __acpi_map_table(phys, size);
}
@@ -163,4 +163,6 @@ void hvm_acpi_sleep_button(struct domain *d);
void save_rest_processor_state(void);
void restore_rest_processor_state(void);
+#define ACPI_MAP_MEM_ATTR PAGE_HYPERVISOR_NOCACHE
+
#endif /*__X86_ASM_ACPI_H*/