mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
arm/acpi: Map the new created EFI and ACPI tables to Dom0
Map the UEFI and ACPI tables which we created to non-RAM space in Dom0. Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org> Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Julien Grall <julien.grall@arm.com>
This commit is contained in:
1 parent
1cefff2991
commit
c376e7ae1e
1 file changed
+22
@@ -1723,6 +1723,28 @@ static int prepare_acpi(struct domain *d, struct kernel_info *kinfo)
|
||||
acpi_create_efi_system_table(d, tbl_add);
|
||||
acpi_create_efi_mmap_table(d, &kinfo->mem, tbl_add);
|
||||
|
||||
/* Map the EFI and ACPI tables to Dom0 */
|
||||
rc = map_regions_rw_cache(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 EFI/ACPI table 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;
|
||||
}
|
||||
|
||||
/*
|
||||
* Flush the cache for this region, otherwise DOM0 may read wrong data when
|
||||
* the cache is disabled.
|
||||
*/
|
||||
clean_and_invalidate_dcache_va_range(d->arch.efi_acpi_table,
|
||||
d->arch.efi_acpi_len);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
|
||||