summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IntelFrameworkPkg/Include/Framework/SmmCis.h48
-rw-r--r--IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h26
-rw-r--r--IntelFrameworkPkg/Include/Protocol/SmmAccess.h13
-rw-r--r--IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h15
-rw-r--r--IntelFrameworkPkg/Include/Protocol/SmmSxDispatch.h22
-rw-r--r--IntelFrameworkPkg/Include/Protocol/SmmUsbDispatch.h12
-rw-r--r--MdePkg/Include/Pi/PiSmmCis.h76
-rw-r--r--MdePkg/Include/Protocol/SmmAccess2.h27
-rw-r--r--MdePkg/Include/Protocol/SmmControl2.h17
-rw-r--r--MdePkg/Include/Protocol/SmmCpuIo.h21
-rw-r--r--MdePkg/Include/Protocol/SmmGpiDispatch2.h17
-rw-r--r--MdePkg/Include/Protocol/SmmPeriodicTimerDispatch2.h22
-rw-r--r--MdePkg/Include/Protocol/SmmPowerButtonDispatch2.h17
-rw-r--r--MdePkg/Include/Protocol/SmmStandbyButtonDispatch2.h17
-rw-r--r--MdePkg/Include/Protocol/SmmSwDispatch2.h17
-rw-r--r--MdePkg/Include/Protocol/SmmSxDispatch2.h17
-rw-r--r--MdePkg/Include/Protocol/SmmUsbDispatch2.h17
17 files changed, 208 insertions, 193 deletions
diff --git a/IntelFrameworkPkg/Include/Framework/SmmCis.h b/IntelFrameworkPkg/Include/Framework/SmmCis.h
index b8fce5494e..59cc701dbe 100644
--- a/IntelFrameworkPkg/Include/Framework/SmmCis.h
+++ b/IntelFrameworkPkg/Include/Framework/SmmCis.h
@@ -16,6 +16,12 @@
#ifndef _SMM_CIS_H_
#define _SMM_CIS_H_
+//
+// Share some common definitions with PI SMM
+//
+#include <Pi/PiSmmCis.h>
+#include <Protocol/SmmCpuIo.h>
+
#define EFI_SMM_CPU_IO_GUID \
{ \
0x5f439a0b, 0x45d8, 0x4682, {0xa4, 0xf4, 0xf0, 0x57, 0x6b, 0x51, 0x34, 0x41 } \
@@ -28,21 +34,8 @@ typedef struct _EFI_SMM_CPU_IO_INTERFACE EFI_SMM_CPU_IO_INTERFACE;
//
// SMM Base specification constant and types
//
-#define SMM_SMST_SIGNATURE SIGNATURE_32 ('S', 'M', 'S', 'T')
#define EFI_SMM_SYSTEM_TABLE_REVISION (0 << 16) | (0x09)
-//
-// *******************************************************
-// EFI_SMM_IO_WIDTH
-// *******************************************************
-//
-typedef enum {
- SMM_IO_UINT8 = 0,
- SMM_IO_UINT16 = 1,
- SMM_IO_UINT32 = 2,
- SMM_IO_UINT64 = 3
-} EFI_SMM_IO_WIDTH;
-
/**
Provides the basic memory and I/O interfaces that are used to
abstract accesses to devices.
@@ -181,35 +174,6 @@ EFI_STATUS
IN UINTN NumberOfPages
);
-/**
- Lets the caller get one distinct application processor (AP) in the enabled processor pool to execite a
- caller-provided code stream while in SMM.
-
- @param Procedure A pointer to the code stream to be run on the designated AP of the system.
- @param CpuNumber The zero-based index of the processor number of the AP on which the code stream is
- supposed to run. If the processor number points to the current processor or a disabled
- processor, then it will not run the supplied code.
- @param ProcArguments Allows the caller to pass a list of parameters to the code that is run by
- the AP. It is an optional common mailbox between APs and the BSP to share information.
-
- @retval EFI_SUCCESS The call was successful and the return parameters are valid.
- @retval EFI_INVALID_PARAMETER The input arguments are out of range.
- @retval EFI_INVALID_PARAMETER The CPU requested is not available on this SMI invocation.
- @retval EFI_INVALID_PARAMETER The CPU cannot support an additional service invocation.
-
- @note: Inconsistent with specification here:
- In Framework Spec, this definition does not exist. This method is introduced in PI1.0 spec for
- implementation needs.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_SMM_STARTUP_THIS_AP)(
- IN FRAMEWORK_EFI_AP_PROCEDURE Procedure,
- IN UINTN CpuNumber,
- IN OUT VOID *ProcArguments OPTIONAL
- );
-
///
/// The processor save-state information for IA-32 processors. This information is important in that the
/// SMM drivers may need to ascertain the state of the processor before invoking the SMI.
diff --git a/IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h b/IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h
index 870622a63f..045e06dfb3 100644
--- a/IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h
+++ b/IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h
@@ -25,32 +25,16 @@
#ifndef _EFI_SMM_PEI_SMRAM_MEMORY_RESERVE_H_
#define _EFI_SMM_PEI_SMRAM_MEMORY_RESERVE_H_
+//
+// Share some common definitions with PI SMM
+//
+#include <Protocol/SmmAccess2.h>
+
#define EFI_SMM_PEI_SMRAM_MEMORY_RESERVE \
{ \
0x6dadf1d1, 0xd4cc, 0x4910, {0xbb, 0x6e, 0x82, 0xb1, 0xfd, 0x80, 0xff, 0x3d } \
}
-///
-/// Describes the candidate regions for SMRAM that are
-/// supported by this platform.
-///
-typedef struct {
- EFI_PHYSICAL_ADDRESS PhysicalStart; ///< Designates the physical address of the SMRAM in memory.
- EFI_PHYSICAL_ADDRESS CpuStart; ///< Designates the address of the SMRAM, as seen by software executing on the processors.
- UINT64 PhysicalSize; ///< Describes the number of bytes in the SMRAM region.
- UINT64 RegionState; ///< Describes the accessibility attributes of the SMRAM.
-} EFI_SMRAM_DESCRIPTOR;
-
-///
-/// Definition of SMRAM states, used as value for EFI_SMRAM_DESCRIPTOR.RegionState.
-///@{
-#define EFI_SMRAM_OPEN 0x00000001
-#define EFI_SMRAM_CLOSED 0x00000002
-#define EFI_SMRAM_LOCKED 0x00000004
-#define EFI_CACHEABLE 0x00000008
-#define EFI_ALLOCATED 0x00000010
-///@}
-
/**
* GUID specific data structure of HOB for reserving SMRAM regions.
*
diff --git a/IntelFrameworkPkg/Include/Protocol/SmmAccess.h b/IntelFrameworkPkg/Include/Protocol/SmmAccess.h
index da6386dbef..f6c904b02d 100644
--- a/IntelFrameworkPkg/Include/Protocol/SmmAccess.h
+++ b/IntelFrameworkPkg/Include/Protocol/SmmAccess.h
@@ -33,19 +33,6 @@ typedef struct _EFI_SMM_ACCESS_PROTOCOL EFI_SMM_ACCESS_PROTOCOL;
}
//
-// SMM Access specification constant and types
-//
-// *******************************************************
-// EFI_SMRAM_STATE
-// *******************************************************
-//
-#define EFI_SMRAM_OPEN 0x00000001
-#define EFI_SMRAM_CLOSED 0x00000002
-#define EFI_SMRAM_LOCKED 0x00000004
-#define EFI_CACHEABLE 0x00000008
-#define EFI_ALLOCATED 0x00000010
-
-//
// SMM Access specification Member Function
//
/**
diff --git a/IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h b/IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h
index 7c0ff89329..dd3ced55b7 100644
--- a/IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h
+++ b/IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h
@@ -24,6 +24,11 @@
#define _EFI_SMM_STANDBY_BUTTON_DISPATCH_H_
//
+// Share some common definitions with PI SMM
+//
+#include <Protocol/SmmStandbyButtonDispatch2.h>
+
+//
// Global ID for the Standby Button SMI Protocol
//
#define EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL_GUID \
@@ -37,16 +42,6 @@ typedef struct _EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL EFI_SMM_STANDBY_BUTTON
// Related Definitions
//
-///
-/// Standby Button. Example, Use for changing LEDs before ACPI OS is on.
-/// - DXE/BDS Phase
-/// - OS Install Phase
-///
-typedef enum {
- EfiStandbyButtonEntry,
- EfiStandbyButtonExit
-} EFI_STANDBY_BUTTON_PHASE;
-
typedef struct {
/// Describes whether the child handler should be invoked upon the entry to the button
/// activation or upon exit (i.e., upon receipt of the button press event or upon release of
diff --git a/IntelFrameworkPkg/Include/Protocol/SmmSxDispatch.h b/IntelFrameworkPkg/Include/Protocol/SmmSxDispatch.h
index 14d5a551b8..fd65f77b36 100644
--- a/IntelFrameworkPkg/Include/Protocol/SmmSxDispatch.h
+++ b/IntelFrameworkPkg/Include/Protocol/SmmSxDispatch.h
@@ -19,6 +19,10 @@
#ifndef _EFI_SMM_SX_DISPATCH_H_
#define _EFI_SMM_SX_DISPATCH_H_
+//
+// Share some common definitions with PI SMM
+//
+#include <Protocol/SmmSxDispatch2.h>
//
// Global ID for the Sx SMI Protocol
@@ -29,24 +33,6 @@
}
typedef struct _EFI_SMM_SX_DISPATCH_PROTOCOL EFI_SMM_SX_DISPATCH_PROTOCOL;
-//
-// Related Definitions
-//
-typedef enum {
- SxS0,
- SxS1,
- SxS2,
- SxS3,
- SxS4,
- SxS5,
- EfiMaximumSleepType
-} EFI_SLEEP_TYPE;
-
-typedef enum {
- SxEntry,
- SxExit,
- EfiMaximumPhase
-} EFI_SLEEP_PHASE;
typedef struct {
EFI_SLEEP_TYPE Type;
diff --git a/IntelFrameworkPkg/Include/Protocol/SmmUsbDispatch.h b/IntelFrameworkPkg/Include/Protocol/SmmUsbDispatch.h
index 382461cb84..e72ce66687 100644
--- a/IntelFrameworkPkg/Include/Protocol/SmmUsbDispatch.h
+++ b/IntelFrameworkPkg/Include/Protocol/SmmUsbDispatch.h
@@ -19,6 +19,10 @@
#ifndef _EFI_SMM_USB_DISPATCH_H_
#define _EFI_SMM_USB_DISPATCH_H_
+//
+// Share some common definitions with PI SMM
+//
+#include <Protocol/SmmUsbDispatch2.h>
//
// Global ID for the USB Protocol
@@ -30,14 +34,6 @@
typedef struct _EFI_SMM_USB_DISPATCH_PROTOCOL EFI_SMM_USB_DISPATCH_PROTOCOL;
-//
-// Related Definitions
-//
-typedef enum {
- UsbLegacy,
- UsbWake
-} EFI_USB_SMI_TYPE;
-
typedef struct {
///
/// Describes whether this child handler will be invoked in response to a USB legacy
diff --git a/MdePkg/Include/Pi/PiSmmCis.h b/MdePkg/Include/Pi/PiSmmCis.h
index dc71f639be..77556be0fe 100644
--- a/MdePkg/Include/Pi/PiSmmCis.h
+++ b/MdePkg/Include/Pi/PiSmmCis.h
@@ -19,7 +19,17 @@
#include <Pi/PiMultiPhase.h>
#include <Protocol/SmmCpuIo.h>
-typedef struct _EFI_SMM_SYSTEM_TABLE EFI_SMM_SYSTEM_TABLE;
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_SYSTEM_TABLE -> EFI_SMM_SYSTEM_TABLE2
+/// EFI_SMM_SYSTEM_TABLE_REVISION -> EFI_SMM_SYSTEM_TABLE2_REVISION
+/// EFI_SMM_INSTALL_CONFIGURATION_TABLE -> EFI_SMM_INSTALL_CONFIGURATION_TABLE2
+///
+
+typedef struct _EFI_SMM_SYSTEM_TABLE2 EFI_SMM_SYSTEM_TABLE2;
///
/// The System Management System Table (SMST) signature
@@ -28,7 +38,7 @@ typedef struct _EFI_SMM_SYSTEM_TABLE EFI_SMM_SYSTEM_TABLE;
///
/// The System Management System Table (SMST) revision is 1.0
///
-#define EFI_SMM_SYSTEM_TABLE_REVISION ((1 << 16) | (0x00))
+#define EFI_SMM_SYSTEM_TABLE2_REVISION ((1 << 16) | (0x00))
/**
Adds, updates, or removes a configuration table entry from the System Management System Table.
@@ -50,11 +60,11 @@ typedef struct _EFI_SMM_SYSTEM_TABLE EFI_SMM_SYSTEM_TABLE;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_INSTALL_CONFIGURATION_TABLE)(
- IN CONST EFI_SMM_SYSTEM_TABLE *SystemTable,
- IN CONST EFI_GUID *Guid,
- IN VOID *Table,
- IN UINTN TableSize
+(EFIAPI *EFI_SMM_INSTALL_CONFIGURATION_TABLE2)(
+ IN CONST EFI_SMM_SYSTEM_TABLE2 *SystemTable,
+ IN CONST EFI_GUID *Guid,
+ IN VOID *Table,
+ IN UINTN TableSize
);
/**
@@ -261,40 +271,40 @@ VOID
/// services for managing SMRAM allocation and providing basic I/O services. These services are
/// intended for both preboot and runtime usage.
///
-struct _EFI_SMM_SYSTEM_TABLE {
+struct _EFI_SMM_SYSTEM_TABLE2 {
///
/// The table header for the SMST.
///
- EFI_TABLE_HEADER Hdr;
+ EFI_TABLE_HEADER Hdr;
///
/// A pointer to a NULL-terminated Unicode string containing the vendor name.
/// It is permissible for this pointer to be NULL.
///
- CHAR16 *SmmFirmwareVendor;
+ CHAR16 *SmmFirmwareVendor;
///
/// The particular revision of the firmware.
///
- UINT32 SmmFirmwareRevision;
+ UINT32 SmmFirmwareRevision;
- EFI_SMM_INSTALL_CONFIGURATION_TABLE SmmInstallConfigurationTable;
+ EFI_SMM_INSTALL_CONFIGURATION_TABLE2 SmmInstallConfigurationTable;
///
/// I/O Service
///
- EFI_SMM_CPU_IO_PROTOCOL SmmIo;
+ EFI_SMM_CPU_IO_PROTOCOL SmmIo;
///
/// Runtime memory services
///
- EFI_ALLOCATE_POOL SmmAllocatePool;
- EFI_FREE_POOL SmmFreePool;
- EFI_ALLOCATE_PAGES SmmAllocatePages;
- EFI_FREE_PAGES SmmFreePages;
+ EFI_ALLOCATE_POOL SmmAllocatePool;
+ EFI_FREE_POOL SmmFreePool;
+ EFI_ALLOCATE_PAGES SmmAllocatePages;
+ EFI_FREE_PAGES SmmFreePages;
///
/// MP service
///
- EFI_SMM_STARTUP_THIS_AP SmmStartupThisAp;
+ EFI_SMM_STARTUP_THIS_AP SmmStartupThisAp;
///
/// CPU information records
@@ -304,23 +314,23 @@ struct _EFI_SMM_SYSTEM_TABLE {
/// A number between zero and and the NumberOfCpus field. This field designates
/// which processor is executing the SMM infrastructure.
///
- UINTN CurrentlyExecutingCpu;
+ UINTN CurrentlyExecutingCpu;
///
/// The number of current operational processors in the platform. This is a 1 based counter.
///
- UINTN NumberOfCpus;
+ UINTN NumberOfCpus;
///
/// Points to an array, where each element describes the number of bytes in the
/// corresponding save state specified by CpuSaveState. There are always
/// NumberOfCpus entries in the array.
///
- UINTN *CpuSaveStateSize;
+ UINTN *CpuSaveStateSize;
///
/// Points to an array, where each element is a pointer to a CPU save state. The
/// corresponding element in CpuSaveStateSize specifies the number of bytes in the
/// save state area. There are always NumberOfCpus entries in the array.
///
- VOID **CpuSaveState;
+ VOID **CpuSaveState;
///
/// Extensibility table
@@ -329,29 +339,29 @@ struct _EFI_SMM_SYSTEM_TABLE {
///
/// The number of UEFI Configuration Tables in the buffer SmmConfigurationTable.
///
- UINTN NumberOfTableEntries;
+ UINTN NumberOfTableEntries;
///
/// A pointer to the UEFI Configuration Tables. The number of entries in the table is
/// NumberOfTableEntries.
///
- EFI_CONFIGURATION_TABLE *SmmConfigurationTable;
+ EFI_CONFIGURATION_TABLE *SmmConfigurationTable;
///
/// Protocol services
///
- EFI_INSTALL_PROTOCOL_INTERFACE SmmInstallProtocolInterface;
- EFI_UNINSTALL_PROTOCOL_INTERFACE SmmUninstallProtocolInterface;
- EFI_HANDLE_PROTOCOL SmmHandleProtocol;
- EFI_SMM_REGISTER_PROTOCOL_NOTIFY SmmRegisterProtocolNotify;
- EFI_LOCATE_HANDLE SmmLocateHandle;
- EFI_LOCATE_PROTOCOL SmmLocateProtocol;
+ EFI_INSTALL_PROTOCOL_INTERFACE SmmInstallProtocolInterface;
+ EFI_UNINSTALL_PROTOCOL_INTERFACE SmmUninstallProtocolInterface;
+ EFI_HANDLE_PROTOCOL SmmHandleProtocol;
+ EFI_SMM_REGISTER_PROTOCOL_NOTIFY SmmRegisterProtocolNotify;
+ EFI_LOCATE_HANDLE SmmLocateHandle;
+ EFI_LOCATE_PROTOCOL SmmLocateProtocol;
///
/// SMI Management functions
///
- EFI_SMM_INTERRUPT_MANAGE SmiManage;
- EFI_SMM_INTERRUPT_REGISTER SmiHandlerRegister;
- EFI_SMM_INTERRUPT_UNREGISTER SmiHandlerUnRegister;
+ EFI_SMM_INTERRUPT_MANAGE SmiManage;
+ EFI_SMM_INTERRUPT_REGISTER SmiHandlerRegister;
+ EFI_SMM_INTERRUPT_UNREGISTER SmiHandlerUnRegister;
};
#endif
diff --git a/MdePkg/Include/Protocol/SmmAccess2.h b/MdePkg/Include/Protocol/SmmAccess2.h
index 533c11d05e..d33578d275 100644
--- a/MdePkg/Include/Protocol/SmmAccess2.h
+++ b/MdePkg/Include/Protocol/SmmAccess2.h
@@ -27,6 +27,17 @@
#include <PiDxe.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_OPEN -> EFI_SMM_OPEN2
+/// EFI_SMM_CLOSE -> EFI_SMM_CLOSE2
+/// EFI_SMM_LOCK -> EFI_SMM_LOCK2
+/// EFI_SMM_CAPABILITIES -> EFI_SMM_CAPABILITIES2
+///
+
#define EFI_SMM_ACCESS2_PROTOCOL_GUID \
{ \
0xc2702b74, 0x800c, 0x4131, {0x87, 0x46, 0x8f, 0xb5, 0xb8, 0x9c, 0xe4, 0xac } \
@@ -88,7 +99,7 @@ typedef struct _EFI_SMM_ACCESS2_PROTOCOL EFI_SMM_ACCESS2_PROTOCOL;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_OPEN)(
+(EFIAPI *EFI_SMM_OPEN2)(
IN EFI_SMM_ACCESS2_PROTOCOL *This
);
@@ -106,7 +117,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_CLOSE)(
+(EFIAPI *EFI_SMM_CLOSE2)(
IN EFI_SMM_ACCESS2_PROTOCOL *This
);
@@ -123,7 +134,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_LOCK)(
+(EFIAPI *EFI_SMM_LOCK2)(
IN EFI_SMM_ACCESS2_PROTOCOL *This
);
@@ -140,7 +151,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_CAPABILITIES)(
+(EFIAPI *EFI_SMM_CAPABILITIES2)(
IN CONST EFI_SMM_ACCESS2_PROTOCOL *This,
IN OUT UINTN *SmramMapSize,
IN OUT EFI_SMRAM_DESCRIPTOR *SmramMap
@@ -152,10 +163,10 @@ EFI_STATUS
/// that the north bridge or memory controller would publish this protocol.
///
struct _EFI_SMM_ACCESS2_PROTOCOL {
- EFI_SMM_OPEN Open;
- EFI_SMM_CLOSE Close;
- EFI_SMM_LOCK Lock;
- EFI_SMM_CAPABILITIES GetCapabilities;
+ EFI_SMM_OPEN2 Open;
+ EFI_SMM_CLOSE2 Close;
+ EFI_SMM_LOCK2 Lock;
+ EFI_SMM_CAPABILITIES2 GetCapabilities;
///
/// Indicates the current state of the SMRAM. Set to TRUE if SMRAM is locked.
///
diff --git a/MdePkg/Include/Protocol/SmmControl2.h b/MdePkg/Include/Protocol/SmmControl2.h
index 59eccdf6c3..8d29b1f7eb 100644
--- a/MdePkg/Include/Protocol/SmmControl2.h
+++ b/MdePkg/Include/Protocol/SmmControl2.h
@@ -27,6 +27,15 @@
#include <PiDxe.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_ACTIVATE -> EFI_SMM_ACTIVATE2
+/// EFI_SMM_DEACTIVATE -> EFI_SMM_DEACTIVATE2
+///
+
#define EFI_SMM_CONTROL2_PROTOCOL_GUID \
{ \
0x843dc720, 0xab1e, 0x42cb, {0x93, 0x57, 0x8a, 0x0, 0x78, 0xf3, 0x56, 0x1b} \
@@ -54,7 +63,7 @@ typedef UINTN EFI_SMM_PERIOD;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_ACTIVATE)(
+(EFIAPI *EFI_SMM_ACTIVATE2)(
IN CONST EFI_SMM_CONTROL2_PROTOCOL *This,
IN OUT UINT8 *CommandPort OPTIONAL,
IN OUT UINT8 *DataPort OPTIONAL,
@@ -76,7 +85,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_DEACTIVATE)(
+(EFIAPI *EFI_SMM_DEACTIVATE2)(
IN CONST EFI_SMM_CONTROL2_PROTOCOL *This,
IN BOOLEAN Periodic OPTIONAL
);
@@ -88,8 +97,8 @@ EFI_STATUS
/// these signals.
///
struct _EFI_SMM_CONTROL2_PROTOCOL {
- EFI_SMM_ACTIVATE Trigger;
- EFI_SMM_DEACTIVATE Clear;
+ EFI_SMM_ACTIVATE2 Trigger;
+ EFI_SMM_DEACTIVATE2 Clear;
///
/// Minimum interval at which the platform can set the period. A maximum is not
/// specified in that the SMM infrastructure code can emulate a maximum interval that is
diff --git a/MdePkg/Include/Protocol/SmmCpuIo.h b/MdePkg/Include/Protocol/SmmCpuIo.h
index 90d0e93428..fc48a6e5e6 100644
--- a/MdePkg/Include/Protocol/SmmCpuIo.h
+++ b/MdePkg/Include/Protocol/SmmCpuIo.h
@@ -17,6 +17,15 @@
#ifndef _SMM_CPU_IO_H_
#define _SMM_CPU_IO_H_
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_CPU_IO -> EFI_SMM_CPU_IO2
+/// EFI_SMM_IO_ACCESS -> EFI_SMM_IO_ACCESS2
+///
+
#define EFI_SMM_CPU_IO_PROTOCOL_GUID \
{ \
0x3242A9D8, 0xCE70, 0x4AA0, { 0x95, 0x5D, 0x5E, 0x7B, 0x14, 0x0D, 0xE4, 0xD2 } \
@@ -55,7 +64,7 @@ typedef enum {
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_CPU_IO)(
+(EFIAPI *EFI_SMM_CPU_IO2)(
IN CONST EFI_SMM_CPU_IO_PROTOCOL *This,
IN EFI_SMM_IO_WIDTH Width,
IN UINT64 Address,
@@ -67,19 +76,19 @@ typedef struct {
///
/// This service provides the various modalities of memory and I/O read.
///
- EFI_SMM_CPU_IO Read;
+ EFI_SMM_CPU_IO2 Read;
///
/// This service provides the various modalities of memory and I/O write.
///
- EFI_SMM_CPU_IO Write;
-} EFI_SMM_IO_ACCESS;
+ EFI_SMM_CPU_IO2 Write;
+} EFI_SMM_IO_ACCESS2;
///
/// SMM CPU I/O Protocol provides CPU I/O and memory access within SMM.
///
typedef struct _EFI_SMM_CPU_IO_PROTOCOL {
- EFI_SMM_IO_ACCESS Mem; ///< Allows reads and writes to memory-mapped I/O space.
- EFI_SMM_IO_ACCESS Io; ///< Allows reads and writes to I/O space.
+ EFI_SMM_IO_ACCESS2 Mem; ///< Allows reads and writes to memory-mapped I/O space.
+ EFI_SMM_IO_ACCESS2 Io; ///< Allows reads and writes to I/O space.
};
extern EFI_GUID gEfiSmmCpuIoProtocolGuid;
diff --git a/MdePkg/Include/Protocol/SmmGpiDispatch2.h b/MdePkg/Include/Protocol/SmmGpiDispatch2.h
index 338e1b2a1c..2bc457e6ff 100644
--- a/MdePkg/Include/Protocol/SmmGpiDispatch2.h
+++ b/MdePkg/Include/Protocol/SmmGpiDispatch2.h
@@ -28,6 +28,15 @@
#include <Pi/PiSmmCis.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_GPI_REGISTER -> EFI_SMM_GPI_REGISTER2
+/// EFI_SMM_GPI_UNREGISTER -> EFI_SMM_GPI_UNREGISTER2
+///
+
#define EFI_SMM_GPI_DISPATCH2_PROTOCOL_GUID \
{ \
0x25566b03, 0xb577, 0x4cbf, {0x95, 0x8c, 0xed, 0x66, 0x3e, 0xa2, 0x43, 0x80 } \
@@ -77,7 +86,7 @@ typedef struct _EFI_SMM_GPI_DISPATCH2_PROTOCOL EFI_SMM_GPI_DISPATCH2_PROTOCOL;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_GPI_REGISTER)(
+(EFIAPI *EFI_SMM_GPI_REGISTER2)(
IN CONST EFI_SMM_GPI_DISPATCH2_PROTOCOL *This,
IN EFI_SMM_HANDLER_ENTRY_POINT2 DispatchFunction,
IN CONST EFI_SMM_GPI_REGISTER_CONTEXT *RegisterContext,
@@ -98,7 +107,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_GPI_UNREGISTER)(
+(EFIAPI *EFI_SMM_GPI_UNREGISTER2)(
IN CONST EFI_SMM_GPI_DISPATCH2_PROTOCOL *This,
IN EFI_HANDLE DispatchHandle
);
@@ -110,8 +119,8 @@ EFI_STATUS
/// for the General Purpose Input (GPI) SMI source generator.
///
struct _EFI_SMM_GPI_DISPATCH2_PROTOCOL {
- EFI_SMM_GPI_REGISTER Register;
- EFI_SMM_GPI_UNREGISTER UnRegister;
+ EFI_SMM_GPI_REGISTER2 Register;
+ EFI_SMM_GPI_UNREGISTER2 UnRegister;
///
/// Denotes the maximum value of inputs that can have handlers attached.
///
diff --git a/MdePkg/Include/Protocol/SmmPeriodicTimerDispatch2.h b/MdePkg/Include/Protocol/SmmPeriodicTimerDispatch2.h
index 0e791e1a00..252729fd5c 100644
--- a/MdePkg/Include/Protocol/SmmPeriodicTimerDispatch2.h
+++ b/MdePkg/Include/Protocol/SmmPeriodicTimerDispatch2.h
@@ -23,6 +23,16 @@
#include <Pi/PiSmmCis.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_PERIODIC_TIMER_REGISTER -> EFI_SMM_PERIODIC_TIMER_REGISTER2
+/// EFI_SMM_PERIODIC_TIMER_UNREGISTER -> EFI_SMM_PERIODIC_TIMER_UNREGISTER2
+/// EFI_SMM_PERIODIC_TIMER_INTERVAL -> EFI_SMM_PERIODIC_TIMER_INTERVAL2
+///
+
#define EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL_GUID \
{ \
0x4cec368e, 0x8e8e, 0x4d71, {0x8b, 0xe1, 0x95, 0x8c, 0x45, 0xfc, 0x8a, 0x53 } \
@@ -105,7 +115,7 @@ typedef struct _EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL EFI_SMM_PERIODIC_TIME
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_PERIODIC_TIMER_REGISTER)(
+(EFIAPI *EFI_SMM_PERIODIC_TIMER_REGISTER2)(
IN CONST EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL *This,
IN EFI_SMM_HANDLER_ENTRY_POINT2 DispatchFunction,
IN CONST EFI_SMM_PERIODIC_TIMER_REGISTER_CONTEXT *RegisterContext,
@@ -126,7 +136,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_PERIODIC_TIMER_UNREGISTER)(
+(EFIAPI *EFI_SMM_PERIODIC_TIMER_UNREGISTER2)(
IN CONST EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL *This,
IN EFI_HANDLE DispatchHandle
);
@@ -148,7 +158,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_PERIODIC_TIMER_INTERVAL)(
+(EFIAPI *EFI_SMM_PERIODIC_TIMER_INTERVAL2)(
IN CONST EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL *This,
IN OUT UINT64 **SmiTickInterval
);
@@ -159,9 +169,9 @@ EFI_STATUS
/// This protocol provides the parent dispatch service for the periodical timer SMI source generator.
///
struct _EFI_SMM_PERIODIC_TIMER_DISPATCH2_PROTOCOL {
- EFI_SMM_PERIODIC_TIMER_REGISTER Register;
- EFI_SMM_PERIODIC_TIMER_UNREGISTER UnRegister;
- EFI_SMM_PERIODIC_TIMER_INTERVAL GetNextShorterInterval;
+ EFI_SMM_PERIODIC_TIMER_REGISTER2 Register;
+ EFI_SMM_PERIODIC_TIMER_UNREGISTER2 UnRegister;
+ EFI_SMM_PERIODIC_TIMER_INTERVAL2 GetNextShorterInterval;
};
extern EFI_GUID gEfiSmmPeriodicTimerDispatch2ProtocolGuid;
diff --git a/MdePkg/Include/Protocol/SmmPowerButtonDispatch2.h b/MdePkg/Include/Protocol/SmmPowerButtonDispatch2.h
index b3cdb47653..eca6d80291 100644
--- a/MdePkg/Include/Protocol/SmmPowerButtonDispatch2.h
+++ b/MdePkg/Include/Protocol/SmmPowerButtonDispatch2.h
@@ -23,6 +23,15 @@
#include <Pi/PiSmmCis.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_POWER_BUTTON_REGISTER -> EFI_SMM_POWER_BUTTON_REGISTER2
+/// EFI_SMM_POWER_BUTTON_UNREGISTER -> EFI_SMM_POWER_BUTTON_UNREGISTER2
+///
+
#define EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL_GUID \
{ \
0x1b1183fa, 0x1823, 0x46a7, {0x88, 0x72, 0x9c, 0x57, 0x87, 0x55, 0x40, 0x9d } \
@@ -75,7 +84,7 @@ typedef struct _EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL EFI_SMM_POWER_BUTTON_DIS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_POWER_BUTTON_REGISTER)(
+(EFIAPI *EFI_SMM_POWER_BUTTON_REGISTER2)(
IN CONST EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL *This,
IN EFI_SMM_HANDLER_ENTRY_POINT2 DispatchFunction,
IN EFI_SMM_POWER_BUTTON_REGISTER_CONTEXT *RegisterContext,
@@ -96,7 +105,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_POWER_BUTTON_UNREGISTER)(
+(EFIAPI *EFI_SMM_POWER_BUTTON_UNREGISTER2)(
IN CONST EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL *This,
IN EFI_HANDLE DispatchHandle
);
@@ -107,8 +116,8 @@ EFI_STATUS
/// This protocol provides the parent dispatch service for the power button SMI source generator.
///
struct _EFI_SMM_POWER_BUTTON_DISPATCH2_PROTOCOL {
- EFI_SMM_POWER_BUTTON_REGISTER Register;
- EFI_SMM_POWER_BUTTON_UNREGISTER UnRegister;
+ EFI_SMM_POWER_BUTTON_REGISTER2 Register;
+ EFI_SMM_POWER_BUTTON_UNREGISTER2 UnRegister;
};
extern EFI_GUID gEfiSmmPowerButtonDispatch2ProtocolGuid;
diff --git a/MdePkg/Include/Protocol/SmmStandbyButtonDispatch2.h b/MdePkg/Include/Protocol/SmmStandbyButtonDispatch2.h
index 82c944a191..ddfa230d07 100644
--- a/MdePkg/Include/Protocol/SmmStandbyButtonDispatch2.h
+++ b/MdePkg/Include/Protocol/SmmStandbyButtonDispatch2.h
@@ -23,6 +23,15 @@
#include <Pi/PiSmmCis.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_STANDBY_BUTTON_REGISTER -> EFI_SMM_STANDBY_BUTTON_REGISTER2
+/// EFI_SMM_STANDBY_BUTTON_UNREGISTER -> EFI_SMM_STANDBY_BUTTON_UNREGISTER2
+///
+
#define EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL_GUID \
{ \
0x7300c4a1, 0x43f2, 0x4017, {0xa5, 0x1b, 0xc8, 0x1a, 0x7f, 0x40, 0x58, 0x5b } \
@@ -76,7 +85,7 @@ typedef struct _EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL EFI_SMM_STANDBY_BUTTON
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_STANDBY_BUTTON_REGISTER)(
+(EFIAPI *EFI_SMM_STANDBY_BUTTON_REGISTER2)(
IN CONST EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL *This,
IN EFI_SMM_HANDLER_ENTRY_POINT2 DispatchFunction,
IN EFI_SMM_STANDBY_BUTTON_REGISTER_CONTEXT *RegisterContext,
@@ -97,7 +106,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_STANDBY_BUTTON_UNREGISTER)(
+(EFIAPI *EFI_SMM_STANDBY_BUTTON_UNREGISTER2)(
IN CONST EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL *This,
IN EFI_HANDLE DispatchHandle
);
@@ -109,8 +118,8 @@ EFI_STATUS
/// button SMI source generator.
///
struct _EFI_SMM_STANDBY_BUTTON_DISPATCH2_PROTOCOL {
- EFI_SMM_STANDBY_BUTTON_REGISTER Register;
- EFI_SMM_STANDBY_BUTTON_UNREGISTER UnRegister;
+ EFI_SMM_STANDBY_BUTTON_REGISTER2 Register;
+ EFI_SMM_STANDBY_BUTTON_UNREGISTER2 UnRegister;
};
extern EFI_GUID gEfiSmmStandbyButtonDispatch2ProtocolGuid;
diff --git a/MdePkg/Include/Protocol/SmmSwDispatch2.h b/MdePkg/Include/Protocol/SmmSwDispatch2.h
index 2732c3dd75..c99a5b95d6 100644
--- a/MdePkg/Include/Protocol/SmmSwDispatch2.h
+++ b/MdePkg/Include/Protocol/SmmSwDispatch2.h
@@ -20,6 +20,15 @@
#include <Pi/PiSmmCis.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_SW_REGISTER -> EFI_SMM_SW_REGISTER2
+/// EFI_SMM_SW_UNREGISTER -> EFI_SMM_SW_UNREGISTER2
+///
+
#define EFI_SMM_SW_DISPATCH2_PROTOCOL_GUID \
{ \
0x18a3c6dc, 0x5eea, 0x48c8, {0xa1, 0xc1, 0xb5, 0x33, 0x89, 0xf9, 0x89, 0x99 } \
@@ -88,7 +97,7 @@ typedef struct _EFI_SMM_SW_DISPATCH2_PROTOCOL EFI_SMM_SW_DISPATCH2_PROTOCOL;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_SW_REGISTER)(
+(EFIAPI *EFI_SMM_SW_REGISTER2)(
IN CONST EFI_SMM_SW_DISPATCH2_PROTOCOL *This,
IN EFI_SMM_HANDLER_ENTRY_POINT2 DispatchFunction,
IN CONST EFI_SMM_SW_REGISTER_CONTEXT *RegisterContext,
@@ -109,7 +118,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_SW_UNREGISTER)(
+(EFIAPI *EFI_SMM_SW_UNREGISTER2)(
IN CONST EFI_SMM_SW_DISPATCH2_PROTOCOL *This,
IN EFI_HANDLE DispatchHandle
);
@@ -122,8 +131,8 @@ EFI_STATUS
/// interrupt in the EFI_SMM_SW_REGISTER_CONTEXT is denoted by MaximumSwiValue.
///
struct _EFI_SMM_SW_DISPATCH2_PROTOCOL {
- EFI_SMM_SW_REGISTER Register;
- EFI_SMM_SW_UNREGISTER UnRegister;
+ EFI_SMM_SW_REGISTER2 Register;
+ EFI_SMM_SW_UNREGISTER2 UnRegister;
///
/// A read-only field that describes the maximum value that can be used in the
/// EFI_SMM_SW_DISPATCH2_PROTOCOL.Register() service.
diff --git a/MdePkg/Include/Protocol/SmmSxDispatch2.h b/MdePkg/Include/Protocol/SmmSxDispatch2.h
index 187a2ff8d8..fe0baa1960 100644
--- a/MdePkg/Include/Protocol/SmmSxDispatch2.h
+++ b/MdePkg/Include/Protocol/SmmSxDispatch2.h
@@ -20,6 +20,15 @@
#include <Pi/PiSmmCis.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_SX_REGISTER -> EFI_SMM_SX_REGISTER2
+/// EFI_SMM_SX_UNREGISTER -> EFI_SMM_SX_UNREGISTER2
+///
+
#define EFI_SMM_SX_DISPATCH2_PROTOCOL_GUID \
{ \
0x456d2859, 0xa84b, 0x4e47, {0xa2, 0xee, 0x32, 0x76, 0xd8, 0x86, 0x99, 0x7d } \
@@ -93,7 +102,7 @@ typedef struct _EFI_SMM_SX_DISPATCH2_PROTOCOL EFI_SMM_SX_DISPATCH2_PROTOCOL;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_SX_REGISTER)(
+(EFIAPI *EFI_SMM_SX_REGISTER2)(
IN CONST EFI_SMM_SX_DISPATCH2_PROTOCOL *This,
IN EFI_SMM_HANDLER_ENTRY_POINT2 DispatchFunction,
IN CONST EFI_SMM_SX_REGISTER_CONTEXT *RegisterContext,
@@ -114,7 +123,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_SX_UNREGISTER)(
+(EFIAPI *EFI_SMM_SX_UNREGISTER2)(
IN CONST EFI_SMM_SX_DISPATCH2_PROTOCOL *This,
IN EFI_HANDLE DispatchHandle
);
@@ -126,8 +135,8 @@ EFI_STATUS
/// respond to sleep state related events.
///
struct _EFI_SMM_SX_DISPATCH2_PROTOCOL {
- EFI_SMM_SX_REGISTER Register;
- EFI_SMM_SX_UNREGISTER UnRegister;
+ EFI_SMM_SX_REGISTER2 Register;
+ EFI_SMM_SX_UNREGISTER2 UnRegister;
};
extern EFI_GUID gEfiSmmSxDispatch2ProtocolGuid;
diff --git a/MdePkg/Include/Protocol/SmmUsbDispatch2.h b/MdePkg/Include/Protocol/SmmUsbDispatch2.h
index a95f8f63b6..27b4674bfe 100644
--- a/MdePkg/Include/Protocol/SmmUsbDispatch2.h
+++ b/MdePkg/Include/Protocol/SmmUsbDispatch2.h
@@ -23,6 +23,15 @@
#include <Pi/PiSmmCis.h>
+///
+/// Note:
+/// To avoid name conflict between PI and Framework SMM spec, the following names defined
+/// in PI 1.2 SMM spec are renamed. These renamings are not yet in a public PI spec and errta.
+///
+/// EFI_SMM_USB_REGISTER -> EFI_SMM_USB_REGISTER2
+/// EFI_SMM_USB_UNREGISTER -> EFI_SMM_USB_UNREGISTER2
+///
+
#define EFI_SMM_USB_DISPATCH2_PROTOCOL_GUID \
{ \
0xee9b8d90, 0xc5a6, 0x40a2, {0xbd, 0xe2, 0x52, 0x55, 0x8d, 0x33, 0xcc, 0xa1 } \
@@ -85,7 +94,7 @@ typedef struct _EFI_SMM_USB_DISPATCH2_PROTOCOL EFI_SMM_USB_DISPATCH2_PROTOCOL;
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_USB_REGISTER)(
+(EFIAPI *EFI_SMM_USB_REGISTER2)(
IN CONST EFI_SMM_USB_DISPATCH2_PROTOCOL *This,
IN EFI_SMM_HANDLER_ENTRY_POINT2 DispatchFunction,
IN CONST EFI_SMM_USB_REGISTER_CONTEXT *RegisterContext,
@@ -109,7 +118,7 @@ EFI_STATUS
**/
typedef
EFI_STATUS
-(EFIAPI *EFI_SMM_USB_UNREGISTER)(
+(EFIAPI *EFI_SMM_USB_UNREGISTER2)(
IN CONST EFI_SMM_USB_DISPATCH2_PROTOCOL *This,
IN EFI_HANDLE DispatchHandle
);
@@ -120,8 +129,8 @@ EFI_STATUS
/// This protocol provides the parent dispatch service for the USB SMI source generator.
///
struct _EFI_SMM_USB_DISPATCH2_PROTOCOL {
- EFI_SMM_USB_REGISTER Register;
- EFI_SMM_USB_UNREGISTER UnRegister;
+ EFI_SMM_USB_REGISTER2 Register;
+ EFI_SMM_USB_UNREGISTER2 UnRegister;
};
extern EFI_GUID gEfiSmmUsbDispatch2ProtocolGuid;