]> git.proxmox.com Git - mirror_edk2.git/blame - QuarkPlatformPkg/Acpi/DxeSmm/AcpiSmm/AcpiSmmPlatform.h
QuarkPlatformPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / QuarkPlatformPkg / Acpi / DxeSmm / AcpiSmm / AcpiSmmPlatform.h
CommitLineData
b303605e
MK
1/** @file\r
2Header file for SMM S3 Handler Driver.\r
3\r
4Copyright (c) 2013-2015 Intel Corporation.\r
5\r
0eb3de2e 6SPDX-License-Identifier: BSD-2-Clause-Patent\r
b303605e
MK
7\r
8\r
9**/\r
10\r
11#ifndef _ACPI_SMM_DRIVER_H\r
12#define _ACPI_SMM_DRIVER_H\r
13//\r
14// Include files\r
15//\r
16//\r
17// Driver Consumed Protocol Prototypes\r
18//\r
19#include <Protocol/SmmSxDispatch2.h>\r
20#include <Protocol/SmmSwDispatch2.h>\r
21#include <Protocol/FirmwareVolume.h>\r
22#include <Protocol/GlobalNvsArea.h>\r
23#include <Protocol/PciRootBridgeIo.h>\r
24#include <Library/UefiDriverEntryPoint.h>\r
25#include <Protocol/Spi.h>\r
26#include <Library/IoLib.h>\r
27#include <Library/PciLib.h>\r
28#include <Library/PcdLib.h>\r
29#include <Library/LockBoxLib.h>\r
30#include <Library/DebugLib.h>\r
31#include <Library/BaseMemoryLib.h>\r
32#include <Library/UefiBootServicesTableLib.h>\r
33#include <Library/BaseLib.h>\r
34#include <Library/UefiRuntimeServicesTableLib.h>\r
35#include <Library/S3IoLib.h>\r
36#include <Library/S3BootScriptLib.h>\r
37#include <Guid/Acpi.h>\r
38#include <Guid/GlobalVariable.h>\r
39#include <Library/SmmServicesTableLib.h>\r
40#include <Guid/SmramMemoryReserve.h>\r
41#include <Library/ReportStatusCodeLib.h>\r
42#include <Library/HobLib.h>\r
43#include <QNCAccess.h>\r
44#include <Library/QNCAccessLib.h>\r
45#include <Library/IntelQNCLib.h>\r
46#include <Library/PlatformHelperLib.h>\r
47#include <Library/PlatformPcieHelperLib.h>\r
48#include "Platform.h"\r
49#include <IndustryStandard/Pci22.h>\r
50\r
51#define EFI_ACPI_ACPI_ENABLE 0xA0\r
52#define EFI_ACPI_ACPI_DISABLE 0xA1\r
53\r
54#define R_IOPORT_CMOS_STANDARD_INDEX 0x70\r
55#define R_IOPORT_CMOS_STANDARD_DATA 0x71\r
56#define RTC_ADDRESS_REGISTER_C 12\r
57#define RTC_ADDRESS_REGISTER_D 13\r
58\r
59#define PCI_DEVICE(Bus, Dev, Func) \\r
60 Bus, Dev, Func\r
61\r
62#define PCI_REG_MASK(Byte0, Byte1, Byte2, Byte3, Byte4, Byte5, Byte6, Byte7) \\r
63 Byte0, Byte1, Byte2, Byte3, Byte4, Byte5, Byte6, Byte7\r
64\r
65#define PCI_DEVICE_END 0xFF\r
66\r
67//\r
68// Related data structures definition\r
69//\r
70typedef struct _EFI_ACPI_SMM_DEV {\r
71\r
72 //\r
73 // Parent dispatch driver returned sleep handle\r
74 //\r
75 EFI_HANDLE S3SleepEntryHandle;\r
76\r
77 EFI_HANDLE S4SleepEntryHandle;\r
78\r
79 EFI_HANDLE S1SleepEntryHandle;\r
80\r
81 EFI_HANDLE S5SoftOffEntryHandle;\r
82\r
83 EFI_HANDLE EnableAcpiHandle;\r
84\r
85 EFI_HANDLE DisableAcpiHandle;\r
86\r
87 EFI_HANDLE PpCallbackHandle;\r
88\r
89 EFI_HANDLE MorCallbackHandle;\r
90\r
91 //\r
92 // QNC Power Management I/O register base\r
93 //\r
94 UINT32 QncPmBase;\r
95\r
96 //\r
97 // QNC General Purpose Event0 register base\r
98 //\r
99 UINT32 QncGpe0Base;\r
100\r
101 UINT32 BootScriptSaved;\r
102\r
103} EFI_ACPI_SMM_DEV;\r
104\r
105//\r
106// Prototypes\r
107//\r
108EFI_STATUS\r
109InitPlatformAcpiSmm (\r
110 IN EFI_HANDLE ImageHandle,\r
111 IN EFI_SYSTEM_TABLE *SystemTable,\r
112 IN OUT VOID *CommBuffer,\r
113 IN OUT UINTN *CommBufferSize\r
114 );\r
115\r
116EFI_STATUS\r
117SxSleepEntryCallBack (\r
118 IN EFI_HANDLE DispatchHandle,\r
119 IN CONST VOID *DispatchContext,\r
120\r
121 IN OUT VOID *CommBuffer,\r
122 IN OUT UINTN *CommBufferSize\r
123 );\r
124\r
125EFI_STATUS\r
126DisableAcpiCallback (\r
127 IN EFI_HANDLE DispatchHandle,\r
128 IN CONST VOID *DispatchContext,\r
129 IN OUT VOID *CommBuffer,\r
130 IN OUT UINTN *CommBufferSize\r
131 );\r
132\r
133EFI_STATUS\r
134EnableAcpiCallback (\r
135 IN EFI_HANDLE DispatchHandle,\r
136 IN CONST VOID *DispatchContext,\r
137 IN OUT VOID *CommBuffer,\r
138 IN OUT UINTN *CommBufferSize\r
139 );\r
140\r
141EFI_STATUS\r
142RegisterToDispatchDriver (\r
143 VOID\r
144 );\r
145\r
146EFI_STATUS\r
147GetAllQncPmBase (\r
148 IN EFI_SMM_SYSTEM_TABLE2 *Smst\r
149 );\r
150\r
151EFI_STATUS\r
152SaveRuntimeScriptTable (\r
153 IN EFI_SMM_SYSTEM_TABLE2 *Smst\r
154 );\r
155\r
156EFI_STATUS\r
157RestoreQncS3SwCallback (\r
158 IN EFI_HANDLE DispatchHandle,\r
159 IN CONST VOID *DispatchContext,\r
160 IN OUT VOID *CommBuffer,\r
161 IN OUT UINTN *CommBufferSize\r
162 );\r
163\r
164extern EFI_GUID gQncS3CodeInLockBoxGuid;\r
165extern EFI_GUID gQncS3ContextInLockBoxGuid;\r
166\r
167#endif\r