]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiPayloadPkg/SmmControlRuntimeDxe/SmmControlRuntimeDxe.c
OvmfPkg: raise DXEFV size to 13 MB in the traditional platform FDFs
[mirror_edk2.git] / UefiPayloadPkg / SmmControlRuntimeDxe / SmmControlRuntimeDxe.c
index 6dd91e260160147bcb730b1c0a5a8489220422b3..63d4845c8d773784b7be24ec9793f3de096efdc8 100644 (file)
 #include <Library/BaseMemoryLib.h>\r
 #include <Guid/SmmRegisterInfoGuid.h>\r
 \r
-#define SMM_DATA_PORT       0xB3\r
-#define SMM_CONTROL_PORT    0xB2\r
+#define SMM_DATA_PORT     0xB3\r
+#define SMM_CONTROL_PORT  0xB2\r
 \r
 typedef struct {\r
-  UINT8   GblBitOffset;\r
-  UINT8   ApmBitOffset;\r
-  UINT32  Address;\r
+  UINT8     GblBitOffset;\r
+  UINT8     ApmBitOffset;\r
+  UINT32    Address;\r
 } SMM_CONTROL2_REG;\r
 \r
-SMM_CONTROL2_REG        mSmiCtrlReg;\r
+SMM_CONTROL2_REG  mSmiCtrlReg;\r
 \r
 /**\r
   Invokes SMI activation from either the preboot or runtime environment.\r
@@ -48,15 +48,15 @@ SMM_CONTROL2_REG        mSmiCtrlReg;
 EFI_STATUS\r
 EFIAPI\r
 Activate (\r
-  IN CONST EFI_SMM_CONTROL2_PROTOCOL     *This,\r
-  IN OUT  UINT8                          *CommandPort       OPTIONAL,\r
-  IN OUT  UINT8                          *DataPort          OPTIONAL,\r
-  IN      BOOLEAN                        Periodic           OPTIONAL,\r
-  IN      EFI_SMM_PERIOD                 ActivationInterval OPTIONAL\r
+  IN CONST EFI_SMM_CONTROL2_PROTOCOL  *This,\r
+  IN OUT  UINT8                       *CommandPort       OPTIONAL,\r
+  IN OUT  UINT8                       *DataPort          OPTIONAL,\r
+  IN      BOOLEAN                     Periodic           OPTIONAL,\r
+  IN      EFI_SMM_PERIOD              ActivationInterval OPTIONAL\r
   )\r
 {\r
-  UINT32                                 SmiEn;\r
-  UINT32                                 SmiEnableBits;\r
+  UINT32  SmiEn;\r
+  UINT32  SmiEnableBits;\r
 \r
   if (Periodic) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -71,7 +71,7 @@ Activate (
     IoWrite32 (mSmiCtrlReg.Address, SmiEn | SmiEnableBits);\r
   }\r
 \r
-  IoWrite8 (SMM_DATA_PORT,    DataPort    == NULL ? 0 : *DataPort);\r
+  IoWrite8 (SMM_DATA_PORT, DataPort    == NULL ? 0 : *DataPort);\r
   IoWrite8 (SMM_CONTROL_PORT, CommandPort == NULL ? 0 : *CommandPort);\r
   return EFI_SUCCESS;\r
 }\r
@@ -88,8 +88,8 @@ Activate (
 EFI_STATUS\r
 EFIAPI\r
 Deactivate (\r
-  IN CONST EFI_SMM_CONTROL2_PROTOCOL     *This,\r
-  IN       BOOLEAN                       Periodic\r
+  IN CONST EFI_SMM_CONTROL2_PROTOCOL  *This,\r
+  IN       BOOLEAN                    Periodic\r
   )\r
 {\r
   if (Periodic) {\r
@@ -105,7 +105,7 @@ Deactivate (
 ///\r
 /// SMM COntrol2 Protocol instance\r
 ///\r
-EFI_SMM_CONTROL2_PROTOCOL mSmmControl2 = {\r
+EFI_SMM_CONTROL2_PROTOCOL  mSmmControl2 = {\r
   Activate,\r
   Deactivate,\r
   0\r
@@ -123,12 +123,12 @@ EFI_SMM_CONTROL2_PROTOCOL mSmmControl2 = {
 **/\r
 PLD_GENERIC_REGISTER *\r
 GetSmmCtrlRegById (\r
-  IN PLD_SMM_REGISTERS    *SmmRegister,\r
-  IN UINT32               Id\r
+  IN PLD_SMM_REGISTERS  *SmmRegister,\r
+  IN UINT32             Id\r
   )\r
 {\r
-  UINT32                  Index;\r
-  PLD_GENERIC_REGISTER    *PldReg;\r
+  UINT32                Index;\r
+  PLD_GENERIC_REGISTER  *PldReg;\r
 \r
   PldReg = NULL;\r
   for (Index = 0; Index < SmmRegister->Count; Index++) {\r
@@ -150,19 +150,20 @@ GetSmmCtrlRegById (
       (PldReg->Address.Address          == 0) ||\r
       (PldReg->Address.RegisterBitWidth != 1) ||\r
       (PldReg->Address.AddressSpaceId   != EFI_ACPI_3_0_SYSTEM_IO) ||\r
-      (PldReg->Value != 1)) {\r
+      (PldReg->Value != 1))\r
+  {\r
     DEBUG ((DEBUG_INFO, "Unexpected SMM register.\n"));\r
     DEBUG ((DEBUG_INFO, "AddressSpaceId= 0x%x\n", PldReg->Address.AddressSpaceId));\r
     DEBUG ((DEBUG_INFO, "RegBitWidth   = 0x%x\n", PldReg->Address.RegisterBitWidth));\r
     DEBUG ((DEBUG_INFO, "RegBitOffset  = 0x%x\n", PldReg->Address.RegisterBitOffset));\r
     DEBUG ((DEBUG_INFO, "AccessSize    = 0x%x\n", PldReg->Address.AccessSize));\r
-    DEBUG ((DEBUG_INFO, "Address       = 0x%lx\n",PldReg->Address.Address ));\r
+    DEBUG ((DEBUG_INFO, "Address       = 0x%lx\n", PldReg->Address.Address));\r
     return NULL;\r
   }\r
+\r
   return PldReg;\r
 }\r
 \r
-\r
 /**\r
   Fixup data pointers so that the services can be called in virtual mode.\r
 \r
@@ -173,15 +174,14 @@ GetSmmCtrlRegById (
 VOID\r
 EFIAPI\r
 SmmControlVirtualAddressChangeEvent (\r
-  IN EFI_EVENT                  Event,\r
-  IN VOID                       *Context\r
+  IN EFI_EVENT  Event,\r
+  IN VOID       *Context\r
   )\r
 {\r
-  EfiConvertPointer (0x0, (VOID **) &(mSmmControl2.Trigger));\r
-  EfiConvertPointer (0x0, (VOID **) &(mSmmControl2.Clear));\r
+  EfiConvertPointer (0x0, (VOID **)&(mSmmControl2.Trigger));\r
+  EfiConvertPointer (0x0, (VOID **)&(mSmmControl2.Clear));\r
 }\r
 \r
-\r
 /**\r
   This function installs EFI_SMM_CONTROL2_PROTOCOL.\r
 \r
@@ -195,28 +195,29 @@ SmmControlVirtualAddressChangeEvent (
 EFI_STATUS\r
 EFIAPI\r
 SmmControlEntryPoint (\r
-  IN EFI_HANDLE           ImageHandle,\r
-  IN EFI_SYSTEM_TABLE     *SystemTable\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
 {\r
-  EFI_STATUS              Status;\r
-  EFI_HOB_GUID_TYPE       *GuidHob;\r
-  PLD_SMM_REGISTERS       *SmmRegister;\r
-  PLD_GENERIC_REGISTER    *SmiGblEnReg;\r
-  PLD_GENERIC_REGISTER    *SmiApmEnReg;\r
-  EFI_EVENT               Event;\r
+  EFI_STATUS            Status;\r
+  EFI_HOB_GUID_TYPE     *GuidHob;\r
+  PLD_SMM_REGISTERS     *SmmRegister;\r
+  PLD_GENERIC_REGISTER  *SmiGblEnReg;\r
+  PLD_GENERIC_REGISTER  *SmiApmEnReg;\r
+  EFI_EVENT             Event;\r
 \r
   GuidHob = GetFirstGuidHob (&gSmmRegisterInfoGuid);\r
   if (GuidHob == NULL) {\r
     return EFI_UNSUPPORTED;\r
   }\r
 \r
-  SmmRegister = (PLD_SMM_REGISTERS *) (GET_GUID_HOB_DATA(GuidHob));\r
+  SmmRegister = (PLD_SMM_REGISTERS *)(GET_GUID_HOB_DATA (GuidHob));\r
   SmiGblEnReg = GetSmmCtrlRegById (SmmRegister, REGISTER_ID_SMI_GBL_EN);\r
   if (SmiGblEnReg == NULL) {\r
     DEBUG ((DEBUG_ERROR, "SMI global enable reg not found.\n"));\r
     return EFI_NOT_FOUND;\r
   }\r
+\r
   mSmiCtrlReg.Address      = (UINT32)SmiGblEnReg->Address.Address;\r
   mSmiCtrlReg.GblBitOffset = SmiGblEnReg->Address.RegisterBitOffset;\r
 \r
@@ -231,6 +232,7 @@ SmmControlEntryPoint (
     DEBUG ((DEBUG_ERROR, "APM:0x%x, GBL:0x%x\n", SmiApmEnReg->Address.Address, mSmiCtrlReg.Address));\r
     return EFI_UNSUPPORTED;\r
   }\r
+\r
   mSmiCtrlReg.ApmBitOffset = SmiApmEnReg->Address.RegisterBitOffset;\r
 \r
   //\r