Vlv2DeviceRefCodePkg&Vlv2TbltDevicePkg:Add setup option of LPE Audio.
[mirror_edk2.git] / Vlv2TbltDevicePkg / Include / Protocol / GlobalNvsArea.h
1 /** @file
2
3 Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>
4
5
6 This program and the accompanying materials are licensed and made available under
7
8 the terms and conditions of the BSD License that accompanies this distribution.
9
10 The full text of the license may be found at
11
12 http://opensource.org/licenses/bsd-license.php.
13
14
15
16 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
17
18 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19
20
21
22
23
24 Module Name:
25
26 GlobalNvsArea.h
27
28 Abstract:
29
30 Definition of the global NVS area protocol. This protocol
31 publishes the address and format of a global ACPI NVS buffer used as a communications
32 buffer between SMM code and ASL code.
33 The format is derived from the ACPI reference code, version 0.95.
34
35 Note: Data structures defined in this protocol are not naturally aligned.
36
37 **/
38
39
40 #ifndef _GLOBAL_NVS_AREA_H_
41 #define _GLOBAL_NVS_AREA_H_
42
43 //
44 // Includes
45 //
46 #define GLOBAL_NVS_DEVICE_ENABLE 1
47 #define GLOBAL_NVS_DEVICE_DISABLE 0
48
49 //
50 // Forward reference for pure ANSI compatibility
51 //
52
53 //EFI_FORWARD_DECLARATION (EFI_GLOBAL_NVS_AREA_PROTOCOL);
54
55 //
56 // Global NVS Area Protocol GUID
57 //
58 #define EFI_GLOBAL_NVS_AREA_PROTOCOL_GUID \
59 { 0x74e1e48, 0x8132, 0x47a1, 0x8c, 0x2c, 0x3f, 0x14, 0xad, 0x9a, 0x66, 0xdc }
60
61 //
62 // Revision id - Added TPM related fields
63 //
64 #define GLOBAL_NVS_AREA_RIVISION_1 1
65
66 //
67 // Extern the GUID for protocol users.
68 //
69 extern EFI_GUID gEfiGlobalNvsAreaProtocolGuid;
70
71 //
72 // Global NVS Area definition
73 //
74 #pragma pack (1)
75 typedef struct {
76 //
77 // Miscellaneous Dynamic Values, the definitions below need to be matched
78 // GNVS definitions in Platform.ASL
79 //
80 UINT16 OperatingSystem; // 00
81 UINT8 SmiFunction; // 02 SMI function call via IO Trap
82 UINT8 SmiParameter0; // 03
83 UINT8 SmiParameter1; // 04
84 UINT8 SciFunction; // 05 SCI function call via _L00
85 UINT8 SciParameter0; // 06
86 UINT8 SciParameter1; // 07
87 UINT8 GlobalLock; // 08 Global lock function call
88 UINT8 LockParameter0; // 09
89 UINT8 LockParameter1; // 10
90 UINT32 Port80DebugValue; // 11
91 UINT8 LidState; // 15 Open = 1
92 UINT8 PowerState; // 16 AC = 1
93 UINT8 DebugState; // 17
94
95
96 //
97 // Thermal Policy Values
98 //
99 UINT8 EnableThermalOffset; // 18 ThermalOffset for KSC
100 UINT8 Reserved1; // 19
101 UINT8 Reserved2; // 20
102 UINT8 PassiveThermalTripPoint; // 21
103 UINT8 PassiveTc1Value; // 22
104 UINT8 PassiveTc2Value; // 23
105 UINT8 PassiveTspValue; // 24
106 UINT8 CriticalThermalTripPoint; // 25
107 UINT8 EnableDigitalThermalSensor; // 26
108 UINT8 BspDigitalThermalSensorTemperature; // 27 Temperature of BSP
109 UINT8 ApDigitalThermalSensorTemperature; // 28 Temperature of AP
110 UINT8 DigitalThermalSensorSmiFunction; // 29 SMI function call via DTS IO Trap
111
112 //
113 // Battery Support Values
114 //
115 UINT8 NumberOfBatteries; // 30
116 UINT8 BatteryCapacity0; // 31 Battery 0 Stored Capacity
117 UINT8 BatteryCapacity1; // 32 Battery 1 Stored Capacity
118 UINT8 BatteryCapacity2; // 33 Battery 2 Stored Capacity
119 UINT8 BatteryStatus0; // 34 Battery 0 Stored Status
120 UINT8 BatteryStatus1; // 35 Battery 1 Stored Status
121 UINT8 BatteryStatus2; // 36 Battery 2 Stored Status
122
123 // NOTE: Do NOT Change the Offset of Revision Field
124 UINT8 Revision; // 37 Revision of the structure EFI_GLOBAL_NVS_AREA
125 UINT8 Reserved3[2]; // 38:39
126
127 //
128 // Processor Configuration Values
129 //
130 UINT8 ApicEnable; // 40 APIC Enabled by SBIOS (APIC Enabled = 1)
131 UINT8 LogicalProcessorCount; // 41 Processor Count Enabled (MP Enabled != 0)
132 UINT8 CurentPdcState0; // 42 PDC settings, Processor 0
133 UINT8 CurentPdcState1; // 43 PDC settings, Processor 1
134 UINT8 MaximumPpcState; // 44 Maximum PPC state
135 UINT32 PpmFlags; // 45:48 PPM configuration flags, same as CFGD
136 UINT8 Reserved4[1]; // 49
137
138 //
139 // SIO Configuration Values
140 //
141 UINT8 DockedSioPresent; // 50 Dock SIO Present
142 UINT8 DockComA; // 51 COM A Port
143 UINT8 DockComB; // 52 COM B Port
144 UINT8 LptP; // 53 LPT Port
145 UINT8 DockFdc; // 54 FDC Port
146 UINT8 OnboardCom; // 55 Onboard COM Port
147 UINT8 OnboardComCir; // 56 Onboard COM CIR Port
148
149 UINT8 WPCN381U; // 57
150 UINT8 NPCE791x; // 58
151 UINT8 Reserved5[1]; // 59
152
153 //
154 // Internal Graphics Device Values
155 //
156 UINT8 IgdState; // 60 IGD State (Primary Display = 1)
157 UINT8 DisplayToggleList; // 61 Display Toggle List Selection
158 UINT8 CurrentDeviceList; // 62 Current Attached Device List
159 UINT8 PreviousDeviceList; // 63 Previous Attached Device List
160 UINT16 CurrentDisplayState; // 64 Current Display State
161 UINT16 NextDisplayState; // 66 Next Display State
162 UINT16 SetDisplayState; // 68 Set Display State
163 UINT8 NumberOfValidDeviceId; // 70 Number of Valid Device IDs
164 UINT32 DeviceId1; // 71 Device ID 1
165 UINT32 DeviceId2; // 75 Device ID 2
166 UINT32 DeviceId3; // 79 Device ID 3
167 UINT32 DeviceId4; // 83 Device ID 4
168 UINT32 DeviceId5; // 87 Device ID 5
169
170 UINT32 AKsv0; // 91:94 First four bytes of AKSV (manufacturing mode)
171 UINT8 AKsv1; // 95 Fifth byte of AKSV (manufacturing mode
172
173 UINT8 Reserved6[7]; // 96:102
174
175 //
176 // Backlight Control Values
177 //
178 UINT8 BacklightControlSupport; // 103 Backlight Control Support
179 UINT8 BrightnessPercentage; // 104 Brightness Level Percentage
180
181 //
182 // Ambient Light Sensor Values
183 //
184 UINT8 AlsEnable; // 105 Ambient Light Sensor Enable
185 UINT8 AlsAdjustmentFactor; // 106 Ambient Light Adjusment Factor
186 UINT8 LuxLowValue; // 107 LUX Low Value
187 UINT8 LuxHighValue; // 108 LUX High Value
188
189 UINT8 Reserved7[1]; // 109
190
191 //
192 // Extended Mobile Access Values
193 //
194 UINT8 EmaEnable; // 110 EMA Enable
195 UINT16 EmaPointer; // 111 EMA Pointer
196 UINT16 EmaLength; // 113 EMA Length
197
198 UINT8 Reserved8[1]; // 115
199
200 //
201 // Mobile East Fork Values
202 //
203 UINT8 MefEnable; // 116 Mobile East Fork Enable
204
205 //
206 // PCIe Dock Status
207 //
208 UINT8 PcieDockStatus; // 117 PCIe Dock Status
209
210 UINT8 Reserved9[2]; // 118:119
211
212 //
213 // TPM Registers
214 //
215 UINT8 TpmPresent; // 120 TPM Present
216 UINT8 TpmEnable; // 121 TPM Enable
217
218 UINT8 MorData; // 122 Memory Overwrite Request Data
219 UINT8 TcgParamter; // 123 Used for save the Mor and/or physical presence paramter
220 UINT32 PPResponse; // 124 Physical Presence request operation response
221 UINT8 PPRequest; // 128 Physical Presence request operation
222 UINT8 LastPPRequest; // 129 Last Physical Presence request operation
223
224 //
225 // SATA Values
226 //
227 UINT8 GtfTaskFileBufferPort0[7]; // 130 GTF Task File Buffer for Port 0
228 UINT8 GtfTaskFileBufferPort2[7]; // 137 GTF Task File Buffer for Port 2
229 UINT8 IdeMode; // 144 IDE Mode (Compatible\Enhanced)
230 UINT8 GtfTaskFileBufferPort1[7]; // 145:151 GTF Task File Buffer for Port 1
231
232 UINT8 Reserved111[10]; // 152:161
233 UINT64 BootTimeLogAddress; // 162:169 Boot Time Log Table Address
234
235 UINT32 IgdOpRegionAddress; // 170 IGD OpRegion Starting Address
236 UINT8 IgdBootType; // 174 IGD Boot Type CMOS option
237 UINT8 IgdPanelType; // 175 IGD Panel Type CMOs option
238 UINT8 IgdTvFormat; // 176 IGD TV Format CMOS option
239 UINT8 IgdTvMinor; // 177 IGD TV Minor Format CMOS option
240 UINT8 IgdPanelScaling; // 178 IGD Panel Scaling
241 UINT8 IgdBlcConfig; // 179 IGD BLC Configuration
242 UINT8 IgdBiaConfig; // 180 IGD BIA Configuration
243 UINT8 IgdSscConfig; // 181 IGD SSC Configuration
244 UINT8 Igd409; // 182 IGD 0409 Modified Settings Flag
245 UINT8 Igd509; // 183 IGD 0509 Modified Settings Flag
246 UINT8 Igd609; // 184 IGD 0609 Modified Settings Flag
247 UINT8 Igd709; // 185 IGD 0709 Modified Settings Flag
248 UINT8 IgdPowerConservation; // 186 IGD Power Conservation Feature Flag
249 UINT8 IgdDvmtMemSize; // 187 IGD DVMT Memory Size
250 UINT8 IgdFunc1Enable; // 188 IGD Function 1 Enable
251 UINT8 IgdHpllVco; // 189 HPLL VCO
252 UINT32 NextStateDid1; // 190 Next state DID1 for _DGS
253 UINT32 NextStateDid2; // 194 Next state DID2 for _DGS
254 UINT32 NextStateDid3; // 198 Next state DID3 for _DGS
255 UINT32 NextStateDid4; // 202 Next state DID4 for _DGS
256 UINT32 NextStateDid5; // 206 Next state DID5 for _DGS
257 UINT32 NextStateDid6; // 210 Next state DID6 for _DGS
258 UINT32 NextStateDid7; // 214 Next state DID7 for _DGS
259 UINT32 NextStateDid8; // 218 Next state DID8 for _DGS
260 UINT8 IgdSciSmiMode; // 222 GMCH SMI/SCI mode (0=SCI)
261 UINT8 IgdPAVP; // 223 IGD PAVP data
262 UINT8 IgdSelfRefresh; // 224 IGD Self Refresh
263 UINT8 PcieOSCControl; // 225 PCIE OSC Control
264 UINT8 NativePCIESupport; // 226 Native PCI Express Support
265
266 //
267 // USB Sideband Deferring Support
268 //
269 UINT8 HostAlertVector; // 227 GPE vector used for HOST_ALERT
270 UINT8 HostAlertPio; // 228 PIO of USB device used for HOST_ALERT
271
272 UINT8 Reserved112[27]; // 229
273 UINT32 NvIgOpRegionAddress; // 256 NVIG support
274 UINT32 NvHmOpRegionAddress; // 260 NVHM support
275 UINT32 ApXmOpRegionAddress; // 264 AMDA support
276 UINT32 DeviceId6; // 268 Device ID 6
277 UINT32 DeviceId7; // 272 Device ID 7
278 UINT32 DeviceId8; // 276 Device ID 8
279 UINT32 EndpointBaseAddress; // 280 PEG Endpoint PCIe Base Address
280 UINT32 CapStrPresence; // 284 PEG Endpoint Capability Structure Presence
281 UINT32 EndpointPcieCapBaseAddress; // 288 PEG Endpoint PCIe Capability Structure Base Address
282 UINT32 EndpointVcCapBaseAddress; // 292 PEG Endpoint Virtual Channel Capability Structure Base Address
283 UINT32 XPcieCfgBaseAddress; // 296 Any Device's PCIe Config Space Base Address
284 UINT32 OccupiedBuses1; // 300 Occupied Buses from 0 to 31
285 UINT32 OccupiedBuses2; // 304 Occupied Buses from 32 to 63
286 UINT32 OccupiedBuses3; // 308 Occupied Buses from 64 to 95
287 UINT32 OccupiedBuses4; // 312 Occupied Buses from 96 to 127
288 UINT32 OccupiedBuses5; // 316 Occupied Buses from 128 to 159
289 UINT32 OccupiedBuses6; // 320 Occupied Buses from 160 to 191
290 UINT32 OccupiedBuses7; // 324 Occupied Buses from 192 to 223
291 UINT32 OccupiedBuses8; // 328 Occupied Buses from 224 to 255
292 UINT8 UartSelection; // 332 UART Interface Selection 0: Internal; 1: SIO
293 UINT8 PcuUart1Enable; // 333 PCU UART 1 Enabled
294 UINT8 PcuUart2Enable; // 334 PCU UART 2 Enabled
295
296 UINT32 LPEBar0; // 335~338 LPE Bar0
297 UINT32 LPEBar1; // 339~342 LPE Bar1
298
299 UINT32 LPEBar2; // 343~346 LPE Bar2
300 UINT8 AcSetup; // 347 For Ac Powered Config option - IST applet
301 UINT8 BatterySetup; // 348 For Battery Powered Config option - IST applet
302 UINT8 PlatformFlavor; // 349 0:unknown 1: Mobile; 2: desktop
303 UINT8 Reserved113[1]; // 350
304
305 UINT8 IsctReserve; // 351 ISCT / AOAC Configuration
306 UINT8 XhciMode; // 352 xHCI mode
307 UINT8 PmicEnable; // 353 PMIC enable
308
309 UINT8 LpeEnable; // 354 LPE enable
310 UINT32 ISPAddr; // 355 ISP Base address
311 UINT8 ISPDevSel; // 359 ISP device enabled selection 0: Disabled; 1: PCI Device 2; 2: PCI Device 3
312
313 //
314 // Lpss controllers
315 //
316 UINT32 PCIBottomAddress; //360 ((4+8+6)*4+2)*4=296
317 UINT32 PCITopAddress; //364
318
319 UINT32 LDMA1Addr; // 368
320 UINT32 LDMA1Len; // 372
321 UINT32 LDMA11Addr; // 376
322 UINT32 LDMA11Len; // 380
323 UINT32 PWM1Addr; // 384 PWM1
324 UINT32 PWM1Len; // 388
325 UINT32 PWM11Addr; // 392
326 UINT32 PWM11Len; // 396
327 UINT32 PWM2Addr; // 400 PWM2
328 UINT32 PWM2Len; // 404
329 UINT32 PWM21Addr; // 408
330 UINT32 PWM21Len; // 412
331 UINT32 UART1Addr; // 416 UART1
332 UINT32 UART1Len; // 420
333 UINT32 UART11Addr; // 424 UART1
334 UINT32 UART11Len; // 428
335 UINT32 UART2Addr; // 432 UART2
336 UINT32 UART2Len; // 436
337 UINT32 UART21Addr; // 440 UART2
338 UINT32 UART21Len; // 444
339 UINT32 SPIAddr; // 448 SPI
340 UINT32 SPILen; // 452
341 UINT32 SPI1Addr; // 456
342 UINT32 SPI1Len; // 460
343
344 UINT32 LDMA2Addr; // 464
345 UINT32 LDMA2Len; // 468
346 UINT32 LDMA21Addr; // 472
347 UINT32 LDMA21Len; // 476
348 UINT32 I2C1Addr; // 480 I2C1
349 UINT32 I2C1Len; // 484
350 UINT32 I2C11Addr; // 488 I2C1
351 UINT32 I2C11Len; // 492
352 UINT32 I2C2Addr; // 496 I2C2
353 UINT32 I2C2Len; // 500
354 UINT32 I2C21Addr; // 504 I2C2
355 UINT32 I2C21Len; // 508
356 UINT32 I2C3Addr; // 512 I2C3
357 UINT32 I2C3Len; // 516
358 UINT32 I2C31Addr; // 520 I2C3
359 UINT32 I2C31Len; // 524
360 UINT32 I2C4Addr; // 528 I2C4
361 UINT32 I2C4Len; // 532
362 UINT32 I2C41Addr; // 536 I2C4
363 UINT32 I2C41Len; // 540
364 UINT32 I2C5Addr; // 544 I2C5
365 UINT32 I2C5Len; // 548
366 UINT32 I2C51Addr; // 552 I2C5
367 UINT32 I2C51Len; // 556
368 UINT32 I2C6Addr; // 560 I2C6
369 UINT32 I2C6Len; // 564
370 UINT32 I2C61Addr; // 566 I2C6
371 UINT32 I2C61Len; // 570
372 UINT32 I2C7Addr; // 574 I2C7
373 UINT32 I2C7Len; // 578
374 UINT32 I2C71Addr; // 582 I2C7
375 UINT32 I2C71Len; // 586
376
377 //
378 // Scc controllers
379 //
380 UINT32 eMMCAddr; // 590 EMMC
381 UINT32 eMMCLen; // 594
382 UINT32 eMMC1Addr; // 598
383 UINT32 eMMC1Len; // 602
384 UINT32 SDIOAddr; // 606 SDIO
385 UINT32 SDIOLen; // 610
386 UINT32 SDIO1Addr; // 614
387 UINT32 SDIO1Len; // 618
388 UINT32 SDCardAddr; // 622 SDCard
389 UINT32 SDCardLen; // 626
390 UINT32 SDCard1Addr; // 630
391 UINT32 SDCard1Len; // 636
392 UINT32 MipiHsiAddr; // 640 MIPI-HSI
393 UINT32 MipiHsiLen; // 644
394 UINT32 MipiHsi1Addr; // 648
395 UINT32 MipiHsi1Len; // 652
396
397 UINT8 SdCardRemovable; // 656 reserve offset upto 658
398 UINT8 HideLPSSDevices; // 657 Hide unsupported LPSS devices when in ACPI mode
399 UINT8 ReservedO; // 658 OS Selection
400 UINT8 Reserved00; // 659
401 UINT8 Reserved01; // 660
402 UINT8 Reserved02; // 661
403 UINT8 Reserved03; // 662
404 UINT8 Reserved04; // 663
405 UINT8 Reserved05; // 664
406 UINT8 Reserved06; // 665
407 UINT8 Reserved07; // 666
408 UINT8 Reserved08; // 667
409 UINT8 Reserved09; // 668
410 UINT8 Reserved0A; // 669
411 UINT32 Reserved0B; // 670
412 UINT32 Reserved0C; // 674
413 UINT32 Reserved0D; // 678
414 UINT32 Reserved0E; // 682
415 UINT32 Reserved0F; // 686
416 UINT32 Reserved10; // 690
417 UINT32 Reserved11; // 694
418 UINT32 Reserved12; // 698
419 UINT32 Reserved13; // 702
420 UINT32 Reserved14; // 706
421 UINT32 Reserved15; // 710
422 UINT32 Reserved16; // 714
423 UINT8 Reserved17;
424 UINT32 Reserved18;
425 UINT32 Reserved19;
426 UINT32 Reserved1A;
427 UINT32 Reserved1B;
428 UINT32 Reserved1C;
429 UINT8 Reserved1D;
430 UINT32 Reserved1E;
431 UINT32 Reserved1F;
432 UINT32 Reserved20;
433 UINT32 Reserved21;
434 UINT32 Reserved22;
435 UINT8 Reserved23;
436 UINT8 BatteryChargingSolution; // 761 0-non ULPMC 1-ULPMC
437
438 //
439 //101 bytes
440 //
441 UINT8 NFCnSelect; // 762 NFCx Select 1: NFC1 2:NFC2
442 UINT8 LpssSccMode; // 763 EMMC device 0-ACPI mode, 1-PCI mode
443
444 UINT32 TPMAddress; // 764
445 UINT32 TPMLength; // 768
446
447 UINT8 I2CTouchAddress; // 772 I2C touch address, 0x4B:RVP 0x4A:FFRD
448 UINT8 IdleReserve; // 773 0 - disabled 1 - enabled
449 UINT8 SDIOMode; // 774 3 - Default 2 - DDR50
450 UINT8 emmcVersion; // 775 0 - 4.41 1 - 4.5
451 UINT32 BmBound; // 776 BM Bound
452 UINT8 FsaStatus; // 780 0 - Fsa is off, 1- Fsa is on
453
454 //
455 // Board Id
456 // This field is for the ASL code to know whether this board is Baylake or Bayley Bay etc
457 //
458 UINT8 BoardID; // 781
459 UINT8 FabID; // 782
460 UINT8 OtgMode; // 783 0- OTG disable 1- OTG PCI mode
461 UINT8 Stepping; // 784 Stepping
462 UINT8 WittEnable; // 785 WITT eanble 0 - disable 1 - enable
463
464 UINT8 SocStepping; // 786 Soc Stepping infomation
465 UINT8 AmbientTripPointChange; // 787 DPTF: Controls whether _ATI changes other participant's trip point(enabled/disabled)
466 UINT8 UtsEnable; // 788 Uart Test eanble 0 - disable 1 - enable
467 UINT8 DptfReserve; // 789
468
469 UINT8 SarEnable; // 790
470 UINT8 PssDeveice; // 791 PSS Deveice: 0 - None, 1 - Monzax 2K, 2 - Monzax 8K
471 UINT8 EDPV; // 792 Check for eDP display device
472 UINT32 DIDX; // 793 Device ID for eDP device
473 UINT8 MicrosoftIoT; // (794)JP1 pins are for Microsoft IoT project.
474 UINT8 RtcBattery; // (795) The Flag of RTC Battery Present.
475 UINT8 LpeAudioReportedByDSDT; // (796)
476 } EFI_GLOBAL_NVS_AREA;
477 #pragma pack ()
478
479 //
480 // Global NVS Area Protocol
481 //
482 typedef struct _EFI_GLOBAL_NVS_AREA_PROTOCOL {
483 EFI_GLOBAL_NVS_AREA *Area;
484 } EFI_GLOBAL_NVS_AREA_PROTOCOL;
485
486 #endif
487