]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/PlatformSmm/SmmPlatform.h
Vlv2TbltDevicePkg: Remove directory assumptions from build scripts
[mirror_edk2.git] / Vlv2TbltDevicePkg / PlatformSmm / SmmPlatform.h
CommitLineData
3cbfba02
DW
1/*++\r
2\r
3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
4 \r\r
9dc8036d
MK
5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
6\r
3cbfba02
DW
7 \r\r
8\r
9Module Name:\r
10\r
11 SmmPlatform.h\r
12\r
13Abstract:\r
14\r
15 Header file for\r
16\r
17++*/\r
18\r
19#ifndef _PLATFORM_H\r
20#define _PLATFORM_H\r
21\r
22#include <PiSmm.h>\r
23\r
24\r
25\r
26#include <Protocol/SmmBase.h>\r
27#include <Protocol/FirmwareVolume.h>\r
28#include <Protocol/SmmPowerButtonDispatch.h>\r
29#include <Protocol/SmmSxDispatch.h>\r
30#include <Protocol/SmmSwDispatch.h>\r
31#include <Protocol/SmmSwDispatch2.h>\r
32#include <Protocol/SmmIchnDispatch.h>\r
33#include <Protocol/SmmAccess.h>\r
34#include <Protocol/SmmVariable.h>\r
35#include <Protocol/PciRootBridgeIo.h>\r
36#include <Protocol/LoadedImage.h>\r
37#include "Protocol/GlobalNvsArea.h"\r
38#include <Guid/AcpiVariableCompatibility.h>\r
39#include <Guid/SetupVariable.h>\r
40#include <Guid/EfiVpdData.h>\r
41#include <Guid/PciLanInfo.h>\r
42#include <IndustryStandard/Pci22.h>\r
43\r
44#include "PchAccess.h"\r
45#include "PlatformBaseAddresses.h"\r
46\r
47#include <Library/UefiBootServicesTableLib.h>\r
48#include <Library/S3BootScriptLib.h>\r
49#include <Library/IoLib.h>\r
50#include <Library/DebugLib.h>\r
51#include <Library/HobLib.h>\r
52#include <Library/BaseLib.h>\r
53#include <Library/BaseMemoryLib.h>\r
54#include <Library/DevicePathLib.h>\r
55#include <Library/PcdLib.h>\r
56#include <Library/PchPlatformLib.h>\r
57#include <Library/StallSmmLib.h>\r
58\r
59\r
60\r
61typedef struct {\r
62 UINT8 Register;\r
63 UINT8 Function;\r
64 UINT8 Device;\r
65 UINT8 Bus;\r
66 UINT32 ExtendedRegister;\r
67} SMM_PCI_IO_ADDRESS;\r
68\r
69typedef struct {\r
70 CHAR8 BoardAaNumber[7];\r
71 UINTN BoardFabNumber;\r
72} BOARD_AA_NUMBER_DECODE;\r
73\r
74//\r
75// BugBug -- Need to get these two values from acpi.h, but right now, they are\r
76// declared in platform-specific variants of this file, so no easy\r
77// way to pick-up the include file and work across platforms.\r
78// Need these definitions to go into a file like common\acpi.h.\r
79//\r
80#define ACPI_ENABLE 0xA0\r
81#define ACPI_DISABLE 0xA1\r
82\r
83#define APM_12_FUNCS 0x50\r
84#define SMI_SET_SMMVARIABLE_PROTOCOL 0x51 // this is used in Cpu\Pentium\Smm\Base\SmmBase.c\r
85\r
86#define SMI_CMD_GET_MSEG_STATUS 0x70\r
87#define SMI_CMD_UPDATE_MSEG_SIZE 0x71\r
88#define SMI_CMD_LOAD_STM 0x72\r
89#define SMI_CMD_UNLOAD_STM 0x73\r
90#define SMI_CMD_GET_SMRAM_RANGES 0x74\r
91\r
92\r
93#define PCAT_RTC_ADDRESS_REGISTER 0x74\r
94#define PCAT_RTC_DATA_REGISTER 0x75\r
95\r
96#define RTC_ADDRESS_SECOND 0x00\r
97#define RTC_ADDRESS_SECOND_ALARM 0x01\r
98#define RTC_ADDRESS_MINUTE 0x02\r
99#define RTC_ADDRESS_MINUTE_ALARM 0x03\r
100#define RTC_ADDRESS_HOUR 0x04\r
101#define RTC_ADDRESS_HOUR_ALARM 0x05\r
102\r
103#define RTC_ADDRESS_REGISTER_A 0x0A\r
104#define RTC_ADDRESS_REGISTER_B 0x0B\r
105#define RTC_ADDRESS_REGISTER_C 0x0C\r
106#define RTC_ADDRESS_REGISTER_D 0x0D\r
107\r
108#define B_RTC_ALARM_INT_ENABLE 0x20\r
109#define B_RTC_ALARM_INT_STATUS 0x20\r
110\r
111#define B_RTC_DATE_ALARM_MASK 0x3F\r
112\r
113#define PCAT_CMOS_2_ADDRESS_REGISTER 0x72\r
114#define PCAT_CMOS_2_DATA_REGISTER 0x73\r
115\r
116#define EC_C_PORT 0x66\r
117#define SMC_SMI_DISABLE 0xBC\r
118#define SMC_ENABLE_ACPI_MODE 0xAA // Enable ACPI mode\r
119\r
120#define IO_MISC 156\r
121\r
122\r
123#define MAXIMUM_NUMBER_OF_PSTATES 12\r
124#define ICH_SMM_DATA_PORT 0xB3\r
125\r
126#define EFI_IA32_PMG_CST_CONFIG 0x000000E2\r
127#define B_EFI_CST_CONTROL_LOCK BIT15\r
128#define B_EFI_IO_MWAIT_REDIRECTION_ENABLE BIT10\r
129#define EFI_IA32_PMG_IO_CAPTURE_ADDR 0x000000E4\r
130\r
131extern EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *mPciRootBridgeIo;\r
132\r
133//\r
134// Callback function prototypes\r
135//\r
136VOID\r
137EFIAPI\r
138PowerButtonCallback (\r
139 IN EFI_HANDLE DispatchHandle,\r
140 IN EFI_SMM_POWER_BUTTON_DISPATCH_CONTEXT *DispatchContext\r
141 );\r
142\r
143VOID\r
144S5SleepWakeOnLanCallBack (\r
145 IN EFI_HANDLE DispatchHandle,\r
146 IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext\r
147 );\r
148\r
149VOID\r
150EFIAPI\r
151S5SleepAcLossCallBack (\r
152 IN EFI_HANDLE DispatchHandle,\r
153 IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext\r
154 );\r
155\r
156\r
157VOID\r
158EFIAPI \r
159S4S5CallBack (\r
160 IN EFI_HANDLE DispatchHandle,\r
161 IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext\r
162 );\r
163\r
164VOID\r
165EFIAPI \r
166EnableAcpiCallback (\r
167 IN EFI_HANDLE DispatchHandle,\r
168 IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext\r
169 );\r
170\r
171VOID\r
172EFIAPI\r
173DisableAcpiCallback (\r
174 IN EFI_HANDLE DispatchHandle,\r
175 IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext\r
176 );\r
177\r
178VOID\r
179EFIAPI\r
180SmmReadyToBootCallback (\r
181 IN EFI_HANDLE DispatchHandle,\r
182 IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext\r
183 );\r
184\r
185VOID\r
186DummyTco1Callback (\r
187 IN EFI_HANDLE DispatchHandle,\r
188 IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext\r
189 );\r
190\r
191\r
192VOID\r
193PerrSerrCallback (\r
194 IN EFI_HANDLE DispatchHandle,\r
195 IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext\r
196 );\r
197\r
198VOID\r
199RiCallback (\r
200 IN EFI_HANDLE DispatchHandle,\r
201 IN EFI_SMM_ICHN_DISPATCH_CONTEXT *DispatchContext\r
202 );\r
203\r
204\r
205VOID\r
206SetAfterG3On (\r
207 BOOLEAN Enable\r
208 );\r
209\r
210VOID\r
211TurnOffVregUsb (\r
212 );\r
213\r
214VOID\r
215PStateSupportCallback (\r
216 IN EFI_HANDLE DispatchHandle,\r
217 IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext\r
218 );\r
219\r
220VOID\r
221PStateTransitionCallback (\r
222 IN EFI_HANDLE DispatchHandle,\r
223 IN EFI_SMM_SW_DISPATCH_CONTEXT *DispatchContext\r
224 );\r
225\r
226EFI_STATUS\r
227EFIAPI \r
228SxSleepEntryCallBack (\r
229 IN EFI_HANDLE DispatchHandle,\r
230 IN EFI_SMM_SX_DISPATCH_CONTEXT *DispatchContext\r
231 );\r
232\r
233EFI_STATUS\r
234SaveRuntimeScriptTable (\r
235 VOID\r
236 );\r
237\r
238\r
239#endif\r
240\r