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>
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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
 |