audk/MdeModulePkg/Include/Guid/AcpiS3Context.h
Dun Tan b1955cddb2 MdeModulePkg: add MpService2Ppi field in SMM_S3_RESUME_STATE
Add MpService2Ppi field in SMM_S3_RESUME_STATE of
AcpiS3Context.h. It will be used to wakeup AP to do the CPU
initialization during smm s3 boot flow in following patches.
With this field, we can avoid sending InitSipiSipi to wakeup
AP.

Signed-off-by: Dun Tan <dun.tan@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
2023-09-08 06:19:34 +00:00

67 lines
1.9 KiB
C

/** @file
Definitions for data structures used in S3 resume.
Copyright (c) 2011 - 2023, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _ACPI_S3_DATA_H_
#define _ACPI_S3_DATA_H_
#include <Library/BaseLib.h>
#define SMM_S3_RESUME_SMM_32 SIGNATURE_64 ('S','M','M','S','3','_','3','2')
#define SMM_S3_RESUME_SMM_64 SIGNATURE_64 ('S','M','M','S','3','_','6','4')
#pragma pack(1)
typedef struct {
UINT64 Signature;
EFI_PHYSICAL_ADDRESS SmmS3ResumeEntryPoint;
EFI_PHYSICAL_ADDRESS SmmS3StackBase;
UINT64 SmmS3StackSize;
UINT64 SmmS3Cr0;
UINT64 SmmS3Cr3;
UINT64 SmmS3Cr4;
UINT16 ReturnCs;
EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
EFI_PHYSICAL_ADDRESS ReturnContext1;
EFI_PHYSICAL_ADDRESS ReturnContext2;
EFI_PHYSICAL_ADDRESS ReturnStackPointer;
EFI_PHYSICAL_ADDRESS MpService2Ppi;
EFI_PHYSICAL_ADDRESS Smst;
} SMM_S3_RESUME_STATE;
typedef struct {
EFI_PHYSICAL_ADDRESS AcpiFacsTable;
EFI_PHYSICAL_ADDRESS IdtrProfile;
EFI_PHYSICAL_ADDRESS S3NvsPageTableAddress;
EFI_PHYSICAL_ADDRESS BootScriptStackBase;
UINT64 BootScriptStackSize;
EFI_PHYSICAL_ADDRESS S3DebugBufferAddress;
} ACPI_S3_CONTEXT;
typedef struct {
UINT16 ReturnCs;
UINT64 ReturnStatus;
EFI_PHYSICAL_ADDRESS ReturnEntryPoint;
EFI_PHYSICAL_ADDRESS ReturnStackPointer;
EFI_PHYSICAL_ADDRESS AsmTransferControl;
IA32_DESCRIPTOR Idtr;
} PEI_S3_RESUME_STATE;
#pragma pack()
#define EFI_ACPI_S3_CONTEXT_GUID \
{ \
0xef98d3a, 0x3e33, 0x497a, {0xa4, 0x1, 0x77, 0xbe, 0x3e, 0xb7, 0x4f, 0x38} \
}
extern EFI_GUID gEfiAcpiS3ContextGuid;
extern EFI_GUID gEfiAcpiVariableGuid;
#endif