]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiPayloadPkg/Include/Guid/SmmRegisterInfoGuid.h
UefiPayloadPkg: Add a common SMM control Runtime DXE module
[mirror_edk2.git] / UefiPayloadPkg / Include / Guid / SmmRegisterInfoGuid.h
diff --git a/UefiPayloadPkg/Include/Guid/SmmRegisterInfoGuid.h b/UefiPayloadPkg/Include/Guid/SmmRegisterInfoGuid.h
new file mode 100644 (file)
index 0000000..8a1d3d7
--- /dev/null
@@ -0,0 +1,48 @@
+/** @file\r
+  This file defines the SMM info hob structure.\r
+\r
+  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef PAYLOAD_SMM_REGISTER_INFO_GUID_H_\r
+#define PAYLOAD_SMM_REGISTER_INFO_GUID_H_\r
+\r
+#include <IndustryStandard/Acpi.h>\r
+\r
+///\r
+/// SMM Information GUID\r
+///\r
+extern EFI_GUID gSmmRegisterInfoGuid;\r
+\r
+///\r
+/// Reuse ACPI definition\r
+/// AddressSpaceId(0xC0-0xFF) is defined by OEM for MSR and other spaces\r
+///\r
+typedef EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  PLD_GENERIC_ADDRESS;\r
+\r
+#define REGISTER_ID_SMI_GBL_EN         1\r
+#define REGISTER_ID_SMI_GBL_EN_LOCK    2\r
+#define REGISTER_ID_SMI_EOS            3\r
+#define REGISTER_ID_SMI_APM_EN         4\r
+#define REGISTER_ID_SMI_APM_STS        5\r
+\r
+#pragma pack(1)\r
+typedef struct {\r
+  UINT64                Id;\r
+  UINT64                Value;\r
+  PLD_GENERIC_ADDRESS   Address;\r
+} PLD_GENERIC_REGISTER;\r
+\r
+typedef struct {\r
+  UINT16                Revision;\r
+  UINT16                Reserved;\r
+  UINT32                Count;\r
+  PLD_GENERIC_REGISTER  Registers[0];\r
+} PLD_SMM_REGISTERS;\r
+\r
+\r
+#pragma pack()\r
+\r
+#endif\r