mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-31 19:23:54 +01:00 
			
		
		
		
	This MpService2Ppi field in SMM_S3_RESUME_STATE is used to wakeup AP to do the CPU initialization during smm s3 boot when the execution mode of PEI and DXE are the same. Currently, in CpuS3.c of smm cpu driver, BSP doesn't need to wakeup AP anymore. The initialization for AP will be done in S3Resume.c before transfer to CpuS3.c of smm cpu driver. So we can remove the MpService2Ppi field in SMM_S3_RESUME_STATE. Signed-off-by: Dun Tan <dun.tan@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Definitions for data structures used in S3 resume.
 | |
| 
 | |
| Copyright (c) 2011 - 2024, 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    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
 |