From: Boris Ostrovsky Date: Fri, 2 Dec 2016 17:06:06 +0000 (+0100) Subject: acpi: make pmtimer optional in FADT X-Git-Tag: 4.9.0-rc1~1136 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=21e978a33923ddb016f3ad29bd5f3357a1d20c79;p=xen.git acpi: make pmtimer optional in FADT PM timer is not supported by PVH guests. Signed-off-by: Boris Ostrovsky Reviewed-by: Konrad Rzeszutek Wilk Acked-by: Jan Beulich --- diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c index 6e0cfe74d1..1d789736c8 100644 --- a/tools/firmware/hvmloader/util.c +++ b/tools/firmware/hvmloader/util.c @@ -948,7 +948,8 @@ void hvmloader_acpi_build_tables(struct acpi_config *config, if ( !strncmp(xenstore_read("platform/acpi_s4", "1"), "1", 1) ) config->table_flags |= ACPI_HAS_SSDT_S4; - config->table_flags |= (ACPI_HAS_TCPA | ACPI_HAS_IOAPIC | ACPI_HAS_WAET); + config->table_flags |= (ACPI_HAS_TCPA | ACPI_HAS_IOAPIC | + ACPI_HAS_WAET | ACPI_HAS_PMTIMER); config->tis_hdr = (uint16_t *)ACPI_TIS_HDR_ADDRESS; diff --git a/tools/libacpi/build.c b/tools/libacpi/build.c index 47dae01ce6..e1fd381cb1 100644 --- a/tools/libacpi/build.c +++ b/tools/libacpi/build.c @@ -574,6 +574,11 @@ int acpi_build_tables(struct acpi_ctxt *ctxt, struct acpi_config *config) fadt = ctxt->mem_ops.alloc(ctxt, sizeof(struct acpi_20_fadt), 16); if (!fadt) goto oom; + if ( !(config->table_flags & ACPI_HAS_PMTIMER) ) + { + Fadt.pm_tmr_blk = Fadt.pm_tmr_len = 0; + memset(&Fadt.x_pm_tmr_blk, 0, sizeof(Fadt.x_pm_tmr_blk)); + } memcpy(fadt, &Fadt, sizeof(struct acpi_20_fadt)); fadt->dsdt = ctxt->mem_ops.v2p(ctxt, dsdt); fadt->x_dsdt = ctxt->mem_ops.v2p(ctxt, dsdt); diff --git a/tools/libacpi/libacpi.h b/tools/libacpi/libacpi.h index 1d388f9e55..bda692ebfa 100644 --- a/tools/libacpi/libacpi.h +++ b/tools/libacpi/libacpi.h @@ -30,6 +30,7 @@ #define ACPI_HAS_TCPA (1<<7) #define ACPI_HAS_IOAPIC (1<<8) #define ACPI_HAS_WAET (1<<9) +#define ACPI_HAS_PMTIMER (1<<10) struct xen_vmemrange; struct acpi_numa {