1 /** @file
2   Definitions for data structures used in S3 resume.
3 
4 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
5 
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions
8 of the BSD License which accompanies this distribution.  The
9 full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11 
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 
15 **/
16 
17 #ifndef _ACPI_VARIABLE_COMPATIBILITY_H_
18 #define _ACPI_VARIABLE_COMPATIBILITY_H_
19 
20 #define EFI_ACPI_VARIABLE_COMPATIBILITY_GUID \
21   { \
22     0xc020489e, 0x6db2, 0x4ef2, {0x9a, 0xa5, 0xca, 0x6, 0xfc, 0x11, 0xd3, 0x6a } \
23   }
24 
25 #define ACPI_GLOBAL_VARIABLE  L"AcpiGlobalVariable"
26 
27 extern EFI_GUID gEfiAcpiVariableCompatiblityGuid;
28 
29 typedef struct {
30   BOOLEAN               APState;
31   BOOLEAN               S3BootPath;
32   EFI_PHYSICAL_ADDRESS  WakeUpBuffer;
33   EFI_PHYSICAL_ADDRESS  GdtrProfile;
34   EFI_PHYSICAL_ADDRESS  IdtrProfile;
35   EFI_PHYSICAL_ADDRESS  CpuPrivateData;
36   EFI_PHYSICAL_ADDRESS  StackAddress;
37   EFI_PHYSICAL_ADDRESS  MicrocodePointerBuffer;
38   EFI_PHYSICAL_ADDRESS  SmramBase;
39   EFI_PHYSICAL_ADDRESS  SmmStartImageBase;
40   UINT32                SmmStartImageSize;
41   UINT32                NumberOfCpus;
42 } ACPI_CPU_DATA_COMPATIBILITY;
43 
44 typedef struct {
45   //
46   // Acpi Related variables
47   //
48   EFI_PHYSICAL_ADDRESS  AcpiReservedMemoryBase;
49   UINT32                AcpiReservedMemorySize;
50   EFI_PHYSICAL_ADDRESS  S3ReservedLowMemoryBase;
51   EFI_PHYSICAL_ADDRESS  AcpiBootScriptTable;
52   EFI_PHYSICAL_ADDRESS  RuntimeScriptTableBase;
53   EFI_PHYSICAL_ADDRESS  AcpiFacsTable;
54   UINT64                SystemMemoryLength;
55   ACPI_CPU_DATA_COMPATIBILITY         AcpiCpuData;
56   //
57   // VGA OPROM to support Video Re-POST for Linux S3
58   //
59   EFI_PHYSICAL_ADDRESS  VideoOpromAddress;
60   UINT32                VideoOpromSize;
61 
62   //
63   // S3 Debug extension
64   //
65   EFI_PHYSICAL_ADDRESS  S3DebugBufferAddress;
66   EFI_PHYSICAL_ADDRESS  S3ResumeNvsEntryPoint;
67 } ACPI_VARIABLE_SET_COMPATIBILITY;
68 
69 #endif
70