Browse Source

MinPlatformPkg/AcpiPlatform: Use FADT duty offset and width PCDs

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3543

Updates the FADT DUTY_OFFSET and DUTY_WIDTH values during boot in the
function PlatformUpdateTables() along with other previously updated
values in the FADT.

Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>
Reviewed-by: Ankit Sinha <ankit.sinha@intel.com>
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Michael Kubacki 2 years ago
parent
commit
6ebb2da1ae

+ 3 - 0
Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c

@@ -1226,6 +1226,9 @@ PlatformUpdateTables (
       FadtHeader->XGpe1Blk.AccessSize     = 0;
     }
 
+    FadtHeader->DutyOffset = PcdGet8 (PcdFadtDutyOffset);
+    FadtHeader->DutyWidth = PcdGet8 (PcdFadtDutyWidth);
+
     DEBUG ((DEBUG_INFO, "ACPI FADT table @ address 0x%x\n", Table));
     DEBUG ((DEBUG_INFO, "  IaPcBootArch 0x%x\n", FadtHeader->IaPcBootArch));
     DEBUG ((DEBUG_INFO, "  Flags 0x%x\n", FadtHeader->Flags));

+ 2 - 0
Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf

@@ -64,6 +64,8 @@
   gMinPlatformPkgTokenSpaceGuid.PcdFadtPreferredPmProfile
   gMinPlatformPkgTokenSpaceGuid.PcdFadtIaPcBootArch
   gMinPlatformPkgTokenSpaceGuid.PcdFadtFlags
+  gMinPlatformPkgTokenSpaceGuid.PcdFadtDutyOffset
+  gMinPlatformPkgTokenSpaceGuid.PcdFadtDutyWidth
 
   gPcAtChipsetPkgTokenSpaceGuid.PcdHpetBaseAddress
   gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress

+ 2 - 2
Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Fadt/Fadt.c

@@ -35,8 +35,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 #define EFI_ACPI_P_LVL3_LAT           0x03E9 // 1001
 #define EFI_ACPI_FLUSH_SIZE 0x0000
 #define EFI_ACPI_FLUSH_STRIDE 0x0000
-#define EFI_ACPI_DUTY_OFFSET  0x01
-#define EFI_ACPI_DUTY_WIDTH 0x00
+#define EFI_ACPI_DUTY_OFFSET          0x00  // To be fixed during boot
+#define EFI_ACPI_DUTY_WIDTH           0x00  // To be fixed during boot
 
 #define EFI_ACPI_DAY_ALRM   0x0D
 #define EFI_ACPI_MON_ALRM   0x00