--- /dev/null
+/** @file\r
+ This PPI produces functions to interpret and execute the PI boot script table.\r
+ \r
+ This PPI is published by a PEIM and provides for the restoration of the platform's\r
+ configuration when resuming from the ACPI S3 power state. The ability to execute \r
+ the boot script may depend on the availability of other PPIs. For example, if \r
+ the boot script includes an SMBus command, this PEIM looks for the relevant PPI \r
+ that is able to execute that command. \r
+ \r
+ Copyright (c) 2010, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ @par Revision Reference:\r
+ This PPI is defined in UEFI Platform Initialization Specification 1.2 Volume 5: \r
+ Standards\r
+\r
+**/\r
+\r
+#ifndef __PEI_S3_RESUME_PPI_H__\r
+#define __PEI_S3_RESUME_PPI_H__\r
+\r
+///\r
+/// Global ID for EFI_PEI_S3_RESUME2_PPI\r
+///\r
+#define EFI_PEI_S3_RESUME2_PPI_GUID \\r
+ { \\r
+ 0x6D582DBC, 0xDB85, 0x4514, {0x8F, 0xCC, 0x5A, 0xDF, 0x62, 0x27, 0xB1, 0x47 } \\r
+ }\r
+\r
+///\r
+/// Forward declaration for EFI_PEI_S3_RESUME_PPI\r
+///\r
+typedef struct _EFI_PEI_S3_RESUME2_PPI EFI_PEI_S3_RESUME2_PPI;\r
+\r
+/**\r
+ Restores the platform to its preboot configuration for an S3 resume and\r
+ jumps to the OS waking vector.\r
+\r
+ This function will restore the platform to its pre-boot configuration that was \r
+ pre-stored in the boot script table and transfer control to OS waking vector.\r
+ Upon invocation, this function is responsible for locating the following \r
+ information before jumping to OS waking vector:\r
+ - ACPI tables\r
+ - boot script table\r
+ - any other information that it needs\r
+ \r
+ The S3RestoreConfig() function then executes the pre-stored boot script table \r
+ and transitions the platform to the pre-boot state. The boot script is recorded \r
+ during regular boot using the EFI_S3_SAVE_STATE_PROTOCOL.Write() and\r
+ EFI_S3_SMM_SAVE_STATE_PROTOCOL.Write() functions. Finally, this function \r
+ transfers control to the OS waking vector. If the OS supports only a real-mode \r
+ waking vector, this function will switch from flat mode to real mode before \r
+ jumping to the waking vector. If all platform pre-boot configurations are \r
+ successfully restored and all other necessary information is ready, this \r
+ function will never return and instead will directly jump to the OS waking \r
+ vector. If this function returns, it indicates that the attempt to resume \r
+ from the ACPI S3 sleep state failed. \r
+ \r
+ @param[in] This Pointer to this instance of the PEI_S3_RESUME_PPI\r
+\r
+ @retval EFI_ABORTED Execution of the S3 resume boot script table failed.\r
+ @retval EFI_NOT_FOUND Some necessary information that is used for the S3 \r
+ resume boot path could not be located.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG2)(\r
+ IN EFI_PEI_S3_RESUME2_PPI *This\r
+ );\r
+\r
+/**\r
+ EFI_PEI_S3_RESUME2_PPI accomplishes the firmware S3 resume boot\r
+ path and transfers control to OS.\r
+**/\r
+struct _EFI_PEI_S3_RESUME2_PPI {\r
+ ///\r
+ /// Restores the platform to its preboot configuration for an S3 resume and\r
+ /// jumps to the OS waking vector.\r
+ ///\r
+ EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG2 S3RestoreConfig2;\r
+};\r
+\r
+extern EFI_GUID gEfiPeiS3Resume2PpiGuid;\r
+\r
+#endif\r
## Include/Ppi/BlockIo.h\r
gEfiPeiVirtualBlockIoPpiGuid = { 0x695d8aa1, 0x42ee, 0x4c46, { 0x80, 0x5c, 0x6e, 0xa6, 0xbc, 0xe7, 0x99, 0xe3 }}\r
\r
- ## Include/Ppi/S3Resume.h\r
- gEfiPeiS3ResumePpiGuid = { 0x4426CCB2, 0xE684, 0x4a8a, { 0xae, 0x40, 0x20, 0xd4, 0xb0, 0x25, 0xb7, 0x10 }}\r
+ ## Include/Ppi/S3Resume2.h\r
+ gEfiPeiS3Resume2PpiGuid = { 0x6D582DBC, 0xDB85, 0x4514, {0x8F, 0xCC, 0x5A, 0xDF, 0x62, 0x27, 0xB1, 0x47 }}\r
\r
## Include/Ppi/ReportStatusCodeHandler.h\r
gEfiPeiRscHandlerPpiGuid = { 0x65d394, 0x9951, 0x4144, {0x82, 0xa3, 0xa, 0xfc, 0x85, 0x79, 0xc2, 0x51 }}\r