@@ -1691,6 +1691,21 @@ static int prepare_acpi(struct domain *d, struct kernel_info *kinfo)
acpi_create_efi_mmap_table(d->arch.efi_acpi_gpa, d->arch.efi_acpi_len,
d->arch.efi_acpi_table, &kinfo->mem, tbl_add);
+ /* Map the EFI and ACPI tables to Dom0 */
+ rc = map_regions_rw(d,
+ paddr_to_pfn(d->arch.efi_acpi_gpa),
+ PFN_UP(d->arch.efi_acpi_len),
+ paddr_to_pfn(virt_to_maddr(d->arch.efi_acpi_table)));
+ if ( rc != 0 )
+ {
+ printk(XENLOG_ERR "Unable to map 0x%"PRIx64
+ " - 0x%"PRIx64" in domain %d\n",
+ d->arch.efi_acpi_gpa & PAGE_MASK,
+ PAGE_ALIGN(d->arch.efi_acpi_gpa + d->arch.efi_acpi_len) - 1,
+ d->domain_id);
+ return rc;
+ }
+
return 0;
}
#else