[PATCH v3 49/62] arm/acpi: Map rest tables for Dom0
Stefano Stabellini
stefano.stabellini at eu.citrix.com
Fri Nov 27 04:16:22 PST 2015
On Tue, 17 Nov 2015, shannon.zhao at linaro.org wrote:
> From: Shannon Zhao <shannon.zhao at linaro.org>
>
> Map other reused tables for Dom0.
"Map all other tables to Dom0 using 1:1 mappings."
> Signed-off-by: Shannon Zhao <shannon.zhao at linaro.org>
> ---
> xen/arch/arm/domain_build.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 6ae5761..da4e271 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1359,6 +1359,29 @@ static int prepare_dtb(struct domain *d, struct kernel_info *kinfo)
> #ifdef CONFIG_ACPI
> #define XEN_HYPERVISOR_ID 0x000058656E564D4D /* "XenVMM" */
>
> +static void acpi_map_rest_tables(struct domain *d)
The name doesn't sound nice, "acpi_map_other_tables" would be better.
However this function is not actually mapping the other tables, it is
mapping *all* of them, including the original madt and fadt, right? I
think it would be best to avoid mapping the originals.
> +{
> + int i;
> + unsigned long res;
> + u64 addr, size;
Add a comment that they are being mapped 1:1
> + for( i = 0; i < acpi_gbl_root_table_list.count; i++ )
> + {
> + addr = acpi_gbl_root_table_list.tables[i].address;
> + size = acpi_gbl_root_table_list.tables[i].length;
> + res = map_regions(d,
> + paddr_to_pfn(addr & PAGE_MASK),
> + DIV_ROUND_UP(size, PAGE_SIZE),
> + paddr_to_pfn(addr & PAGE_MASK));
> + if ( res )
> + {
> + panic(XENLOG_ERR "Unable to map 0x%"PRIx64
> + " - 0x%"PRIx64" in domain \n",
> + addr & PAGE_MASK, PAGE_ALIGN(addr + size) - 1);
> + }
> + }
> +}
> +
> static int acpi_create_rsdp(struct domain *d, struct membank tbl_add[])
> {
>
> @@ -1711,6 +1734,8 @@ static int prepare_acpi(struct domain *d, struct kernel_info *kinfo)
> if ( rc != 0 )
> return rc;
>
> + acpi_map_rest_tables(d);
> +
> return 0;
> }
> #else
More information about the linux-arm-kernel
mailing list