]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Ppi/S3Resume.h
IntelFrameworkPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / IntelFrameworkPkg / Include / Ppi / S3Resume.h
CommitLineData
42686f29 1/** @file\r
2 This file declares S3 Resume PPI which accomplishes the firmware S3 resume boot path\r
3 and transfers control to OS.\r
1c2f052d 4\r
42686f29 5 This PPI is published by the S3 resume PEIM and can be used on the S3 resume boot path to\r
6 restore the platform to its preboot configuration and transfer control to OS. The information that is\r
7 required for an S3 resume can be saved during the normal boot path using\r
8 EFI_ACPI_S3_SAVE_PROTOCOL. This presaved information can then be restored in the S3\r
9 resume boot path using EFI_PEI_S3_RESUME_PPI. Architecturally, the S3 resume PEIM is the\r
10 last PEIM to be dispatched in the S3 resume boot path.\r
f22f941e 11 Before using this PPI, the caller must ensure the necessary information for the S3 resume, such as\r
42686f29 12 the following, is available for the S3 resume boot path:\r
13 - EFI_ACPI_S3_RESUME_SCRIPT_TABLE script table. Type\r
14 EFI_ACPI_S3_RESUME_SCRIPT_TABLE is defined in the Intel Platform Innovation\r
15 Framework for EFI Boot Script Specification.\r
16 - OS waking vector.\r
17 - The reserved memory range to be used for the S3 resume.\r
18 Otherwise, the S3 resume boot path may fail.\r
1c2f052d
LG
19\r
20Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
22a69a5e 21SPDX-License-Identifier: BSD-2-Clause-Patent\r
42686f29 22\r
23 @par Revision Reference:\r
24 This PPI is defined in Framework for EFI S3 Resume Boot Path spec.\r
25 Version 0.9.\r
26\r
27**/\r
28\r
29#ifndef __PEI_S3_RESUME_PPI_H__\r
30#define __PEI_S3_RESUME_PPI_H__\r
31\r
32#define EFI_PEI_S3_RESUME_PPI_GUID \\r
33 { \\r
34 0x4426CCB2, 0xE684, 0x4a8a, {0xAE, 0x40, 0x20, 0xD4, 0xB0, 0x25, 0xB7, 0x10 } \\r
35 }\r
36\r
37typedef struct _EFI_PEI_S3_RESUME_PPI EFI_PEI_S3_RESUME_PPI;\r
38\r
39/**\r
40 Restores the platform to its preboot configuration for an S3 resume and\r
41 jumps to the OS waking vector.\r
42\r
f22f941e 43 @param PeiServices The pointer to the PEI Services Table\r
42686f29 44\r
45 @retval EFI_ABORTED Execution of the S3 resume boot script table failed.\r
1c2f052d 46 @retval EFI_NOT_FOUND Could not be locate some necessary information that\r
f22f941e 47 is used for the S3 resume boot path d.\r
42686f29 48\r
49**/\r
50typedef\r
51EFI_STATUS\r
52(EFIAPI *EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG)(\r
53 IN EFI_PEI_SERVICES **PeiServices\r
54 );\r
55\r
56/**\r
57 EFI_PEI_S3_RESUME_PPI accomplishes the firmware S3 resume boot\r
58 path and transfers control to OS.\r
59**/\r
60struct _EFI_PEI_S3_RESUME_PPI {\r
61 ///\r
62 /// Restores the platform to its preboot configuration for an S3 resume and\r
63 /// jumps to the OS waking vector.\r
64 ///\r
65 EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG S3RestoreConfig;\r
66};\r
67\r
68extern EFI_GUID gEfiPeiS3ResumePpiGuid;\r
69\r
70#endif\r