From: "Oram, Isaac W" <isaac.w.oram@intel.com>
To: devel@edk2.groups.io
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>,
Chasel Chiu <chasel.chiu@intel.com>
Subject: [edk2-devel][edk2-platforms][PATCH V1 4/8] WhitleyOpenBoardPkg/AcpiTables10nm: Add Static ACPI tables
Date: Mon, 7 Feb 2022 11:02:41 -0800 [thread overview]
Message-ID: <058b4b5cc0ef5eeb3e4a53ebae58768f94766976.1644259969.git.isaac.w.oram@intel.com> (raw)
In-Reply-To: <cover.1644259969.git.isaac.w.oram@intel.com>
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
next prev parent reply other threads:[~2022-02-07 19:02 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-07 19:02 [edk2-devel][edk2-platforms][PATCH V1 0/8] Whitley ACPI Tables Oram, Isaac W
2022-02-07 19:02 ` [edk2-devel][edk2-platforms][PATCH V1 1/8] MinPlatformPkg/AmlGenOffset: Update for python 3 Oram, Isaac W
2022-02-09 3:20 ` Nate DeSimone
2022-02-07 19:02 ` [edk2-devel][edk2-platforms][PATCH V1 2/8] WhitleyOpenBoardPkg/AcpiTables: Add ACPI Table definitions Oram, Isaac W
2022-02-09 3:20 ` Nate DeSimone
2022-02-07 19:02 ` [edk2-devel][edk2-platforms][PATCH V1 3/8] WhitleyOpenBoardPkg/AcpiTables: South Cluster ASL Oram, Isaac W
2022-02-09 3:21 ` Nate DeSimone
2022-02-07 19:02 ` Oram, Isaac W [this message]
2022-02-09 3:21 ` [edk2-devel][edk2-platforms][PATCH V1 4/8] WhitleyOpenBoardPkg/AcpiTables10nm: Add Static ACPI tables Nate DeSimone
2022-02-07 19:02 ` [edk2-devel][edk2-platforms][PATCH V1 5/8] WhitleyOpenBoardPkg/AcpiTables10nm: Add DSDT ACPI table Oram, Isaac W
2022-02-09 3:21 ` Nate DeSimone
2022-02-07 19:02 ` [edk2-devel][edk2-platforms][PATCH V1 6/8] WhitleyOpenBoardPkg/Build: Enable includable build options Oram, Isaac W
2022-02-09 3:21 ` Nate DeSimone
2022-02-07 19:02 ` [edk2-devel][edk2-platforms][PATCH V1 7/8] WhitleyOpenBoardPkg/WilsonCityRvp: Generate AML offset table Oram, Isaac W
2022-02-09 3:21 ` Nate DeSimone
2022-02-07 19:02 ` [edk2-devel][edk2-platforms][PATCH V1 8/8] WhitleyOpenBoardPkg/StaticSkuDataDxe: Add open source driver Oram, Isaac W
2022-02-09 3:20 ` Nate DeSimone
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=058b4b5cc0ef5eeb3e4a53ebae58768f94766976.1644259969.git.isaac.w.oram@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox