]>
Commit | Line | Data |
---|---|---|
202c9c8d | 1 | /** @file\r |
2 | This PPI produces functions to interpret and execute the PI boot script table.\r | |
3 | \r | |
4 | This PPI is published by a PEIM and provides for the restoration of the platform's\r | |
5 | configuration when resuming from the ACPI S3 power state. The ability to execute \r | |
6 | the boot script may depend on the availability of other PPIs. For example, if \r | |
7 | the boot script includes an SMBus command, this PEIM looks for the relevant PPI \r | |
8 | that is able to execute that command. \r | |
9 | \r | |
9df063a0 HT |
10 | Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r |
11 | This program and the accompanying materials\r | |
202c9c8d | 12 | are licensed and made available under the terms and conditions of the BSD License\r |
13 | which accompanies this distribution. The full text of the license may be found at\r | |
14 | http://opensource.org/licenses/bsd-license.php\r | |
15 | \r | |
16 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r | |
17 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r | |
18 | \r | |
19 | @par Revision Reference:\r | |
20 | This PPI is defined in UEFI Platform Initialization Specification 1.2 Volume 5: \r | |
21 | Standards\r | |
22 | \r | |
23 | **/\r | |
24 | \r | |
25 | #ifndef __PEI_S3_RESUME_PPI_H__\r | |
26 | #define __PEI_S3_RESUME_PPI_H__\r | |
27 | \r | |
28 | ///\r | |
29 | /// Global ID for EFI_PEI_S3_RESUME2_PPI\r | |
30 | ///\r | |
31 | #define EFI_PEI_S3_RESUME2_PPI_GUID \\r | |
32 | { \\r | |
33 | 0x6D582DBC, 0xDB85, 0x4514, {0x8F, 0xCC, 0x5A, 0xDF, 0x62, 0x27, 0xB1, 0x47 } \\r | |
34 | }\r | |
35 | \r | |
36 | ///\r | |
37 | /// Forward declaration for EFI_PEI_S3_RESUME_PPI\r | |
38 | ///\r | |
39 | typedef struct _EFI_PEI_S3_RESUME2_PPI EFI_PEI_S3_RESUME2_PPI;\r | |
40 | \r | |
41 | /**\r | |
42 | Restores the platform to its preboot configuration for an S3 resume and\r | |
43 | jumps to the OS waking vector.\r | |
44 | \r | |
45 | This function will restore the platform to its pre-boot configuration that was \r | |
46 | pre-stored in the boot script table and transfer control to OS waking vector.\r | |
47 | Upon invocation, this function is responsible for locating the following \r | |
48 | information before jumping to OS waking vector:\r | |
49 | - ACPI tables\r | |
50 | - boot script table\r | |
51 | - any other information that it needs\r | |
52 | \r | |
53 | The S3RestoreConfig() function then executes the pre-stored boot script table \r | |
54 | and transitions the platform to the pre-boot state. The boot script is recorded \r | |
55 | during regular boot using the EFI_S3_SAVE_STATE_PROTOCOL.Write() and\r | |
56 | EFI_S3_SMM_SAVE_STATE_PROTOCOL.Write() functions. Finally, this function \r | |
57 | transfers control to the OS waking vector. If the OS supports only a real-mode \r | |
58 | waking vector, this function will switch from flat mode to real mode before \r | |
59 | jumping to the waking vector. If all platform pre-boot configurations are \r | |
60 | successfully restored and all other necessary information is ready, this \r | |
61 | function will never return and instead will directly jump to the OS waking \r | |
62 | vector. If this function returns, it indicates that the attempt to resume \r | |
63 | from the ACPI S3 sleep state failed. \r | |
64 | \r | |
65 | @param[in] This Pointer to this instance of the PEI_S3_RESUME_PPI\r | |
66 | \r | |
67 | @retval EFI_ABORTED Execution of the S3 resume boot script table failed.\r | |
68 | @retval EFI_NOT_FOUND Some necessary information that is used for the S3 \r | |
69 | resume boot path could not be located.\r | |
70 | \r | |
71 | **/\r | |
72 | typedef\r | |
73 | EFI_STATUS\r | |
74 | (EFIAPI *EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG2)(\r | |
75 | IN EFI_PEI_S3_RESUME2_PPI *This\r | |
76 | );\r | |
77 | \r | |
78 | /**\r | |
79 | EFI_PEI_S3_RESUME2_PPI accomplishes the firmware S3 resume boot\r | |
80 | path and transfers control to OS.\r | |
81 | **/\r | |
82 | struct _EFI_PEI_S3_RESUME2_PPI {\r | |
83 | ///\r | |
84 | /// Restores the platform to its preboot configuration for an S3 resume and\r | |
85 | /// jumps to the OS waking vector.\r | |
86 | ///\r | |
87 | EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG2 S3RestoreConfig2;\r | |
88 | };\r | |
89 | \r | |
90 | extern EFI_GUID gEfiPeiS3Resume2PpiGuid;\r | |
91 | \r | |
92 | #endif\r |