Static ACPI tables for WilsonCityRvp
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
---
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Bdat/Bdat.aslc | 54 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/DBG2/DBG2.aslc | 81 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Facs/Facs62.aslc | 72 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Fadt/Fadt62.aslc | 171 ++++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hmat/Hmat.aslc | 972 ++++++++++++++++++++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hpet/Hpet.aslc | 61 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Mcfg/Mcfg.aslc | 74 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Migt/Migt.aslc | 68 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Msct/Msct.aslc | 137 +++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/NFIT/Nfit.aslc | 48 +
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/PCAT/Pcat.aslc | 44 +
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Pmtt/Pmtt10nm.aslc | 136 +++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/SPCR/Spcr.aslc | 89 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Spmi/Spmi.aslc | 53 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wddt/Wddt1.0.aslc | 74 ++
Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wsmt/Wsmt.aslc | 74 ++
16 files changed, 2208 insertions(+)
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Bdat/Bdat.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Bdat/Bdat.aslc
new file mode 100644
index 0000000000..734f11200f
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Bdat/Bdat.aslc
@@ -0,0 +1,54 @@
+/** @file
+
+ @copyright
+ Copyright 2005 - 2012 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Bdat.h>
+
+//
+// Bdat Access Handler instance data structure
+//
+STATIC
+EFI_BDAT_ACPI_DESCRIPTION_TABLE mBdatAcpiTable = \
+{
+ {EFI_BDAT_TABLE_SIGNATURE, // Signature
+ sizeof (EFI_BDAT_ACPI_DESCRIPTION_TABLE), // Length
+ 0x01, // Revision [01]
+ //
+ // Checksum will be updated during boot
+ //
+ 0, // Checksum
+ {' ', // OEM ID
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' '},
+ 0, // OEM Table ID
+ 0, // OEM Revision [0x00000000]
+ 0, // Creator ID
+ 0}, // Creator Revision
+ {0, // System Memory Address Space ID
+ 0,
+ 0,
+ 0,
+ //
+ // Pointer will be updated during boot
+ //
+ EFI_BDAT_ACPI_POINTER}
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ return (VOID*)&mBdatAcpiTable;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/DBG2/DBG2.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/DBG2/DBG2.aslc
new file mode 100644
index 0000000000..dcad37ac05
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/DBG2/DBG2.aslc
@@ -0,0 +1,81 @@
+/** @file
+
+ @copyright
+ Copyright 1999 - 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+
+#include <IndustryStandard/DebugPort2Table.h>
+#include <Acpi/Dbg2.h>
+
+
+DBG2_DEBUG_TABLE DBG2 =
+{
+ {
+ {EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE,
+ sizeof (DBG2_DEBUG_TABLE),
+ 0,
+
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00,
+
+ //
+ // It is expected that these values will be programmed at runtime
+ //
+ {' ', ' ', ' ', ' ', ' ', ' '},
+
+ 0,
+ 0,
+ 0,
+ 0
+ },
+ //
+ // Beginning of DBG2 specific fields
+ //
+ sizeof(EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE),
+ 1
+ },
+ {
+ EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION,
+ sizeof(EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT),
+ 1,
+ 2,
+ sizeof(EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT) + sizeof(EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE) + 4,
+ 0,
+ 0,
+ EFI_ACPI_DBG2_PORT_TYPE_SERIAL,
+ EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_FULL_16550,
+ {0, 0},
+ sizeof(EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT),
+ sizeof(EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT) + sizeof(EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE)
+ },
+ {
+ EFI_ACPI_6_2_SYSTEM_IO,
+ 16,
+ 0,
+ EFI_ACPI_6_2_BYTE,
+ 0x3F8
+ },
+ 4,
+ "."
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the exeutable
+ //
+ return (VOID*)&DBG2;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Facs/Facs62.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Facs/Facs62.aslc
new file mode 100644
index 0000000000..48753f7939
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Facs/Facs62.aslc
@@ -0,0 +1,72 @@
+/** @file
+
+ @copyright
+ Copyright 1996 - 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Facs.h>
+
+//
+// Firmware ACPI Control Structure
+// Please modify all values in Facs.h only.
+//
+EFI_ACPI_6_2_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs = {
+ EFI_ACPI_6_2_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE,
+ sizeof (EFI_ACPI_6_2_FIRMWARE_ACPI_CONTROL_STRUCTURE),
+ //
+ // Hardware Signature will be updated at runtime
+ //
+ 0x00000000,
+
+ EFI_ACPI_FIRMWARE_WAKING_VECTOR,
+ EFI_ACPI_GLOBAL_LOCK,
+ EFI_ACPI_FIRMWARE_CONTROL_STRUCTURE_FLAGS,
+ EFI_ACPI_X_FIRMWARE_WAKING_VECTOR,
+ EFI_ACPI_6_2_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION,
+ {EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE},
+ EFI_ACPI_OSPM_FLAGS,
+ {EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE}
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the exeutable
+ //
+ return (VOID*)&Facs;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Fadt/Fadt62.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Fadt/Fadt62.aslc
new file mode 100644
index 0000000000..f37cf0a508
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Fadt/Fadt62.aslc
@@ -0,0 +1,171 @@
+/** @file
+
+ @copyright
+ Copyright 1999 - 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+
+#include <Acpi/Fadt.h>
+
+//
+// Fixed ACPI Description Table
+// Please modify all values in Fadt.h only.
+//
+EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
+ {EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
+ sizeof (EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE),
+ EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_REVISION,
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00,
+ //
+ // It is expected that these values will be updated at runtime
+ //
+ {' ', ' ', ' ', ' ', ' ', ' '}, // OEMID
+ 0, // OEM Table ID
+ EFI_ACPI_OEM_FADT_REVISION,
+ 0, // Creator ID
+ 0}, // Creator Revision
+ //
+ // These addresses will be updated at runtime
+ //
+ 0x00000000, // FIRMWARE_CTRL
+ 0x00000000, // DSDT
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_PREFERRED_PM_PROFILE,
+ EFI_ACPI_SCI_INT,
+ EFI_ACPI_SMI_CMD,
+ EFI_ACPI_ACPI_ENABLE,
+ EFI_ACPI_ACPI_DISABLE,
+ EFI_ACPI_S4_BIOS_REQ,
+ EFI_ACPI_PSTATE_CNT,
+
+ EFI_ACPI_PM1A_EVT_BLK_ADDRESS,
+ EFI_ACPI_PM1B_EVT_BLK_ADDRESS,
+ EFI_ACPI_PM1A_CNT_BLK_ADDRESS,
+ EFI_ACPI_PM1B_CNT_BLK_ADDRESS,
+ EFI_ACPI_PM2_CNT_BLK_ADDRESS,
+ EFI_ACPI_PM_TMR_BLK_ADDRESS,
+ EFI_ACPI_GPE0_BLK_ADDRESS,
+ EFI_ACPI_GPE1_BLK_ADDRESS,
+ EFI_ACPI_PM1_EVT_LEN,
+ EFI_ACPI_PM1_CNT_LEN,
+ EFI_ACPI_PM2_CNT_LEN,
+ EFI_ACPI_PM_TMR_LEN,
+ EFI_ACPI_GPE0_BLK_LEN,
+ EFI_ACPI_GPE1_BLK_LEN,
+ EFI_ACPI_GPE1_BASE,
+
+ EFI_ACPI_CST_CNT,
+ EFI_ACPI_P_LVL2_LAT,
+ EFI_ACPI_P_LVL3_LAT,
+ EFI_ACPI_FLUSH_SIZE,
+ EFI_ACPI_FLUSH_STRIDE,
+ EFI_ACPI_DUTY_OFFSET,
+ EFI_ACPI_DUTY_WIDTH,
+ EFI_ACPI_DAY_ALRM,
+ EFI_ACPI_MON_ALRM,
+ EFI_ACPI_CENTURY,
+ EFI_ACPI_IAPC_BOOT_ARCH,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_FIXED_FEATURE_FLAGS | EFI_ACPI_6_2_SLP_BUTTON,
+ //
+ // Reset Register Block
+ //
+ {EFI_ACPI_RESET_REG_ADDRESS_SPACE_ID,
+ EFI_ACPI_RESET_REG_BIT_WIDTH,
+ EFI_ACPI_RESET_REG_BIT_OFFSET,
+ EFI_ACPI_6_2_BYTE,
+ EFI_ACPI_RESET_REG_ADDRESS},
+
+ EFI_ACPI_RESET_VALUE,
+ EFI_ACPI_RESERVED_WORD, // EFI_ACPI_6_2_ARM_BOOT_ARCH
+ EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION,
+ //
+ // These addresses will be updated at runtime
+ //
+ 0x0000000000000000, // X_FIRMWARE_CTRL
+ 0x0000000000000000, // X_DSDT
+ //
+ // X_PM1a Event Register Block
+ //
+ {EFI_ACPI_PM1A_EVT_BLK_ADDRESS_SPACE_ID,
+ EFI_ACPI_PM1A_EVT_BLK_BIT_WIDTH,
+ EFI_ACPI_PM1A_EVT_BLK_BIT_OFFSET,
+ EFI_ACPI_6_2_WORD,
+ EFI_ACPI_PM1A_EVT_BLK_ADDRESS},
+ //
+ // X_PM1b Event Register Block
+ //
+ {EFI_ACPI_PM1B_EVT_BLK_ADDRESS_SPACE_ID,
+ EFI_ACPI_PM1B_EVT_BLK_BIT_WIDTH,
+ EFI_ACPI_PM1B_EVT_BLK_BIT_OFFSET,
+ EFI_ACPI_6_2_UNDEFINED,
+ EFI_ACPI_PM1B_EVT_BLK_ADDRESS},
+ //
+ // X_PM1a Control Register Block
+ //
+ {EFI_ACPI_PM1A_CNT_BLK_ADDRESS_SPACE_ID,
+ EFI_ACPI_PM1A_CNT_BLK_BIT_WIDTH,
+ EFI_ACPI_PM1A_CNT_BLK_BIT_OFFSET,
+ EFI_ACPI_6_2_WORD,
+ EFI_ACPI_PM1A_CNT_BLK_ADDRESS},
+ //
+ // X_PM1b Control Register Block
+ //
+ {EFI_ACPI_PM1B_CNT_BLK_ADDRESS_SPACE_ID,
+ EFI_ACPI_PM1B_CNT_BLK_BIT_WIDTH,
+ EFI_ACPI_PM1B_CNT_BLK_BIT_OFFSET,
+ EFI_ACPI_6_2_UNDEFINED,
+ EFI_ACPI_PM1B_CNT_BLK_ADDRESS},
+ //
+ // X_PM2 Control Register Block
+ //
+ {EFI_ACPI_PM2_CNT_BLK_ADDRESS_SPACE_ID,
+ EFI_ACPI_PM2_CNT_BLK_BIT_WIDTH,
+ EFI_ACPI_PM2_CNT_BLK_BIT_OFFSET,
+ EFI_ACPI_6_2_UNDEFINED,
+ EFI_ACPI_PM2_CNT_BLK_ADDRESS},
+ //
+ // X_PM Timer Control Register Block
+ //
+ {EFI_ACPI_PM_TMR_BLK_ADDRESS_SPACE_ID,
+ EFI_ACPI_PM_TMR_BLK_BIT_WIDTH,
+ EFI_ACPI_PM_TMR_BLK_BIT_OFFSET,
+ EFI_ACPI_6_2_DWORD,
+ EFI_ACPI_PM_TMR_BLK_ADDRESS},
+ //
+ // X_General Purpose Event 0 Register Block
+ //
+ {EFI_ACPI_GPE0_BLK_ADDRESS_SPACE_ID,
+ EFI_ACPI_GPE0_BLK_BIT_WIDTH,
+ EFI_ACPI_GPE0_BLK_BIT_OFFSET,
+ EFI_ACPI_6_2_BYTE,
+ EFI_ACPI_GPE0_BLK_ADDRESS},
+ //
+ // X_General Purpose Event 1 Register Block
+ //
+ {EFI_ACPI_GPE1_BLK_ADDRESS_SPACE_ID,
+ EFI_ACPI_GPE1_BLK_BIT_WIDTH,
+ EFI_ACPI_GPE1_BLK_BIT_OFFSET,
+ EFI_ACPI_6_2_UNDEFINED,
+ EFI_ACPI_GPE1_BLK_ADDRESS}
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the executable.
+ //
+ return (VOID*)&Fadt;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hmat/Hmat.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hmat/Hmat.aslc
new file mode 100644
index 0000000000..ae6efeaee5
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hmat/Hmat.aslc
@@ -0,0 +1,972 @@
+/** @file
+
+ @copyright
+ Copyright 2016 - 2018 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include "Acpi/Hmat.h"
+
+EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE Hmat = {
+ // EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_HEADER
+ {
+ // EFI_ACPI_DESCRIPTION_HEADER
+ {
+ EFI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE,
+ sizeof (EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE),
+ EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_REVISION,
+ 0x00, // Checksum, updated at runtime
+ {' ', ' ', ' ', ' ', ' ', ' '}, // OEM ID, programmed at runtime
+ 0,
+ EFI_ACPI_OEM_HMAT_REVISION,
+ 0,
+ 0
+ }, // EFI_ACPI_DESCRIPTION_HEADER
+ (UINT32) 0
+ }, // EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_HEADER
+
+ // Beginning of HMAT substructures
+#if EFI_ACPI_HMAT_MSARS_COUNT > 0
+ { // MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE[EFI_ACPI_HMAT_MSARS_COUNT]
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#if MC_MAX_NODE > 1
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 2
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 3
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 4
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 5
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 6
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 7
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 8
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 9
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 10
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 11
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 12
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 13
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 14
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+#if MC_MAX_NODE > 15
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+ MSARS_INIT()
+#endif
+ }, // MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE[EFI_ACPI_HMAT_MSARS_COUNT]
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 0
+ { // LATENCY_BANDWIDTH_INFO_STRUCTURE Lbis[EFI_ACPI_HMAT_LBIS_COUNT]
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#if EFI_ACPI_HMAT_LBIS_COUNT > 1
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 2
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 3
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 4
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 5
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 6
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 7
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 8
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 9
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 10
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+#if EFI_ACPI_HMAT_LBIS_COUNT > 11
+ LBIS_START()
+ RELATIVE_DISTANCE()
+#if MC_MAX_NODE > 1
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 2
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 3
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 4
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 5
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 6
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 7
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 8
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 9
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 10
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 11
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 12
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 13
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 14
+ RELATIVE_DISTANCE()
+#endif
+#if MC_MAX_NODE > 15
+ RELATIVE_DISTANCE()
+#endif
+ LBIS_END()
+#endif
+ }, // LATENCY_BANDWIDTH_INFO_STRUCTURE Lbis[EFI_ACPI_HMAT_LBIS_COUNT]
+#endif
+#if EFI_ACPI_HMAT_MSCIS_COUNT > 0
+ { // MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE MemSideCache[EFI_ACPI_HMAT_MSCIS_COUNT]
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#if MC_MAX_NODE > 1
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 2
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 3
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 4
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 5
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 6
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 7
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 8
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 9
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 10
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 11
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 12
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 13
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 14
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+#if MC_MAX_NODE > 15
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+ MSCIS_INIT()
+#endif
+ }, // MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE MemSideCache[EFI_ACPI_HMAT_MSCIS_COUNT]
+#endif
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the executable
+ //
+ return (VOID*)&Hmat;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hpet/Hpet.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hpet/Hpet.aslc
new file mode 100644
index 0000000000..37b680ad6b
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hpet/Hpet.aslc
@@ -0,0 +1,61 @@
+/** @file
+
+ @copyright
+ Copyright 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Hpet.h>
+
+//
+// High Precision Event Timer Table
+// Please modify all values in Hpet.h only.
+//
+EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER Hpet = {
+ {EFI_ACPI_6_2_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE, // Signature
+ sizeof (EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER), // Length
+ EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_REVISION, // Revision [01]
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00, // Checksum
+ //
+ // It is expected that these values will be updated at runtime
+ //
+ {' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' '},
+ 0,
+ EFI_ACPI_OEM_HPET_REVISION, // OEM Revision [0x00000001]
+ 0, // Creator ID
+ 0}, // Creator Revision
+ EFI_ACPI_EVENT_TIMER_BLOCK_ID, // Event Timer Block ID (4B) [0x8086A201]
+ {EFI_ACPI_EVENT_TIMER_BLOCK_ADDRESS_SPACE_ID, // 2 [EFI_ACPI_6_2_SYSTEM_MEMORY]
+ EFI_ACPI_EVENT_TIMER_BLOCK_BIT_WIDTH, // 3 [0x00]
+ EFI_ACPI_EVENT_TIMER_BLOCK_BIT_OFFSET, // 4 [0x00]
+ EFI_ACPI_EVENT_TIMER_ACCESS_SIZE, // [0x00]
+ EFI_ACPI_EVENT_TIMER_BLOCK_ADDRESS}, // HPET Block BASE_ADDRESS (12B) [0x00000000FED00000]
+ EFI_ACPI_HPET_NUMBER, // HPET Number [00]
+ EFI_ACPI_MIN_CLOCK_TICK, // Main Counter Minimum Clock tick [0x0080]
+ EFI_ACPI_HPET_ATTRIBUTES // Page Protection & OEM attribute [0x00]
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the exeutable
+ //
+ return (VOID*)&Hpet;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Mcfg/Mcfg.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Mcfg/Mcfg.aslc
new file mode 100644
index 0000000000..6e9a84aa49
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Mcfg/Mcfg.aslc
@@ -0,0 +1,74 @@
+/** @file
+
+ @copyright
+ Copyright 1999 - 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Mcfg.h>
+
+//
+// MCFG Table definition
+//
+EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE Mcfg = {
+ {{EFI_ACPI_6_2_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_SIGNATURE,
+ sizeof (EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE),
+ EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION,
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00,
+ //
+ // It is expected that these values will be programmed at runtime
+ //
+ {' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' '},
+
+ 0,
+ EFI_ACPI_OEM_MCFG_REVISION,
+ 0,
+ 0},
+ //
+ // Beginning of MCFG specific fields
+ //
+ EFI_ACPI_RESERVED_QWORD},
+ //
+ // Sample Memory Mapped Configuration Space Base Address Structure
+ //
+ // 0x0, // Base Address
+ // 0x0, // PCI Segment Group Number
+ // 0x0, // Start Bus Number
+ // 0x0, // End Bus Number
+ // EFI_ACPI_RESERVED_DWORD, // Reserved
+ //
+ // Memory Mapped Configuration Space Base Address Structure
+ //
+#if EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRESS_STRUCTURE_COUNT > 0
+ {{0x0, // Base Address, will be updated by AcpiPlatform
+ 0x0, // PCI Segment Group Number
+ 0x0, // Start Bus Number
+ 0xff, // End Bus Number
+ EFI_ACPI_RESERVED_DWORD}} // Reserved
+#endif // EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRESS_STRUCTURE_COUNT
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the exeutable
+ //
+ return (VOID*)&Mcfg;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Migt/Migt.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Migt/Migt.aslc
new file mode 100644
index 0000000000..5efe5afee1
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Migt/Migt.aslc
@@ -0,0 +1,68 @@
+/** @file
+
+ @copyright
+ Copyright 2005 - 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Migt.h>
+
+//
+// Please modify all values in Migt.h only.
+//
+EFI_MIGT_ACPI_DESCRIPTION_TABLE Migt = {
+ {EFI_MIGT_ACPI_TABLE_SIGNATURE, // Signature
+ sizeof (EFI_MIGT_ACPI_DESCRIPTION_TABLE), // Length
+ EFI_MIGT_ACPI_DESCRIPTION_TABLE_REVISION, // Revision
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00, // Checksum
+ //
+ // It is expected that these values will be updated at runtime
+ //
+ {' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' '},
+ 0,
+ EFI_MIGT_ACPI_OEM_REVISION, // OEM Revision
+ 0, // Creator ID
+ 0}, // Creator Revision
+ //
+ // MIGT Speicific Entries
+ // Control Register GAS structure
+ //
+ {EFI_MIGT_CR_ACPI_ADDRESS_SPACE_ID, // IO Type ID.
+ EFI_MIGT_CR_ACPI_REGISTER_BIT_WIDTH,
+ EFI_MIGT_CR_ACPI_REGISTER_BIT_OFFSET,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_MIGT_CR_ACPI_SMI_ADDRESS},
+
+ MIGT_SMI_SERVICE_ID, // SMI Door Bell
+
+ //
+ // Action Region GAS structure
+ //
+ {EFI_MIGT_AR_ACPI_ADDRESS_SPACE_ID, // Memory Type ID
+ EFI_MIGT_AR_ACPI_REGISTER_BIT_WIDTH,
+ EFI_MIGT_AR_ACPI_REGISTER_BIT_OFFSET,
+ EFI_ACPI_RESERVED_BYTE,
+ // update during boot
+ EFI_MIGT_AR_ACPI_MEMORY_ADDRESS}
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ return (VOID*)&Migt;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Msct/Msct.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Msct/Msct.aslc
new file mode 100644
index 0000000000..e0e1bebd0a
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Msct/Msct.aslc
@@ -0,0 +1,137 @@
+/** @file
+
+ @copyright
+ Copyright 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Msct.h>
+
+//
+// Maximum System Characteristics Table definition
+//
+EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE Msct = {
+ {EFI_ACPI_6_2_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE,
+ sizeof (EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE), // Length
+ EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION, // Revision
+ 0x00, // Checksum will be updated at runtime
+ {'I', 'N', 'T', 'E', 'L', ' '}, // OemId
+ 0, // OemTableId
+ EFI_ACPI_OEM_MSCT_REVISION, // OemRevision
+ EFI_ACPI_CREATOR_ID, // CreaterId
+ EFI_ACPI_CREATOR_REVISION}, // CreaterRevision
+ //
+ // Beginning of MSCT specific fields
+ //
+ 0x00000038, // OffsetProxDomInfo
+ MAX_SOCKET - 1, // MaxNumProxDom
+ 0x00000000, // MaxNumClockDom
+ 0x0000000000000000, // MaxPhysicalAddress
+ //
+ // Proximity Domain Information Structure 0
+ //
+ {{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
+ sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
+ 0x00000000, // ProxDomRangeLow
+ 0x00000000, // ProxDomRangeHigh
+ 0x00000000, // MaxProcessorCapacity
+ 0x0000000000000000} // MaxMemoryCapacity
+
+#if MAX_SOCKET > 1
+ //
+ // Proximity Domain Information Structure 1
+ //
+ ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
+ sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
+ 0x00000000, // ProxDomRangeLow
+ 0x00000000, // ProxDomRangeHigh
+ 0x00000000, // MaxProcessorCapacity
+ 0x0000000000000000} // MaxMemoryCapacity
+#endif
+
+#if MAX_SOCKET > 2
+ //
+ // Proximity Domain Information Structure 2
+ //
+ ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
+ sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
+ 0x00000000, // ProxDomRangeLow
+ 0x00000000, // ProxDomRangeHigh
+ 0x00000000, // MaxProcessorCapacity
+ 0x0000000000000000} // MaxMemoryCapacity
+#endif
+
+#if MAX_SOCKET > 3
+ //
+ // Proximity Domain Information Structure 3
+ //
+ ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
+ sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
+ 0x00000000, // ProxDomRangeLow
+ 0x00000000, // ProxDomRangeHigh
+ 0x00000000, // MaxProcessorCapacity
+ 0x0000000000000000} // MaxMemoryCapacity
+#endif
+
+#if MAX_SOCKET > 4
+ //
+ // Proximity Domain Information Structure 4
+ //
+ ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
+ sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
+ 0x00000000, // ProxDomRangeLow
+ 0x00000000, // ProxDomRangeHigh
+ 0x00000000, // MaxProcessorCapacity
+ 0x0000000000000000} // MaxMemoryCapacity
+#endif
+
+#if MAX_SOCKET > 5
+ //
+ // Proximity Domain Information Structure 5
+ //
+ ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
+ sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
+ 0x00000000, // ProxDomRangeLow
+ 0x00000000, // ProxDomRangeHigh
+ 0x00000000, // MaxProcessorCapacity
+ 0x0000000000000000} // MaxMemoryCapacity
+#endif
+
+#if MAX_SOCKET > 6
+ //
+ // Proximity Domain Information Structure 6
+ //
+ ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
+ sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
+ 0x00000000, // ProxDomRangeLow
+ 0x00000000, // ProxDomRangeHigh
+ 0x00000000, // MaxProcessorCapacity
+ 0x0000000000000000} // MaxMemoryCapacity
+#endif
+
+#if MAX_SOCKET > 7
+ //
+ // Proximity Domain Information Structure 7
+ //
+ ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_REVISION, // Revision
+ sizeof (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE), // Length
+ 0x00000000, // ProxDomRangeLow
+ 0x00000000, // ProxDomRangeHigh
+ 0x00000000, // MaxProcessorCapacity
+ 0x0000000000000000} // MaxMemoryCapacity
+#endif
+ }
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ return (VOID*)&Msct;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/NFIT/Nfit.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/NFIT/Nfit.aslc
new file mode 100644
index 0000000000..389c43ce3c
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/NFIT/Nfit.aslc
@@ -0,0 +1,48 @@
+/** @file
+
+ @copyright
+ Copyright 2015 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Nfit.h>
+
+//
+// NFIT Table
+// Please modify all values in Nfit.h only.
+//
+NVDIMM_FW_INTERFACE_TABLE Nfit = {
+ NVDIMM_FW_INTERFACE_TABLE_SIGNATURE, // Signature
+ sizeof (NVDIMM_FW_INTERFACE_TABLE), // Length
+ NVDIMM_FW_INTERFACE_TABLE_REVISION, // Revision [01]
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00, // Checksum
+ //
+ // It is expected that these values will be updated at runtime
+ //
+ {' ', // TODO any other static values to be filled in?
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' '}
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the exeutable
+ //
+ return (VOID*)&Nfit;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/PCAT/Pcat.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/PCAT/Pcat.aslc
new file mode 100644
index 0000000000..e43c865c64
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/PCAT/Pcat.aslc
@@ -0,0 +1,44 @@
+/** @file
+
+ @copyright
+ Copyright 2015 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Pcat.h>
+
+//
+// PCAT Table
+// Please modify all values in Pcat.h only.
+//
+NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE Pcat = {
+ NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE_SIGNATURE, // Signature
+ sizeof (NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE), // Length
+ NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE_REVISION, // Revision
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00, // Checksum
+ //
+ // It is expected that these values will be updated at runtime
+ //
+ {' '}, // TODO any other static values?
+
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the exeutable
+ //
+ return (VOID*)&Pcat;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Pmtt/Pmtt10nm.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Pmtt/Pmtt10nm.aslc
new file mode 100644
index 0000000000..a0b4dc2756
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Pmtt/Pmtt10nm.aslc
@@ -0,0 +1,136 @@
+/** @file
+
+ @copyright
+ Copyright 2016 - 2018 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Pmtt.h>
+//
+// PMTT Table
+//
+#define PHYSICAL_COMP_IDENTIFIER \
+ {PHYSICAL_COMPONENT_IDENTIFIER_TYPE_DIMM, \
+ EFI_ACPI_RESERVED_BYTE, \
+ sizeof (ACPI_PMTT_DIMM_DEVICE), \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ 0x00000000, \
+ 0xFFFFFFFF}
+
+#define SLOT \
+ {ACPI_TOP_LEVEL_VENDOR_SPECIFIC_DEVICE, \
+ EFI_ACPI_RESERVED_BYTE, \
+ sizeof (ACPI_PMTT_SLOT_DEVICE) - sizeof(ACPI_PMTT_DIMM_DEVICE), \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ 0x00000000, \
+ PMTT_TYPE_SLOT_GUID, \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ PHYSICAL_COMP_IDENTIFIER}
+
+#define CHANNEL \
+ {ACPI_TOP_LEVEL_VENDOR_SPECIFIC_DEVICE, \
+ EFI_ACPI_RESERVED_BYTE, \
+ sizeof (ACPI_PMTT_CHANNEL_DEVICE) - MAX_DIMM * sizeof(ACPI_PMTT_SLOT_DEVICE), \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ 0x00000000, \
+ PMTT_TYPE_CHANNEL_GUID, \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ {SLOT, \
+ SLOT} \
+ }
+
+#define MEM_IMC \
+ {ACPI_TOP_LEVEL_IMC, \
+ EFI_ACPI_RESERVED_BYTE, \
+ sizeof (ACPI_PMTT_IMC_DEVICE) - MAX_MC_CH * sizeof(ACPI_PMTT_CHANNEL_DEVICE), \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ 0x00000000, \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ {CHANNEL, \
+ CHANNEL} \
+ }
+
+#define DIE \
+ {ACPI_TOP_LEVEL_VENDOR_SPECIFIC_DEVICE, \
+ EFI_ACPI_RESERVED_BYTE, \
+ sizeof (ACPI_PMTT_DIE_DEVICE) - MAX_IMC * sizeof(ACPI_PMTT_IMC_DEVICE), \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ 0x00000000, \
+ PMTT_TYPE_DIE_GUID, \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ {MEM_IMC, \
+ MEM_IMC, \
+ MEM_IMC, \
+ MEM_IMC}}
+
+#define SKT_LEVEL \
+ {ACPI_TOP_LEVEL_SOCKET, \
+ EFI_ACPI_RESERVED_BYTE, \
+ sizeof (ACPI_PMTT_SOCKET_DEVICE) - sizeof(ACPI_PMTT_DIE_DEVICE), \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ 0x00000000, \
+ 0x00000000, \
+ EFI_ACPI_RESERVED_BYTE, \
+ {DIE} \
+ },
+#pragma pack(1)
+
+ACPI_PLATFORM_MEMORY_TOPOLOGY_TABLE mPmttTable = {
+ {ACPI_PMTT_TABLE_SIGNATURE, // Signature 'PMTT'
+ sizeof (ACPI_PLATFORM_MEMORY_TOPOLOGY_TABLE), // Length
+ ACPI_PMTT_TABLE_REVISION, // Revision
+ 0x00, // CheckSum
+ {'I', 'N', 'T', 'E', 'L', ' '}, // OemId
+ 0, // OemTableId
+ ACPI_PMTT_OEM_REVISION, // OemRevision
+ EFI_ACPI_CREATOR_ID, // CreaterId
+ EFI_ACPI_CREATOR_REVISION}, // CreaterRevision
+ 0, // NumOfMemoryDevices
+ { SKT_LEVEL
+#if MAX_SOCKET > 1
+ SKT_LEVEL
+#endif
+#if MAX_SOCKET > 2
+ SKT_LEVEL
+#endif
+#if MAX_SOCKET > 3
+ SKT_LEVEL
+#endif
+#if MAX_SOCKET > 4
+ SKT_LEVEL
+#endif
+#if MAX_SOCKET > 5
+ SKT_LEVEL
+#endif
+#if MAX_SOCKET > 6
+ SKT_LEVEL
+#endif
+#if MAX_SOCKET > 7
+ SKT_LEVEL
+#endif
+ }
+};
+
+#pragma pack()
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+{
+ return (VOID*)&mPmttTable;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/SPCR/Spcr.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/SPCR/Spcr.aslc
new file mode 100644
index 0000000000..26603102a2
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/SPCR/Spcr.aslc
@@ -0,0 +1,89 @@
+/** @file
+
+ @copyright
+ Copyright 1999 - 2002 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+
+#include <IndustryStandard/Acpi.h>
+#include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
+#include <Acpi/Spcr.h>
+
+//
+// Serial Port Console Redirection Table
+// Please modify all values in Spcr.h only.
+//
+
+EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = {
+ {EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE,
+ sizeof (EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE),
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION,
+
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00,
+
+ //
+ // It is expected that these values will be programmed at runtime
+ //
+ {' ', ' ', ' ', ' ', ' ', ' '},
+
+ 0,
+ EFI_ACPI_OEM_SPCR_REVISION,
+ 0,
+ 0},
+
+ //
+ // Beginning of SPCR specific fields
+ //
+ EFI_ACPI_INTERFACE_TYPE,
+ {EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE},
+
+ //
+ // Base Address Block
+ //
+ {EFI_ACPI_BASE_ADDRESS_ADDRESS_SPACE_ID,
+ EFI_ACPI_BASE_ADDRESS_BIT_WIDTH,
+ EFI_ACPI_BASE_ADDRESS_BIT_OFFSET,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_BASE_ADDRESS_ADDRESS},
+
+ EFI_ACPI_INTERRUPT_TYPE,
+ EFI_ACPI_IRQ,
+ EFI_ACPI_GLOBAL_SYSTEM_INTERRUPT,
+ EFI_ACPI_BAUD_RATE,
+ EFI_ACPI_PARITY,
+ EFI_ACPI_STOP_BITS,
+ EFI_ACPI_FLOW_CONTROL,
+ EFI_ACPI_TERMINAL_TYPE,
+ EFI_ACPI_LANGUAGE,
+ EFI_ACPI_PCI_DEVICE_ID,
+ EFI_ACPI_PCI_VENDOR_ID,
+ EFI_ACPI_PCI_BUS_NUMBER,
+ EFI_ACPI_PCI_DEVICE_NUMBER,
+ EFI_ACPI_PCI_FUNCTION_NUMBER,
+ EFI_ACPI_PCI_FLAGS,
+ EFI_ACPI_PCI_SEGMENT,
+ EFI_ACPI_RESERVED_DWORD
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the exeutable
+ //
+ return (VOID*)&Spcr;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Spmi/Spmi.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Spmi/Spmi.aslc
new file mode 100644
index 0000000000..74855daee4
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Spmi/Spmi.aslc
@@ -0,0 +1,53 @@
+/** @file
+
+ @copyright
+ Copyright 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/Spmi.h>
+
+//
+// Server processor management interface table definition
+//
+EFI_ACPI_SERVER_PROCESSOR_MANAGEMENT_INTERFACE_TABLE Spmi = {
+ {EFI_ACPI_6_2_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE,
+ sizeof (EFI_ACPI_SERVER_PROCESSOR_MANAGEMENT_INTERFACE_TABLE), // Length
+ EFI_ACPI_SERVER_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_REVISION, // Revision
+ 0x00, // Checksum will be updated at runtime
+ {'I', 'N', 'T', 'E', 'L', ' '}, // OemId
+ 0, // OemTableId
+ EFI_ACPI_OEM_SPMI_REVISION, // OemRevision
+ 0, // CreaterId
+ 0}, // CreaterRevision
+ //
+ // Beginning of Spmi specific fields
+ //
+ 0x00, // InterfaceType
+ 0x01, // Reserved37, always 1
+ EFI_ACPI_SPMI_SPECIFICATION_REVISION, // SpecificationRevision
+ 0x00, // InterruptType
+ 0x00, // GPE
+ 0x00, // Reserved42
+ 0x00, // PciDeviceFlag
+ 0x00000000, // GlobalSystemInterrupt
+ {0x00, 0x00, 0x00, 0x00, 0x00}, // GAS
+ 0x00, // UidByte1
+ 0x00, // UidByte2
+ 0x00, // UidByte3
+ 0x00, // UidByte4
+ 0x00 // Reserved64
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ return (VOID*)&Spmi;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wddt/Wddt1.0.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wddt/Wddt1.0.aslc
new file mode 100644
index 0000000000..fe0db504fd
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wddt/Wddt1.0.aslc
@@ -0,0 +1,74 @@
+/** @file
+
+ @copyright
+ Copyright 1999 - 2019 Intel Corporation. <BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include <Acpi/WatchdogDescriptionTable.h>
+#include <Acpi/Wddt.h>
+
+//
+// Watchdog Description Table , ACPI 6.2 compliant
+//
+EFI_ACPI_WATCH_DOG_DESCRIPTION_TABLE Wddt = {
+ {EFI_ACPI_WDDT_SIGNATURE,
+ sizeof (EFI_ACPI_WATCH_DOG_DESCRIPTION_TABLE),
+ EFI_ACPI_WDDT_DESCRIPTION_TABLE_REVISION,
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00,
+ //
+ // It is expected that these values will be programmed at runtime
+ //
+ {' ',
+ ' ',
+ ' ',
+ ' ',
+ ' ',
+ ' '},
+ 0,
+ 0,
+ 0,
+ 0},
+ //
+ // WDDT specific fields
+ //
+ //
+ // This is LPC bridge VID it must be patched in
+ //
+ 0,
+ EFI_ACPI_WDDT_SPEC_VERSION,
+ EFI_ACPI_WDDT_TABLE_VERSION,
+ //
+ // Base Address
+ //
+ {0x01,
+ 0xff,
+ 0x00,
+ 0x00,
+ //
+ // This is AcpiBase(PmBase)+60 and must be patched in
+ //
+ 0000},
+ EFI_ACPI_WDDT_TIMER_MAX_COUNT,
+ EFI_ACPI_WDDT_TIMER_MIN_VALUE,
+ EFI_ACPI_WDDT_TIMER_PERIOD_COUNT,
+ EFI_ACPI_WDDT_STATUS_AVAILABLE,
+ 00
+
+};
+
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ return (VOID*)&Wddt;
+}
diff --git a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wsmt/Wsmt.aslc b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wsmt/Wsmt.aslc
new file mode 100644
index 0000000000..83484b7cd7
--- /dev/null
+++ b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wsmt/Wsmt.aslc
@@ -0,0 +1,74 @@
+/** @file
+
+ @copyright
+ Copyright 2017 - 2020 Intel Corporation.
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+
+ //
+ // Statements that include other files
+ //
+
+#include <Acpi/Wsmt.h>
+
+ //
+ // Windows SMM Security Mitigations Table
+ // Please modify all values in Wsmt.h only.
+ //
+
+ACPI_WINDOWS_SMM_SECURITY_MITIGATIONS_TABLE Wsmt = {
+ //
+ // Header
+ //
+ {
+ ACPI_WSMT_SIGNATURE,
+ ACPI_WSMT_LENGTH,
+ EFI_ACPI_WSMT_REVISION,
+
+ //
+ // Checksum will be updated at runtime
+ //
+ 0x00,
+
+ //
+ // It is expected that these values will be updated at runtime
+ //
+ { ' ', ' ', ' ', ' ', ' ', ' ' },
+ 0,
+ ACPI_OEM_WSMT_REVISION,
+ 0,
+ 0
+ },
+ //
+ // Protection Flags
+ //
+ {
+ { 0 }
+ }
+
+};
+
+#if defined (__GNUC__)
+VOID*
+ReferenceAcpiTable (
+ VOID
+ )
+
+{
+ //
+ // Reference the table being generated to prevent the optimizer from removing the
+ // data structure from the executable
+ //
+ return (VOID*)&Wsmt;
+}
+#else
+VOID
+main (
+ VOID
+ )
+
+{
+}
+#endif
--
2.27.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86426): https://edk2.groups.io/g/devel/message/86426
Mute This Topic: https://groups.io/mt/88979439/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
> -----Original Message-----
> From: Oram, Isaac W <isaac.w.oram@intel.com>
> Sent: Monday, February 7, 2022 11:03 AM
> To: devel@edk2.groups.io
> Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Chiu, Chasel
> <chasel.chiu@intel.com>
> Subject: [edk2-devel][edk2-platforms][PATCH V1 4/8]
> WhitleyOpenBoardPkg/AcpiTables10nm: Add Static ACPI tables
>
> Static ACPI tables for WilsonCityRvp
>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
> ---
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Bdat/Bdat.
> aslc | 54 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/DBG2/DBG
> 2.aslc | 81 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Facs/Facs6
> 2.aslc | 72 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Fadt/Fadt6
> 2.aslc | 171 ++++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hmat/Hma
> t.aslc | 972 ++++++++++++++++++++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hpet/Hpet
> .aslc | 61 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Mcfg/Mcfg
> .aslc | 74 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Migt/Migt.
> aslc | 68 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Msct/Msct
> .aslc | 137 +++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/NFIT/Nfit.a
> slc | 48 +
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/PCAT/Pcat.
> aslc | 44 +
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Pmtt/Pmtt
> 10nm.aslc | 136 +++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/SPCR/Spcr.
> aslc | 89 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Spmi/Spmi
> .aslc | 53 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wddt/Wdd
> t1.0.aslc | 74 ++
>
> Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wsmt/Ws
> mt.aslc | 74 ++
> 16 files changed, 2208 insertions(+)
>
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Bdat/Bd
> at.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Bdat/Bd
> at.aslc
> new file mode 100644
> index 0000000000..734f11200f
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Bdat/Bd
> at.aslc
> @@ -0,0 +1,54 @@
> +/** @file
> +
> + @copyright
> + Copyright 2005 - 2012 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Bdat.h>
> +
> +//
> +// Bdat Access Handler instance data structure
> +//
> +STATIC
> +EFI_BDAT_ACPI_DESCRIPTION_TABLE mBdatAcpiTable = \
> +{
> + {EFI_BDAT_TABLE_SIGNATURE, // Signature
> + sizeof (EFI_BDAT_ACPI_DESCRIPTION_TABLE), // Length
> + 0x01, // Revision [01]
> + //
> + // Checksum will be updated during boot
> + //
> + 0, // Checksum
> + {' ', // OEM ID
> + ' ',
> + ' ',
> + ' ',
> + ' ',
> + ' '},
> + 0, // OEM Table ID
> + 0, // OEM Revision [0x00000000]
> + 0, // Creator ID
> + 0}, // Creator Revision
> + {0, // System Memory Address Space ID
> + 0,
> + 0,
> + 0,
> + //
> + // Pointer will be updated during boot
> + //
> + EFI_BDAT_ACPI_POINTER}
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + return (VOID*)&mBdatAcpiTable;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/DBG2/D
> BG2.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/DBG2/D
> BG2.aslc
> new file mode 100644
> index 0000000000..dcad37ac05
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/DBG2/D
> BG2.aslc
> @@ -0,0 +1,81 @@
> +/** @file
> +
> + @copyright
> + Copyright 1999 - 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +
> +#include <IndustryStandard/DebugPort2Table.h>
> +#include <Acpi/Dbg2.h>
> +
> +
> +DBG2_DEBUG_TABLE DBG2 =
> +{
> + {
> + {EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE,
> + sizeof (DBG2_DEBUG_TABLE),
> + 0,
> +
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00,
> +
> + //
> + // It is expected that these values will be programmed at runtime
> + //
> + {' ', ' ', ' ', ' ', ' ', ' '},
> +
> + 0,
> + 0,
> + 0,
> + 0
> + },
> + //
> + // Beginning of DBG2 specific fields
> + //
> + sizeof(EFI_ACPI_DEBUG_PORT_2_DESCRIPTION_TABLE),
> + 1
> + },
> + {
> + EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT_REVISION,
> + sizeof(EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT),
> + 1,
> + 2,
> + sizeof(EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT) +
> sizeof(EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE) + 4,
> + 0,
> + 0,
> + EFI_ACPI_DBG2_PORT_TYPE_SERIAL,
> + EFI_ACPI_DBG2_PORT_SUBTYPE_SERIAL_FULL_16550,
> + {0, 0},
> + sizeof(EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT),
> + sizeof(EFI_ACPI_DBG2_DEBUG_DEVICE_INFORMATION_STRUCT) +
> sizeof(EFI_ACPI_6_2_GENERIC_ADDRESS_STRUCTURE)
> + },
> + {
> + EFI_ACPI_6_2_SYSTEM_IO,
> + 16,
> + 0,
> + EFI_ACPI_6_2_BYTE,
> + 0x3F8
> + },
> + 4,
> + "."
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the exeutable
> + //
> + return (VOID*)&DBG2;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Facs/Fac
> s62.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Facs/Fac
> s62.aslc
> new file mode 100644
> index 0000000000..48753f7939
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Facs/Fac
> s62.aslc
> @@ -0,0 +1,72 @@
> +/** @file
> +
> + @copyright
> + Copyright 1996 - 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Facs.h>
> +
> +//
> +// Firmware ACPI Control Structure
> +// Please modify all values in Facs.h only.
> +//
> +EFI_ACPI_6_2_FIRMWARE_ACPI_CONTROL_STRUCTURE Facs = {
> + EFI_ACPI_6_2_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE,
> + sizeof (EFI_ACPI_6_2_FIRMWARE_ACPI_CONTROL_STRUCTURE),
> + //
> + // Hardware Signature will be updated at runtime
> + //
> + 0x00000000,
> +
> + EFI_ACPI_FIRMWARE_WAKING_VECTOR,
> + EFI_ACPI_GLOBAL_LOCK,
> + EFI_ACPI_FIRMWARE_CONTROL_STRUCTURE_FLAGS,
> + EFI_ACPI_X_FIRMWARE_WAKING_VECTOR,
> + EFI_ACPI_6_2_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION,
> + {EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE},
> + EFI_ACPI_OSPM_FLAGS,
> + {EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE}
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the exeutable
> + //
> + return (VOID*)&Facs;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Fadt/Fad
> t62.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Fadt/Fad
> t62.aslc
> new file mode 100644
> index 0000000000..f37cf0a508
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Fadt/Fad
> t62.aslc
> @@ -0,0 +1,171 @@
> +/** @file
> +
> + @copyright
> + Copyright 1999 - 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +
> +#include <Acpi/Fadt.h>
> +
> +//
> +// Fixed ACPI Description Table
> +// Please modify all values in Fadt.h only.
> +//
> +EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE Fadt = {
> + {EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,
> + sizeof (EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE),
> + EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_REVISION,
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00,
> + //
> + // It is expected that these values will be updated at runtime
> + //
> + {' ', ' ', ' ', ' ', ' ', ' '}, // OEMID
> + 0, // OEM Table ID
> + EFI_ACPI_OEM_FADT_REVISION,
> + 0, // Creator ID
> + 0}, // Creator Revision
> + //
> + // These addresses will be updated at runtime
> + //
> + 0x00000000, // FIRMWARE_CTRL
> + 0x00000000, // DSDT
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_PREFERRED_PM_PROFILE,
> + EFI_ACPI_SCI_INT,
> + EFI_ACPI_SMI_CMD,
> + EFI_ACPI_ACPI_ENABLE,
> + EFI_ACPI_ACPI_DISABLE,
> + EFI_ACPI_S4_BIOS_REQ,
> + EFI_ACPI_PSTATE_CNT,
> +
> + EFI_ACPI_PM1A_EVT_BLK_ADDRESS,
> + EFI_ACPI_PM1B_EVT_BLK_ADDRESS,
> + EFI_ACPI_PM1A_CNT_BLK_ADDRESS,
> + EFI_ACPI_PM1B_CNT_BLK_ADDRESS,
> + EFI_ACPI_PM2_CNT_BLK_ADDRESS,
> + EFI_ACPI_PM_TMR_BLK_ADDRESS,
> + EFI_ACPI_GPE0_BLK_ADDRESS,
> + EFI_ACPI_GPE1_BLK_ADDRESS,
> + EFI_ACPI_PM1_EVT_LEN,
> + EFI_ACPI_PM1_CNT_LEN,
> + EFI_ACPI_PM2_CNT_LEN,
> + EFI_ACPI_PM_TMR_LEN,
> + EFI_ACPI_GPE0_BLK_LEN,
> + EFI_ACPI_GPE1_BLK_LEN,
> + EFI_ACPI_GPE1_BASE,
> +
> + EFI_ACPI_CST_CNT,
> + EFI_ACPI_P_LVL2_LAT,
> + EFI_ACPI_P_LVL3_LAT,
> + EFI_ACPI_FLUSH_SIZE,
> + EFI_ACPI_FLUSH_STRIDE,
> + EFI_ACPI_DUTY_OFFSET,
> + EFI_ACPI_DUTY_WIDTH,
> + EFI_ACPI_DAY_ALRM,
> + EFI_ACPI_MON_ALRM,
> + EFI_ACPI_CENTURY,
> + EFI_ACPI_IAPC_BOOT_ARCH,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_FIXED_FEATURE_FLAGS | EFI_ACPI_6_2_SLP_BUTTON,
> + //
> + // Reset Register Block
> + //
> + {EFI_ACPI_RESET_REG_ADDRESS_SPACE_ID,
> + EFI_ACPI_RESET_REG_BIT_WIDTH,
> + EFI_ACPI_RESET_REG_BIT_OFFSET,
> + EFI_ACPI_6_2_BYTE,
> + EFI_ACPI_RESET_REG_ADDRESS},
> +
> + EFI_ACPI_RESET_VALUE,
> + EFI_ACPI_RESERVED_WORD, // EFI_ACPI_6_2_ARM_BOOT_ARCH
> + EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION,
> + //
> + // These addresses will be updated at runtime
> + //
> + 0x0000000000000000, // X_FIRMWARE_CTRL
> + 0x0000000000000000, // X_DSDT
> + //
> + // X_PM1a Event Register Block
> + //
> + {EFI_ACPI_PM1A_EVT_BLK_ADDRESS_SPACE_ID,
> + EFI_ACPI_PM1A_EVT_BLK_BIT_WIDTH,
> + EFI_ACPI_PM1A_EVT_BLK_BIT_OFFSET,
> + EFI_ACPI_6_2_WORD,
> + EFI_ACPI_PM1A_EVT_BLK_ADDRESS},
> + //
> + // X_PM1b Event Register Block
> + //
> + {EFI_ACPI_PM1B_EVT_BLK_ADDRESS_SPACE_ID,
> + EFI_ACPI_PM1B_EVT_BLK_BIT_WIDTH,
> + EFI_ACPI_PM1B_EVT_BLK_BIT_OFFSET,
> + EFI_ACPI_6_2_UNDEFINED,
> + EFI_ACPI_PM1B_EVT_BLK_ADDRESS},
> + //
> + // X_PM1a Control Register Block
> + //
> + {EFI_ACPI_PM1A_CNT_BLK_ADDRESS_SPACE_ID,
> + EFI_ACPI_PM1A_CNT_BLK_BIT_WIDTH,
> + EFI_ACPI_PM1A_CNT_BLK_BIT_OFFSET,
> + EFI_ACPI_6_2_WORD,
> + EFI_ACPI_PM1A_CNT_BLK_ADDRESS},
> + //
> + // X_PM1b Control Register Block
> + //
> + {EFI_ACPI_PM1B_CNT_BLK_ADDRESS_SPACE_ID,
> + EFI_ACPI_PM1B_CNT_BLK_BIT_WIDTH,
> + EFI_ACPI_PM1B_CNT_BLK_BIT_OFFSET,
> + EFI_ACPI_6_2_UNDEFINED,
> + EFI_ACPI_PM1B_CNT_BLK_ADDRESS},
> + //
> + // X_PM2 Control Register Block
> + //
> + {EFI_ACPI_PM2_CNT_BLK_ADDRESS_SPACE_ID,
> + EFI_ACPI_PM2_CNT_BLK_BIT_WIDTH,
> + EFI_ACPI_PM2_CNT_BLK_BIT_OFFSET,
> + EFI_ACPI_6_2_UNDEFINED,
> + EFI_ACPI_PM2_CNT_BLK_ADDRESS},
> + //
> + // X_PM Timer Control Register Block
> + //
> + {EFI_ACPI_PM_TMR_BLK_ADDRESS_SPACE_ID,
> + EFI_ACPI_PM_TMR_BLK_BIT_WIDTH,
> + EFI_ACPI_PM_TMR_BLK_BIT_OFFSET,
> + EFI_ACPI_6_2_DWORD,
> + EFI_ACPI_PM_TMR_BLK_ADDRESS},
> + //
> + // X_General Purpose Event 0 Register Block
> + //
> + {EFI_ACPI_GPE0_BLK_ADDRESS_SPACE_ID,
> + EFI_ACPI_GPE0_BLK_BIT_WIDTH,
> + EFI_ACPI_GPE0_BLK_BIT_OFFSET,
> + EFI_ACPI_6_2_BYTE,
> + EFI_ACPI_GPE0_BLK_ADDRESS},
> + //
> + // X_General Purpose Event 1 Register Block
> + //
> + {EFI_ACPI_GPE1_BLK_ADDRESS_SPACE_ID,
> + EFI_ACPI_GPE1_BLK_BIT_WIDTH,
> + EFI_ACPI_GPE1_BLK_BIT_OFFSET,
> + EFI_ACPI_6_2_UNDEFINED,
> + EFI_ACPI_GPE1_BLK_ADDRESS}
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the executable.
> + //
> + return (VOID*)&Fadt;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hmat/H
> mat.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hmat/H
> mat.aslc
> new file mode 100644
> index 0000000000..ae6efeaee5
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hmat/H
> mat.aslc
> @@ -0,0 +1,972 @@
> +/** @file
> +
> + @copyright
> + Copyright 2016 - 2018 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include "Acpi/Hmat.h"
> +
> +EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE Hmat = {
> + // EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_HEADER
> + {
> + // EFI_ACPI_DESCRIPTION_HEADER
> + {
> + EFI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE,
> + sizeof (EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE),
> + EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_REVISION,
> + 0x00, // Checksum, updated at runtime
> + {' ', ' ', ' ', ' ', ' ', ' '}, // OEM ID, programmed at runtime
> + 0,
> + EFI_ACPI_OEM_HMAT_REVISION,
> + 0,
> + 0
> + }, // EFI_ACPI_DESCRIPTION_HEADER
> + (UINT32) 0
> + }, // EFI_ACPI_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_HEADER
> +
> + // Beginning of HMAT substructures
> +#if EFI_ACPI_HMAT_MSARS_COUNT > 0
> + { //
> MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE[EFI_ACPI_HMAT_MS
> ARS_COUNT]
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#if MC_MAX_NODE > 1
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 2
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 3
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 4
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 5
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 6
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 7
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 8
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 9
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 10
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 11
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 12
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 13
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 14
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> +#if MC_MAX_NODE > 15
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> + MSARS_INIT()
> +#endif
> + }, //
> MEMORY_SUBSYSTEM_ADDRESS_RANGE_STRUCTURE[EFI_ACPI_HMAT_MS
> ARS_COUNT]
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 0
> + { // LATENCY_BANDWIDTH_INFO_STRUCTURE
> Lbis[EFI_ACPI_HMAT_LBIS_COUNT]
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 1
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 2
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 3
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 4
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 5
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 6
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 7
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 8
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 9
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 10
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> +#if EFI_ACPI_HMAT_LBIS_COUNT > 11
> + LBIS_START()
> + RELATIVE_DISTANCE()
> +#if MC_MAX_NODE > 1
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 2
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 3
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 4
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 5
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 6
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 7
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 8
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 9
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 10
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 11
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 12
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 13
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 14
> + RELATIVE_DISTANCE()
> +#endif
> +#if MC_MAX_NODE > 15
> + RELATIVE_DISTANCE()
> +#endif
> + LBIS_END()
> +#endif
> + }, // LATENCY_BANDWIDTH_INFO_STRUCTURE
> Lbis[EFI_ACPI_HMAT_LBIS_COUNT]
> +#endif
> +#if EFI_ACPI_HMAT_MSCIS_COUNT > 0
> + { // MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE
> MemSideCache[EFI_ACPI_HMAT_MSCIS_COUNT]
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#if MC_MAX_NODE > 1
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 2
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 3
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 4
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 5
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 6
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 7
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 8
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 9
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 10
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 11
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 12
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 13
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 14
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> +#if MC_MAX_NODE > 15
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> + MSCIS_INIT()
> +#endif
> + }, // MEMORY_SIDE_CACHE_INFORMATION_STRUCTURE
> MemSideCache[EFI_ACPI_HMAT_MSCIS_COUNT]
> +#endif
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the executable
> + //
> + return (VOID*)&Hmat;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hpet/Hp
> et.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hpet/Hp
> et.aslc
> new file mode 100644
> index 0000000000..37b680ad6b
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Hpet/Hp
> et.aslc
> @@ -0,0 +1,61 @@
> +/** @file
> +
> + @copyright
> + Copyright 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Hpet.h>
> +
> +//
> +// High Precision Event Timer Table
> +// Please modify all values in Hpet.h only.
> +//
> +EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER Hpet = {
> + {EFI_ACPI_6_2_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE, //
> Signature
> + sizeof (EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_HEADER), //
> Length
> + EFI_ACPI_HIGH_PRECISION_EVENT_TIMER_TABLE_REVISION, //
> Revision [01]
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00, // Checksum
> + //
> + // It is expected that these values will be updated at runtime
> + //
> + {' ',
> + ' ',
> + ' ',
> + ' ',
> + ' ',
> + ' '},
> + 0,
> + EFI_ACPI_OEM_HPET_REVISION, // OEM Revision
> [0x00000001]
> + 0, // Creator ID
> + 0}, // Creator Revision
> + EFI_ACPI_EVENT_TIMER_BLOCK_ID, // Event Timer Block ID
> (4B) [0x8086A201]
> + {EFI_ACPI_EVENT_TIMER_BLOCK_ADDRESS_SPACE_ID, // 2
> [EFI_ACPI_6_2_SYSTEM_MEMORY]
> + EFI_ACPI_EVENT_TIMER_BLOCK_BIT_WIDTH, // 3 [0x00]
> + EFI_ACPI_EVENT_TIMER_BLOCK_BIT_OFFSET, // 4 [0x00]
> + EFI_ACPI_EVENT_TIMER_ACCESS_SIZE, // [0x00]
> + EFI_ACPI_EVENT_TIMER_BLOCK_ADDRESS}, // HPET Block
> BASE_ADDRESS (12B) [0x00000000FED00000]
> + EFI_ACPI_HPET_NUMBER, // HPET Number [00]
> + EFI_ACPI_MIN_CLOCK_TICK, // Main Counter Minimum
> Clock tick [0x0080]
> + EFI_ACPI_HPET_ATTRIBUTES // Page Protection & OEM
> attribute [0x00]
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the exeutable
> + //
> + return (VOID*)&Hpet;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Mcfg/Mc
> fg.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Mcfg/M
> cfg.aslc
> new file mode 100644
> index 0000000000..6e9a84aa49
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Mcfg/M
> cfg.aslc
> @@ -0,0 +1,74 @@
> +/** @file
> +
> + @copyright
> + Copyright 1999 - 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Mcfg.h>
> +
> +//
> +// MCFG Table definition
> +//
> +EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE
> Mcfg = {
> +
> {{EFI_ACPI_6_2_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TA
> BLE_SIGNATURE,
> + sizeof
> (EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE),
> +
> EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_RE
> VISION,
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00,
> + //
> + // It is expected that these values will be programmed at runtime
> + //
> + {' ',
> + ' ',
> + ' ',
> + ' ',
> + ' ',
> + ' '},
> +
> + 0,
> + EFI_ACPI_OEM_MCFG_REVISION,
> + 0,
> + 0},
> + //
> + // Beginning of MCFG specific fields
> + //
> + EFI_ACPI_RESERVED_QWORD},
> + //
> + // Sample Memory Mapped Configuration Space Base Address Structure
> + //
> + // 0x0, // Base Address
> + // 0x0, // PCI Segment Group Number
> + // 0x0, // Start Bus Number
> + // 0x0, // End Bus Number
> + // EFI_ACPI_RESERVED_DWORD, // Reserved
> + //
> + // Memory Mapped Configuration Space Base Address Structure
> + //
> +#if
> EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRE
> SS_STRUCTURE_COUNT > 0
> + {{0x0, // Base Address, will be updated by AcpiPlatform
> + 0x0, // PCI Segment Group Number
> + 0x0, // Start Bus Number
> + 0xff, // End Bus Number
> + EFI_ACPI_RESERVED_DWORD}} // Reserved
> +#endif //
> EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_BASE_ADDRE
> SS_STRUCTURE_COUNT
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the exeutable
> + //
> + return (VOID*)&Mcfg;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Migt/Mi
> gt.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Migt/Mi
> gt.aslc
> new file mode 100644
> index 0000000000..5efe5afee1
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Migt/Mi
> gt.aslc
> @@ -0,0 +1,68 @@
> +/** @file
> +
> + @copyright
> + Copyright 2005 - 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Migt.h>
> +
> +//
> +// Please modify all values in Migt.h only.
> +//
> +EFI_MIGT_ACPI_DESCRIPTION_TABLE Migt = {
> + {EFI_MIGT_ACPI_TABLE_SIGNATURE, // Signature
> + sizeof (EFI_MIGT_ACPI_DESCRIPTION_TABLE), // Length
> + EFI_MIGT_ACPI_DESCRIPTION_TABLE_REVISION, // Revision
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00, // Checksum
> + //
> + // It is expected that these values will be updated at runtime
> + //
> + {' ',
> + ' ',
> + ' ',
> + ' ',
> + ' ',
> + ' '},
> + 0,
> + EFI_MIGT_ACPI_OEM_REVISION, // OEM Revision
> + 0, // Creator ID
> + 0}, // Creator Revision
> + //
> + // MIGT Speicific Entries
> + // Control Register GAS structure
> + //
> + {EFI_MIGT_CR_ACPI_ADDRESS_SPACE_ID, // IO Type ID.
> + EFI_MIGT_CR_ACPI_REGISTER_BIT_WIDTH,
> + EFI_MIGT_CR_ACPI_REGISTER_BIT_OFFSET,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_MIGT_CR_ACPI_SMI_ADDRESS},
> +
> + MIGT_SMI_SERVICE_ID, // SMI Door Bell
> +
> + //
> + // Action Region GAS structure
> + //
> + {EFI_MIGT_AR_ACPI_ADDRESS_SPACE_ID, // Memory Type ID
> + EFI_MIGT_AR_ACPI_REGISTER_BIT_WIDTH,
> + EFI_MIGT_AR_ACPI_REGISTER_BIT_OFFSET,
> + EFI_ACPI_RESERVED_BYTE,
> + // update during boot
> + EFI_MIGT_AR_ACPI_MEMORY_ADDRESS}
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + return (VOID*)&Migt;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Msct/Ms
> ct.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Msct/Ms
> ct.aslc
> new file mode 100644
> index 0000000000..e0e1bebd0a
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Msct/Ms
> ct.aslc
> @@ -0,0 +1,137 @@
> +/** @file
> +
> + @copyright
> + Copyright 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Msct.h>
> +
> +//
> +// Maximum System Characteristics Table definition
> +//
> +EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE Msct = {
> +
> {EFI_ACPI_6_2_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE
> ,
> + sizeof (EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE), //
> Length
> + EFI_ACPI_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION, //
> Revision
> + 0x00, // Checksum will be updated at runtime
> + {'I', 'N', 'T', 'E', 'L', ' '}, // OemId
> + 0, // OemTableId
> + EFI_ACPI_OEM_MSCT_REVISION, // OemRevision
> + EFI_ACPI_CREATOR_ID, // CreaterId
> + EFI_ACPI_CREATOR_REVISION}, // CreaterRevision
> + //
> + // Beginning of MSCT specific fields
> + //
> + 0x00000038, // OffsetProxDomInfo
> + MAX_SOCKET - 1, // MaxNumProxDom
> + 0x00000000, // MaxNumClockDom
> + 0x0000000000000000, // MaxPhysicalAddress
> + //
> + // Proximity Domain Information Structure 0
> + //
> +
> {{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE
> _REVISION, // Revision
> + sizeof
> (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE),
> // Length
> + 0x00000000, // ProxDomRangeLow
> + 0x00000000, // ProxDomRangeHigh
> + 0x00000000, // MaxProcessorCapacity
> + 0x0000000000000000} // MaxMemoryCapacity
> +
> +#if MAX_SOCKET > 1
> + //
> + // Proximity Domain Information Structure 1
> + //
> +
> ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_
> REVISION, // Revision
> + sizeof
> (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE),
> // Length
> + 0x00000000, // ProxDomRangeLow
> + 0x00000000, // ProxDomRangeHigh
> + 0x00000000, // MaxProcessorCapacity
> + 0x0000000000000000} // MaxMemoryCapacity
> +#endif
> +
> +#if MAX_SOCKET > 2
> + //
> + // Proximity Domain Information Structure 2
> + //
> +
> ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_
> REVISION, // Revision
> + sizeof
> (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE),
> // Length
> + 0x00000000, // ProxDomRangeLow
> + 0x00000000, // ProxDomRangeHigh
> + 0x00000000, // MaxProcessorCapacity
> + 0x0000000000000000} // MaxMemoryCapacity
> +#endif
> +
> +#if MAX_SOCKET > 3
> + //
> + // Proximity Domain Information Structure 3
> + //
> +
> ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_
> REVISION, // Revision
> + sizeof
> (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE),
> // Length
> + 0x00000000, // ProxDomRangeLow
> + 0x00000000, // ProxDomRangeHigh
> + 0x00000000, // MaxProcessorCapacity
> + 0x0000000000000000} // MaxMemoryCapacity
> +#endif
> +
> +#if MAX_SOCKET > 4
> + //
> + // Proximity Domain Information Structure 4
> + //
> +
> ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_
> REVISION, // Revision
> + sizeof
> (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE),
> // Length
> + 0x00000000, // ProxDomRangeLow
> + 0x00000000, // ProxDomRangeHigh
> + 0x00000000, // MaxProcessorCapacity
> + 0x0000000000000000} // MaxMemoryCapacity
> +#endif
> +
> +#if MAX_SOCKET > 5
> + //
> + // Proximity Domain Information Structure 5
> + //
> +
> ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_
> REVISION, // Revision
> + sizeof
> (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE),
> // Length
> + 0x00000000, // ProxDomRangeLow
> + 0x00000000, // ProxDomRangeHigh
> + 0x00000000, // MaxProcessorCapacity
> + 0x0000000000000000} // MaxMemoryCapacity
> +#endif
> +
> +#if MAX_SOCKET > 6
> + //
> + // Proximity Domain Information Structure 6
> + //
> +
> ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_
> REVISION, // Revision
> + sizeof
> (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE),
> // Length
> + 0x00000000, // ProxDomRangeLow
> + 0x00000000, // ProxDomRangeHigh
> + 0x00000000, // MaxProcessorCapacity
> + 0x0000000000000000} // MaxMemoryCapacity
> +#endif
> +
> +#if MAX_SOCKET > 7
> + //
> + // Proximity Domain Information Structure 7
> + //
> +
> ,{EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE_
> REVISION, // Revision
> + sizeof
> (EFI_ACPI_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE),
> // Length
> + 0x00000000, // ProxDomRangeLow
> + 0x00000000, // ProxDomRangeHigh
> + 0x00000000, // MaxProcessorCapacity
> + 0x0000000000000000} // MaxMemoryCapacity
> +#endif
> + }
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + return (VOID*)&Msct;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/NFIT/Nfi
> t.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/NFIT/Nfi
> t.aslc
> new file mode 100644
> index 0000000000..389c43ce3c
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/NFIT/Nfi
> t.aslc
> @@ -0,0 +1,48 @@
> +/** @file
> +
> + @copyright
> + Copyright 2015 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Nfit.h>
> +
> +//
> +// NFIT Table
> +// Please modify all values in Nfit.h only.
> +//
> +NVDIMM_FW_INTERFACE_TABLE Nfit = {
> + NVDIMM_FW_INTERFACE_TABLE_SIGNATURE, // Signature
> + sizeof (NVDIMM_FW_INTERFACE_TABLE), // Length
> + NVDIMM_FW_INTERFACE_TABLE_REVISION, // Revision [01]
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00, // Checksum
> + //
> + // It is expected that these values will be updated at runtime
> + //
> + {' ', // TODO any other static values to be filled in?
> + ' ',
> + ' ',
> + ' ',
> + ' ',
> + ' '}
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the exeutable
> + //
> + return (VOID*)&Nfit;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/PCAT/Pc
> at.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/PCAT/Pc
> at.aslc
> new file mode 100644
> index 0000000000..e43c865c64
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/PCAT/Pc
> at.aslc
> @@ -0,0 +1,44 @@
> +/** @file
> +
> + @copyright
> + Copyright 2015 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Pcat.h>
> +
> +//
> +// PCAT Table
> +// Please modify all values in Pcat.h only.
> +//
> +NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE Pcat = {
> + NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE_SIGNATURE, //
> Signature
> + sizeof (NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE), // Length
> + NVDIMM_PLATFORM_CONFIG_ATTRIBUTE_TABLE_REVISION, // Revision
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00, // Checksum
> + //
> + // It is expected that these values will be updated at runtime
> + //
> + {' '}, // TODO any other static values?
> +
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the exeutable
> + //
> + return (VOID*)&Pcat;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Pmtt/Pm
> tt10nm.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Pmtt/P
> mtt10nm.aslc
> new file mode 100644
> index 0000000000..a0b4dc2756
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Pmtt/P
> mtt10nm.aslc
> @@ -0,0 +1,136 @@
> +/** @file
> +
> + @copyright
> + Copyright 2016 - 2018 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Pmtt.h>
> +//
> +// PMTT Table
> +//
> +#define PHYSICAL_COMP_IDENTIFIER \
> + {PHYSICAL_COMPONENT_IDENTIFIER_TYPE_DIMM, \
> + EFI_ACPI_RESERVED_BYTE, \
> + sizeof (ACPI_PMTT_DIMM_DEVICE), \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + 0x00000000, \
> + 0xFFFFFFFF}
> +
> +#define SLOT \
> + {ACPI_TOP_LEVEL_VENDOR_SPECIFIC_DEVICE, \
> + EFI_ACPI_RESERVED_BYTE, \
> + sizeof (ACPI_PMTT_SLOT_DEVICE) - sizeof(ACPI_PMTT_DIMM_DEVICE),
> \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + 0x00000000, \
> + PMTT_TYPE_SLOT_GUID, \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + PHYSICAL_COMP_IDENTIFIER}
> +
> +#define CHANNEL \
> + {ACPI_TOP_LEVEL_VENDOR_SPECIFIC_DEVICE, \
> + EFI_ACPI_RESERVED_BYTE, \
> + sizeof (ACPI_PMTT_CHANNEL_DEVICE) - MAX_DIMM *
> sizeof(ACPI_PMTT_SLOT_DEVICE), \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + 0x00000000, \
> + PMTT_TYPE_CHANNEL_GUID, \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + {SLOT, \
> + SLOT} \
> + }
> +
> +#define MEM_IMC \
> + {ACPI_TOP_LEVEL_IMC, \
> + EFI_ACPI_RESERVED_BYTE, \
> + sizeof (ACPI_PMTT_IMC_DEVICE) - MAX_MC_CH *
> sizeof(ACPI_PMTT_CHANNEL_DEVICE), \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + 0x00000000, \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + {CHANNEL, \
> + CHANNEL} \
> + }
> +
> +#define DIE \
> + {ACPI_TOP_LEVEL_VENDOR_SPECIFIC_DEVICE, \
> + EFI_ACPI_RESERVED_BYTE, \
> + sizeof (ACPI_PMTT_DIE_DEVICE) - MAX_IMC *
> sizeof(ACPI_PMTT_IMC_DEVICE), \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + 0x00000000, \
> + PMTT_TYPE_DIE_GUID, \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + {MEM_IMC, \
> + MEM_IMC, \
> + MEM_IMC, \
> + MEM_IMC}}
> +
> +#define SKT_LEVEL \
> + {ACPI_TOP_LEVEL_SOCKET, \
> + EFI_ACPI_RESERVED_BYTE, \
> + sizeof (ACPI_PMTT_SOCKET_DEVICE) - sizeof(ACPI_PMTT_DIE_DEVICE),
> \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + 0x00000000, \
> + 0x00000000, \
> + EFI_ACPI_RESERVED_BYTE, \
> + {DIE} \
> + },
> +#pragma pack(1)
> +
> +ACPI_PLATFORM_MEMORY_TOPOLOGY_TABLE mPmttTable = {
> + {ACPI_PMTT_TABLE_SIGNATURE, // Signature 'PMTT'
> + sizeof (ACPI_PLATFORM_MEMORY_TOPOLOGY_TABLE), // Length
> + ACPI_PMTT_TABLE_REVISION, // Revision
> + 0x00, // CheckSum
> + {'I', 'N', 'T', 'E', 'L', ' '}, // OemId
> + 0, // OemTableId
> + ACPI_PMTT_OEM_REVISION, // OemRevision
> + EFI_ACPI_CREATOR_ID, // CreaterId
> + EFI_ACPI_CREATOR_REVISION}, // CreaterRevision
> + 0, // NumOfMemoryDevices
> + { SKT_LEVEL
> +#if MAX_SOCKET > 1
> + SKT_LEVEL
> +#endif
> +#if MAX_SOCKET > 2
> + SKT_LEVEL
> +#endif
> +#if MAX_SOCKET > 3
> + SKT_LEVEL
> +#endif
> +#if MAX_SOCKET > 4
> + SKT_LEVEL
> +#endif
> +#if MAX_SOCKET > 5
> + SKT_LEVEL
> +#endif
> +#if MAX_SOCKET > 6
> + SKT_LEVEL
> +#endif
> +#if MAX_SOCKET > 7
> + SKT_LEVEL
> +#endif
> + }
> +};
> +
> +#pragma pack()
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +{
> + return (VOID*)&mPmttTable;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/SPCR/Sp
> cr.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/SPCR/Sp
> cr.aslc
> new file mode 100644
> index 0000000000..26603102a2
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/SPCR/Sp
> cr.aslc
> @@ -0,0 +1,89 @@
> +/** @file
> +
> + @copyright
> + Copyright 1999 - 2002 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +
> +#include <IndustryStandard/Acpi.h>
> +#include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
> +#include <Acpi/Spcr.h>
> +
> +//
> +// Serial Port Console Redirection Table
> +// Please modify all values in Spcr.h only.
> +//
> +
> +EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = {
> +
> {EFI_ACPI_6_2_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE,
> + sizeof (EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE),
> + EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION,
> +
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00,
> +
> + //
> + // It is expected that these values will be programmed at runtime
> + //
> + {' ', ' ', ' ', ' ', ' ', ' '},
> +
> + 0,
> + EFI_ACPI_OEM_SPCR_REVISION,
> + 0,
> + 0},
> +
> + //
> + // Beginning of SPCR specific fields
> + //
> + EFI_ACPI_INTERFACE_TYPE,
> + {EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_RESERVED_BYTE},
> +
> + //
> + // Base Address Block
> + //
> + {EFI_ACPI_BASE_ADDRESS_ADDRESS_SPACE_ID,
> + EFI_ACPI_BASE_ADDRESS_BIT_WIDTH,
> + EFI_ACPI_BASE_ADDRESS_BIT_OFFSET,
> + EFI_ACPI_RESERVED_BYTE,
> + EFI_ACPI_BASE_ADDRESS_ADDRESS},
> +
> + EFI_ACPI_INTERRUPT_TYPE,
> + EFI_ACPI_IRQ,
> + EFI_ACPI_GLOBAL_SYSTEM_INTERRUPT,
> + EFI_ACPI_BAUD_RATE,
> + EFI_ACPI_PARITY,
> + EFI_ACPI_STOP_BITS,
> + EFI_ACPI_FLOW_CONTROL,
> + EFI_ACPI_TERMINAL_TYPE,
> + EFI_ACPI_LANGUAGE,
> + EFI_ACPI_PCI_DEVICE_ID,
> + EFI_ACPI_PCI_VENDOR_ID,
> + EFI_ACPI_PCI_BUS_NUMBER,
> + EFI_ACPI_PCI_DEVICE_NUMBER,
> + EFI_ACPI_PCI_FUNCTION_NUMBER,
> + EFI_ACPI_PCI_FLAGS,
> + EFI_ACPI_PCI_SEGMENT,
> + EFI_ACPI_RESERVED_DWORD
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the exeutable
> + //
> + return (VOID*)&Spcr;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Spmi/Sp
> mi.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Spmi/Sp
> mi.aslc
> new file mode 100644
> index 0000000000..74855daee4
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Spmi/Sp
> mi.aslc
> @@ -0,0 +1,53 @@
> +/** @file
> +
> + @copyright
> + Copyright 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/Spmi.h>
> +
> +//
> +// Server processor management interface table definition
> +//
> +EFI_ACPI_SERVER_PROCESSOR_MANAGEMENT_INTERFACE_TABLE Spmi =
> {
> +
> {EFI_ACPI_6_2_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SI
> GNATURE,
> + sizeof
> (EFI_ACPI_SERVER_PROCESSOR_MANAGEMENT_INTERFACE_TABLE),
> // Length
> +
> EFI_ACPI_SERVER_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_REVISIO
> N, // Revision
> + 0x00, // Checksum will be updated at
> runtime
> + {'I', 'N', 'T', 'E', 'L', ' '}, // OemId
> + 0, // OemTableId
> + EFI_ACPI_OEM_SPMI_REVISION, // OemRevision
> + 0, // CreaterId
> + 0}, // CreaterRevision
> + //
> + // Beginning of Spmi specific fields
> + //
> + 0x00, // InterfaceType
> + 0x01, // Reserved37, always 1
> + EFI_ACPI_SPMI_SPECIFICATION_REVISION, //
> SpecificationRevision
> + 0x00, // InterruptType
> + 0x00, // GPE
> + 0x00, // Reserved42
> + 0x00, // PciDeviceFlag
> + 0x00000000, // GlobalSystemInterrupt
> + {0x00, 0x00, 0x00, 0x00, 0x00}, // GAS
> + 0x00, // UidByte1
> + 0x00, // UidByte2
> + 0x00, // UidByte3
> + 0x00, // UidByte4
> + 0x00 // Reserved64
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + return (VOID*)&Spmi;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wddt/W
> ddt1.0.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wddt/W
> ddt1.0.aslc
> new file mode 100644
> index 0000000000..fe0db504fd
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wddt/W
> ddt1.0.aslc
> @@ -0,0 +1,74 @@
> +/** @file
> +
> + @copyright
> + Copyright 1999 - 2019 Intel Corporation. <BR>
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include <Acpi/WatchdogDescriptionTable.h>
> +#include <Acpi/Wddt.h>
> +
> +//
> +// Watchdog Description Table , ACPI 6.2 compliant
> +//
> +EFI_ACPI_WATCH_DOG_DESCRIPTION_TABLE Wddt = {
> + {EFI_ACPI_WDDT_SIGNATURE,
> + sizeof (EFI_ACPI_WATCH_DOG_DESCRIPTION_TABLE),
> + EFI_ACPI_WDDT_DESCRIPTION_TABLE_REVISION,
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00,
> + //
> + // It is expected that these values will be programmed at runtime
> + //
> + {' ',
> + ' ',
> + ' ',
> + ' ',
> + ' ',
> + ' '},
> + 0,
> + 0,
> + 0,
> + 0},
> + //
> + // WDDT specific fields
> + //
> + //
> + // This is LPC bridge VID it must be patched in
> + //
> + 0,
> + EFI_ACPI_WDDT_SPEC_VERSION,
> + EFI_ACPI_WDDT_TABLE_VERSION,
> + //
> + // Base Address
> + //
> + {0x01,
> + 0xff,
> + 0x00,
> + 0x00,
> + //
> + // This is AcpiBase(PmBase)+60 and must be patched in
> + //
> + 0000},
> + EFI_ACPI_WDDT_TIMER_MAX_COUNT,
> + EFI_ACPI_WDDT_TIMER_MIN_VALUE,
> + EFI_ACPI_WDDT_TIMER_PERIOD_COUNT,
> + EFI_ACPI_WDDT_STATUS_AVAILABLE,
> + 00
> +
> +};
> +
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + return (VOID*)&Wddt;
> +}
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wsmt/W
> smt.aslc
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wsmt/W
> smt.aslc
> new file mode 100644
> index 0000000000..83484b7cd7
> --- /dev/null
> +++
> b/Platform/Intel/WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Wsmt/W
> smt.aslc
> @@ -0,0 +1,74 @@
> +/** @file
> +
> + @copyright
> + Copyright 2017 - 2020 Intel Corporation.
> +
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +
> + //
> + // Statements that include other files
> + //
> +
> +#include <Acpi/Wsmt.h>
> +
> + //
> + // Windows SMM Security Mitigations Table
> + // Please modify all values in Wsmt.h only.
> + //
> +
> +ACPI_WINDOWS_SMM_SECURITY_MITIGATIONS_TABLE Wsmt = {
> + //
> + // Header
> + //
> + {
> + ACPI_WSMT_SIGNATURE,
> + ACPI_WSMT_LENGTH,
> + EFI_ACPI_WSMT_REVISION,
> +
> + //
> + // Checksum will be updated at runtime
> + //
> + 0x00,
> +
> + //
> + // It is expected that these values will be updated at runtime
> + //
> + { ' ', ' ', ' ', ' ', ' ', ' ' },
> + 0,
> + ACPI_OEM_WSMT_REVISION,
> + 0,
> + 0
> + },
> + //
> + // Protection Flags
> + //
> + {
> + { 0 }
> + }
> +
> +};
> +
> +#if defined (__GNUC__)
> +VOID*
> +ReferenceAcpiTable (
> + VOID
> + )
> +
> +{
> + //
> + // Reference the table being generated to prevent the optimizer from
> removing the
> + // data structure from the executable
> + //
> + return (VOID*)&Wsmt;
> +}
> +#else
> +VOID
> +main (
> + VOID
> + )
> +
> +{
> +}
> +#endif
> --
> 2.27.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86472): https://edk2.groups.io/g/devel/message/86472
Mute This Topic: https://groups.io/mt/88979439/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.