Add the USE_PLATFORM_TIMER flag to the FADT, to make w2k3 use the PMTIMER
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 4 Jun 2010 09:06:23 +0000 (10:06 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 4 Jun 2010 09:06:23 +0000 (10:06 +0100)
...because the default timesource (TSC) drifts under load.

The flag is only defined in ACPI 3.0, and we provide ACPI 2.0 tables,
but Windows seems happy enough to obey it anyway.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
tools/firmware/hvmloader/acpi/acpi2_0.h
tools/firmware/hvmloader/acpi/static_tables.c

index c574f894f5858ad4fd5f70d978c9ffa73bc51df2..9ea356b062364ebf1b4bf73629e42d84d97516cf 100644 (file)
@@ -255,6 +255,7 @@ struct acpi_20_fadt {
 #define ACPI_SEALED_CASE    (1 << 11)
 #define ACPI_HEADLESS       (1 << 12)
 #define ACPI_CPU_SW_SLP     (1 << 13)
+#define ACPI_USE_PLATFORM_CLOCK (1 << 15)
 
 /*
  * Firmware ACPI Control Structure (FACS).
index c7faee86358b96a635e9cfbc656e44dcfe8fb0b3..c2635617cfece92f3eb2f685b969fe051d11bd3d 100644 (file)
@@ -70,7 +70,8 @@ struct acpi_20_fadt Fadt = {
     .iapc_boot_arch = ACPI_8042,
     .flags = (ACPI_PROC_C1 |
               ACPI_WBINVD |
-              ACPI_FIX_RTC | ACPI_TMR_VAL_EXT),
+              ACPI_FIX_RTC | ACPI_TMR_VAL_EXT |
+              ACPI_USE_PLATFORM_CLOCK),
 
     .reset_reg = {
         .address_space_id    = ACPI_SYSTEM_IO,