From 3031b10e7238a977e6806d714f324cd2c4c81738 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roger=20Pau=20Monn=C3=A9?= Date: Tue, 2 Jan 2018 12:29:32 +0000 Subject: [PATCH] libacpi: set FADT boot flag to notify lack of VGA for PVHv2 guests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit PVHv2 guests don't have any VGA card, and as so it must be notified in the FADT. Signed-off-by: Roger Pau Monné Reviewed-by: Jan Beulich Reviewed-by: Andrew Cooper --- tools/firmware/hvmloader/util.c | 2 +- tools/libacpi/acpi2_0.h | 1 + tools/libacpi/build.c | 2 ++ tools/libacpi/libacpi.h | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c index a3f12fe21c..cddf09c1a0 100644 --- a/tools/firmware/hvmloader/util.c +++ b/tools/firmware/hvmloader/util.c @@ -950,7 +950,7 @@ void hvmloader_acpi_build_tables(struct acpi_config *config, config->table_flags |= (ACPI_HAS_TCPA | ACPI_HAS_IOAPIC | ACPI_HAS_WAET | ACPI_HAS_PMTIMER | - ACPI_HAS_BUTTONS); + ACPI_HAS_BUTTONS | ACPI_HAS_VGA); config->tis_hdr = (uint16_t *)ACPI_TIS_HDR_ADDRESS; diff --git a/tools/libacpi/acpi2_0.h b/tools/libacpi/acpi2_0.h index 03c5dcb214..500f95eea7 100644 --- a/tools/libacpi/acpi2_0.h +++ b/tools/libacpi/acpi2_0.h @@ -229,6 +229,7 @@ struct acpi_20_fadt { */ #define ACPI_FADT_LEGACY_DEVICES (1 << 0) #define ACPI_FADT_8042 (1 << 1) +#define ACPI_FADT_NO_VGA (1 << 2) /* * FADT Fixed Feature Flags. diff --git a/tools/libacpi/build.c b/tools/libacpi/build.c index 4a2e2a9986..b06dcfaebb 100644 --- a/tools/libacpi/build.c +++ b/tools/libacpi/build.c @@ -586,6 +586,8 @@ int acpi_build_tables(struct acpi_ctxt *ctxt, struct acpi_config *config) fadt->x_dsdt = ctxt->mem_ops.v2p(ctxt, dsdt); fadt->firmware_ctrl = ctxt->mem_ops.v2p(ctxt, facs); fadt->x_firmware_ctrl = ctxt->mem_ops.v2p(ctxt, facs); + if ( !(config->table_flags & ACPI_HAS_VGA) ) + fadt->iapc_boot_arch |= ACPI_FADT_NO_VGA; set_checksum(fadt, offsetof(struct acpi_header, checksum), sizeof(struct acpi_20_fadt)); diff --git a/tools/libacpi/libacpi.h b/tools/libacpi/libacpi.h index dd6ef8b14c..0d50a82aeb 100644 --- a/tools/libacpi/libacpi.h +++ b/tools/libacpi/libacpi.h @@ -32,6 +32,7 @@ #define ACPI_HAS_WAET (1<<9) #define ACPI_HAS_PMTIMER (1<<10) #define ACPI_HAS_BUTTONS (1<<11) +#define ACPI_HAS_VGA (1<<12) struct xen_vmemrange; struct acpi_numa { -- 2.39.5