]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c
OvmfPkg/ResetSystemLib: factor out ResetShutdown()
[mirror_edk2.git] / OvmfPkg / Library / ResetSystemLib / ResetSystemLib.c
index 27460cd100ab9cc3b31608861aee00bfd91355ff..fe51f53d1df2d057aeb959fb7161e579b4359f13 100644 (file)
@@ -6,44 +6,12 @@
 \r
 **/\r
 \r
-#include <Base.h>\r
+#include <Base.h>                   // BIT1\r
 \r
-#include <Library/BaseLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/IoLib.h>\r
-#include <Library/TimerLib.h>\r
-#include <OvmfPlatforms.h>\r
-\r
-#include <OvmfPlatforms.h>\r
-\r
-VOID\r
-AcpiPmControl (\r
-  UINTN SuspendType\r
-  )\r
-{\r
-  UINT16 AcpiPmBaseAddress;\r
-  UINT16 HostBridgeDevId;\r
-\r
-  ASSERT (SuspendType < 6);\r
-\r
-  AcpiPmBaseAddress = 0;\r
-  HostBridgeDevId = PciRead16 (OVMF_HOSTBRIDGE_DID);\r
-  switch (HostBridgeDevId) {\r
-  case INTEL_82441_DEVICE_ID:\r
-    AcpiPmBaseAddress = PIIX4_PMBA_VALUE;\r
-    break;\r
-  case INTEL_Q35_MCH_DEVICE_ID:\r
-    AcpiPmBaseAddress = ICH9_PMBASE_VALUE;\r
-    break;\r
-  default:\r
-    ASSERT (FALSE);\r
-    CpuDeadLoop ();\r
-  }\r
-\r
-  IoBitFieldWrite16 (AcpiPmBaseAddress + 4, 10, 13, (UINT16) SuspendType);\r
-  IoOr16 (AcpiPmBaseAddress + 4, BIT13);\r
-  CpuDeadLoop ();\r
-}\r
+#include <Library/BaseLib.h>        // CpuDeadLoop()\r
+#include <Library/IoLib.h>          // IoWrite8()\r
+#include <Library/ResetSystemLib.h> // ResetCold()\r
+#include <Library/TimerLib.h>       // MicroSecondDelay()\r
 \r
 /**\r
   Calling this function causes a system-wide reset. This sets\r
@@ -84,48 +52,14 @@ ResetWarm (
   CpuDeadLoop ();\r
 }\r
 \r
-/**\r
-  Calling this function causes the system to enter a power state equivalent\r
-  to the ACPI G2/S5 or G3 states.\r
-\r
-  System shutdown should not return, if it returns, it means the system does\r
-  not support shut down reset.\r
-**/\r
-VOID\r
-EFIAPI\r
-ResetShutdown (\r
-  VOID\r
-  )\r
-{\r
-  AcpiPmControl (0);\r
-  ASSERT (FALSE);\r
-}\r
-\r
-\r
-/**\r
-  Calling this function causes the system to enter a power state for capsule\r
-  update.\r
-\r
-  Reset update should not return, if it returns, it means the system does\r
-  not support capsule update.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-EnterS3WithImmediateWake (\r
-  VOID\r
-  )\r
-{\r
-  AcpiPmControl (1);\r
-  ASSERT (FALSE);\r
-}\r
 \r
 /**\r
   This function causes a systemwide reset. The exact type of the reset is\r
-  defined by the EFI_GUID that follows the Null-terminated Unicode string passed\r
-  into ResetData. If the platform does not recognize the EFI_GUID in ResetData\r
-  the platform must pick a supported reset type to perform.The platform may\r
-  optionally log the parameters from any non-normal reset that occurs.\r
+  defined by the EFI_GUID that follows the Null-terminated Unicode string\r
+  passed into ResetData. If the platform does not recognize the EFI_GUID in\r
+  ResetData the platform must pick a supported reset type to perform.The\r
+  platform may optionally log the parameters from any non-normal reset that\r
+  occurs.\r
 \r
   @param[in]  DataSize   The size, in bytes, of ResetData.\r
   @param[in]  ResetData  The data buffer starts with a Null-terminated string,\r
@@ -147,11 +81,12 @@ ResetPlatformSpecific (
   @param[in] ResetType      The type of reset to perform.\r
   @param[in] ResetStatus    The status code for the reset.\r
   @param[in] DataSize       The size, in bytes, of ResetData.\r
-  @param[in] ResetData      For a ResetType of EfiResetCold, EfiResetWarm, or EfiResetShutdown\r
-                            the data buffer starts with a Null-terminated string, optionally\r
-                            followed by additional binary data. The string is a description\r
-                            that the caller may use to further indicate the reason for the\r
-                            system reset.\r
+  @param[in] ResetData      For a ResetType of EfiResetCold, EfiResetWarm, or\r
+                            EfiResetShutdown the data buffer starts with a\r
+                            Null-terminated string, optionally followed by\r
+                            additional binary data. The string is a description\r
+                            that the caller may use to further indicate the\r
+                            reason for the system reset.\r
 **/\r
 VOID\r
 EFIAPI\r
@@ -173,13 +108,13 @@ ResetSystem (
 \r
   case EfiResetShutdown:\r
     ResetShutdown ();\r
-    return;\r
+    break;\r
 \r
   case EfiResetPlatformSpecific:\r
     ResetPlatformSpecific (DataSize, ResetData);\r
-    return;\r
+    break;\r
 \r
   default:\r
-    return;\r
+    break;\r
   }\r
 }\r