]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg: Add Reset2 ppi definition.
authorStar Zeng <star.zeng@intel.com>
Mon, 11 May 2015 02:05:52 +0000 (02:05 +0000)
committerlzeng14 <lzeng14@Edk2>
Mon, 11 May 2015 02:05:52 +0000 (02:05 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17388 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Pi/PiPeiCis.h
MdePkg/Include/Ppi/Reset2.h [new file with mode: 0644]
MdePkg/Include/Uefi/UefiMultiPhase.h
MdePkg/Include/Uefi/UefiSpec.h
MdePkg/MdePkg.dec

index f5f07deba02e899afc94e96dfb080780b6e66aca..6e8c6d40c1d8dda4444a9515b66030635b8e67c4 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   PI PEI master include file. This file should match the PI spec.\r
 \r
-Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials are licensed and made available under \r
 the terms and conditions of the BSD License that accompanies this distribution.  \r
 The full text of the license may be found at\r
@@ -584,6 +584,30 @@ EFI_STATUS
   IN CONST EFI_PEI_SERVICES   **PeiServices\r
   );\r
 \r
+/**\r
+  Resets the entire platform.\r
+\r
+  @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 WatchdogData.\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. ResetData is only valid if ResetStatus is something\r
+                            other than EFI_SUCCESS unless the ResetType is EfiResetPlatformSpecific\r
+                            where a minimum amount of ResetData is always required.\r
+\r
+**/\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_PEI_RESET2_SYSTEM) (\r
+  IN EFI_RESET_TYPE     ResetType,\r
+  IN EFI_STATUS         ResetStatus,\r
+  IN UINTN              DataSize,\r
+  IN VOID               *ResetData OPTIONAL\r
+  );\r
+\r
 /**\r
   Find a file within a volume by its name.\r
 \r
@@ -903,6 +927,7 @@ struct _EFI_PEI_SERVICES {
   EFI_PEI_REGISTER_FOR_SHADOW     RegisterForShadow;\r
   EFI_PEI_FFS_FIND_SECTION_DATA3  FindSectionData3;\r
   EFI_PEI_FFS_GET_FILE_INFO2      FfsGetFileInfo2;\r
+  EFI_PEI_RESET2_SYSTEM           ResetSystem2;\r
 };\r
 \r
 \r
diff --git a/MdePkg/Include/Ppi/Reset2.h b/MdePkg/Include/Ppi/Reset2.h
new file mode 100644 (file)
index 0000000..8834ba8
--- /dev/null
@@ -0,0 +1,38 @@
+/** @file
+  This file declares Reset2 PPI used to reset the platform.
+
+  This PPI is installed by some platform- or chipset-specific PEIM that
+  abstracts the Reset Service to other agents.
+
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+  This program and the accompanying materials
+  are licensed and made available under the terms and conditions of the BSD License
+  which accompanies this distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+  @par Revision Reference:
+  This PPI is introduced in PI Version 1.4.
+
+**/
+
+#ifndef __RESET2_PPI_H__
+#define __RESET2_PPI_H__
+
+#define EFI_PEI_RESET2_PPI_GUID \
+  { \
+    0x6cc45765, 0xcce4, 0x42fd, {0xbc, 0x56, 0x1, 0x1a, 0xaa, 0xc6, 0xc9, 0xa8 } \
+  }
+
+///
+/// This PPI provides provide a simple reset service.
+///
+typedef struct _EFI_PEI_RESET2_PPI {
+  EFI_PEI_RESET2_SYSTEM ResetSystem;
+} EFI_PEI_RESET2_PPI;
+
+extern EFI_GUID gEfiPeiReset2PpiGuid;
+
+#endif
index 1a879c191de450c0fe6ac7a2882363401affebc4..9f1ef3ecb066311770fac271965540c3966c0677 100644 (file)
@@ -90,6 +90,39 @@ typedef enum {
   EfiMaxMemoryType\r
 } EFI_MEMORY_TYPE;\r
 \r
+///\r
+/// Enumeration of reset types.\r
+///\r
+typedef enum {\r
+  ///\r
+  /// Used to induce a system-wide reset. This sets all circuitry within the\r
+  /// system to its initial state.  This type of reset is asynchronous to system\r
+  /// operation and operates withgout regard to cycle boundaries.  EfiColdReset\r
+  /// is tantamount to a system power cycle.\r
+  ///\r
+  EfiResetCold,\r
+  ///\r
+  /// Used to induce a system-wide initialization. The processors are set to their\r
+  /// initial state, and pending cycles are not corrupted.  If the system does\r
+  /// not support this reset type, then an EfiResetCold must be performed.\r
+  ///\r
+  EfiResetWarm,\r
+  ///\r
+  /// Used to induce an entry into a power state equivalent to the ACPI G2/S5 or G3\r
+  /// state.  If the system does not support this reset type, then when the system\r
+  /// is rebooted, it should exhibit the EfiResetCold attributes.\r
+  ///\r
+  EfiResetShutdown,\r
+  ///\r
+  /// Used to induce a system-wide reset. The exact type of the reset is defined by\r
+  /// the EFI_GUID that follows the Null-terminated Unicode string passed into\r
+  /// ResetData. If the platform does not recognize the EFI_GUID in ResetData the\r
+  /// 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
+  ///\r
+  EfiResetPlatformSpecific\r
+} EFI_RESET_TYPE;\r
+\r
 ///\r
 /// Data structure that precedes all of the standard EFI table types.\r
 ///\r
index e2e3b5e636f4c7e7b54e91e7494abdd6f4db1859..93b4b7c766dd1291869dd7e0b897a8388d132310 100644 (file)
@@ -980,39 +980,6 @@ EFI_STATUS
   IN CHAR16                   *WatchdogData OPTIONAL\r
   );\r
 \r
-///\r
-/// Enumeration of reset types.\r
-///\r
-typedef enum {\r
-  ///\r
-  /// Used to induce a system-wide reset. This sets all circuitry within the \r
-  /// system to its initial state.  This type of reset is asynchronous to system\r
-  /// operation and operates withgout regard to cycle boundaries.  EfiColdReset \r
-  /// is tantamount to a system power cycle.\r
-  ///\r
-  EfiResetCold,\r
-  ///\r
-  /// Used to induce a system-wide initialization. The processors are set to their\r
-  /// initial state, and pending cycles are not corrupted.  If the system does \r
-  /// not support this reset type, then an EfiResetCold must be performed.\r
-  ///\r
-  EfiResetWarm,\r
-  ///\r
-  /// Used to induce an entry into a power state equivalent to the ACPI G2/S5 or G3\r
-  /// state.  If the system does not support this reset type, then when the system\r
-  /// is rebooted, it should exhibit the EfiResetCold attributes.\r
-  ///\r
-  EfiResetShutdown,\r
-  ///\r
-  /// Used to induce a system-wide reset. The exact type of the reset is defined by\r
-  /// the EFI_GUID that follows the Null-terminated Unicode string passed into\r
-  /// ResetData. If the platform does not recognize the EFI_GUID in ResetData the \r
-  /// 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
-  ///\r
-  EfiResetPlatformSpecific\r
-} EFI_RESET_TYPE;\r
-\r
 /**\r
   Resets the entire platform.\r
 \r
index 6a1af404d810b3a3854b29544506cd62f9ec150e..ed2593cb85e5b90faeab6fb36ca4a5dc4335054b 100644 (file)
   ## Keep name backwards compatible before PI Version 1.4\r
   gPeiCapsulePpiGuid                = { 0x3acf33ee, 0xd892, 0x40f4, { 0xa2, 0xfc, 0x38, 0x54, 0xd2, 0xe1, 0x32, 0x3d }}\r
 \r
+  ## Include/Ppi/Reset2.h\r
+  gEfiPeiReset2PpiGuid = { 0x6cc45765, 0xcce4, 0x42fd, {0xbc, 0x56, 0x1, 0x1a, 0xaa, 0xc6, 0xc9, 0xa8 } }\r
+\r
 [Protocols]\r
   ## Include/Protocol/Pcd.h\r
   gPcdProtocolGuid               = { 0x11B34006, 0xD85B, 0x4D0A, { 0xA2, 0x90, 0xD5, 0xA5, 0x71, 0x31, 0x0E, 0xF7 }}\r