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 +#include + #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 + #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 @@ -32,19 +32,6 @@ typedef struct _EFI_SMM_ACCESS_PROTOCOL EFI_SMM_ACCESS_PROTOCOL; 0x3792095a, 0xe309, 0x4c1e, {0xaa, 0x01, 0x85, 0xf5, 0x65, 0x5a, 0x17, 0xf1 } \ } -// -// 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 @@ -23,6 +23,11 @@ #ifndef _EFI_SMM_STANDBY_BUTTON_DISPATCH_H_ #define _EFI_SMM_STANDBY_BUTTON_DISPATCH_H_ +// +// Share some common definitions with PI SMM +// +#include + // // Global ID for the Standby Button SMI Protocol // @@ -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 // // 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 // // 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 #include -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 +/// +/// 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 +/// +/// 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 +/// +/// 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 +/// +/// 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 +/// +/// 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 +/// +/// 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 +/// +/// 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 +/// +/// 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 +/// +/// 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;