]> xenbits.xensource.com Git - xen.git/commitdiff
libacpi: set FADT boot flag to notify lack of VGA for PVHv2 guests
authorRoger Pau Monné <roger.pau@citrix.com>
Tue, 2 Jan 2018 12:29:32 +0000 (12:29 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Fri, 12 Jan 2018 15:40:50 +0000 (15:40 +0000)
PVHv2 guests don't have any VGA card, and as so it must be notified in the FADT.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
tools/firmware/hvmloader/util.c
tools/libacpi/acpi2_0.h
tools/libacpi/build.c
tools/libacpi/libacpi.h

index a3f12fe21c82552dbc9f23f8cbf8e03e5e04c06f..cddf09c1a027b97dfbc2145ca3311546863beae5 100644 (file)
@@ -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;
 
index 03c5dcb2146ab61d4c57c4e9f7eef579bc3274e6..500f95eea7001a0fa697a7c8536102fda5237cb8 100644 (file)
@@ -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.
index 4a2e2a998616258213760f20a5656ea451bbf04a..b06dcfaebbc97fe6d079e34a3016fef838e594da 100644 (file)
@@ -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));
index dd6ef8b14c1590ecd78d2547563d92043f6def91..0d50a82aeb67556044c27cb7f8ffbfbd3f64b47a 100644 (file)
@@ -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 {