1 /** @file
2   ACPI 3.0 definitions from the ACPI Specification Revision 3.0 September 2, 2004
3 
4   Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
5 
6   SPDX-License-Identifier: BSD-2-Clause-Patent
7 
8 **/
9 
10 #ifndef _ACPI_3_0_H_
11 #define _ACPI_3_0_H_
12 
13 #include "IndustryStandard/Acpi.h"
14 
15 //
16 // Ensure proper structure formats
17 //
18 #pragma pack(1)
19 //
20 // ACPI Specification Revision
21 //
22 #define EFI_ACPI_3_0_REVISION 0x03  // BUGBUG: Not in spec yet.
23 //
24 // BUGBUG: OEM values need to be moved somewhere else, probably read from data hub
25 // and produced by a platform specific driver.
26 //
27 //
28 // ACPI 3.0 Generic Address Space definition
29 //
30 typedef struct {
31   UINT8   AddressSpaceId;
32   UINT8   RegisterBitWidth;
33   UINT8   RegisterBitOffset;
34   UINT8   AccessSize;
35   UINT64  Address;
36 } EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE;
37 
38 //
39 // Generic Address Space Address IDs
40 //
41 #define EFI_ACPI_3_0_SYSTEM_MEMORY              0
42 #define EFI_ACPI_3_0_SYSTEM_IO                  1
43 #define EFI_ACPI_3_0_PCI_CONFIGURATION_SPACE    2
44 #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER        3
45 #define EFI_ACPI_3_0_SMBUS                      4
46 #define EFI_ACPI_3_0_FUNCTIONAL_FIXED_HARDWARE  0x7F
47 
48 //
49 // Generic Address Space Access Sizes
50 //
51 #define EFI_ACPI_3_0_UNDEFINED  0
52 #define EFI_ACPI_3_0_BYTE       1
53 #define EFI_ACPI_3_0_WORD       2
54 #define EFI_ACPI_3_0_DWORD      3
55 #define EFI_ACPI_3_0_QWORD      4
56 
57 //
58 // ACPI 3.0 table structures
59 //
60 //
61 // Root System Description Pointer Structure
62 //
63 typedef struct {
64   UINT64  Signature;
65   UINT8   Checksum;
66   UINT8   OemId[6];
67   UINT8   Revision;
68   UINT32  RsdtAddress;
69   UINT32  Length;
70   UINT64  XsdtAddress;
71   UINT8   ExtendedChecksum;
72   UINT8   Reserved[3];
73 } EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
74 
75 //
76 // RSD_PTR Revision (as defined in ACPI 3.0 spec.)
77 //
78 #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02  // ACPISpec30 (Revision 3.0 September 2, 2004) says current value is 2
79 //
80 // Common table header, this prefaces all ACPI tables, including FACS, but
81 // excluding the RSD PTR structure
82 //
83 typedef struct {
84   UINT32  Signature;
85   UINT32  Length;
86 } EFI_ACPI_3_0_COMMON_HEADER;
87 
88 //
89 // Root System Description Table
90 // No definition needed as it is a common description table header followed by a
91 // variable number of UINT32 table pointers.
92 //
93 //
94 // RSDT Revision (as defined in ACPI 3.0 spec.)
95 //
96 #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
97 
98 //
99 // Extended System Description Table
100 // No definition needed as it is a common description table header followed by a
101 // variable number of UINT64 table pointers.
102 //
103 //
104 // XSDT Revision (as defined in ACPI 3.0 spec.)
105 //
106 #define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
107 
108 //
109 // Fixed ACPI Description Table Structure (FADT)
110 //
111 typedef struct {
112   EFI_ACPI_DESCRIPTION_HEADER             Header;
113   UINT32                                  FirmwareCtrl;
114   UINT32                                  Dsdt;
115   UINT8                                   Reserved0;
116   UINT8                                   PreferredPmProfile;
117   UINT16                                  SciInt;
118   UINT32                                  SmiCmd;
119   UINT8                                   AcpiEnable;
120   UINT8                                   AcpiDisable;
121   UINT8                                   S4BiosReq;
122   UINT8                                   PstateCnt;
123   UINT32                                  Pm1aEvtBlk;
124   UINT32                                  Pm1bEvtBlk;
125   UINT32                                  Pm1aCntBlk;
126   UINT32                                  Pm1bCntBlk;
127   UINT32                                  Pm2CntBlk;
128   UINT32                                  PmTmrBlk;
129   UINT32                                  Gpe0Blk;
130   UINT32                                  Gpe1Blk;
131   UINT8                                   Pm1EvtLen;
132   UINT8                                   Pm1CntLen;
133   UINT8                                   Pm2CntLen;
134   UINT8                                   PmTmrLen;
135   UINT8                                   Gpe0BlkLen;
136   UINT8                                   Gpe1BlkLen;
137   UINT8                                   Gpe1Base;
138   UINT8                                   CstCnt;
139   UINT16                                  PLvl2Lat;
140   UINT16                                  PLvl3Lat;
141   UINT16                                  FlushSize;
142   UINT16                                  FlushStride;
143   UINT8                                   DutyOffset;
144   UINT8                                   DutyWidth;
145   UINT8                                   DayAlrm;
146   UINT8                                   MonAlrm;
147   UINT8                                   Century;
148   UINT16                                  IaPcBootArch;
149   UINT8                                   Reserved1;
150   UINT32                                  Flags;
151   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  ResetReg;
152   UINT8                                   ResetValue;
153   UINT8                                   Reserved2[3];
154   UINT64                                  XFirmwareCtrl;
155   UINT64                                  XDsdt;
156   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm1aEvtBlk;
157   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm1bEvtBlk;
158   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm1aCntBlk;
159   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm1bCntBlk;
160   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm2CntBlk;
161   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPmTmrBlk;
162   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XGpe0Blk;
163   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XGpe1Blk;
164 } EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE;
165 
166 //
167 // FADT Version (as defined in ACPI 3.0 spec.)
168 //
169 #define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION  0x04
170 
171 //
172 // Fixed ACPI Description Table Preferred Power Management Profile
173 //
174 #define EFI_ACPI_3_0_PM_PROFILE_UNSPECIFIED         0
175 #define EFI_ACPI_3_0_PM_PROFILE_DESKTOP             1
176 #define EFI_ACPI_3_0_PM_PROFILE_MOBILE              2
177 #define EFI_ACPI_3_0_PM_PROFILE_WORKSTATION         3
178 #define EFI_ACPI_3_0_PM_PROFILE_ENTERPRISE_SERVER   4
179 #define EFI_ACPI_3_0_PM_PROFILE_SOHO_SERVER         5
180 #define EFI_ACPI_3_0_PM_PROFILE_APPLIANCE_PC        6
181 #define EFI_ACPI_3_0_PM_PROFILE_PERFORMANCE_SERVER  7
182 
183 //
184 // Fixed ACPI Description Table Boot Architecture Flags
185 // All other bits are reserved and must be set to 0.
186 //
187 #define EFI_ACPI_3_0_LEGACY_DEVICES    (1 << 0)
188 #define EFI_ACPI_3_0_8042              (1 << 1)
189 #define EFI_ACPI_3_0_VGA_NOT_PRESENT   (1 << 2)
190 #define EFI_ACPI_3_0_MSI_NOT_SUPPORTED (1 << 3)
191 //
192 // Fixed ACPI Description Table Fixed Feature Flags
193 // All other bits are reserved and must be set to 0.
194 //
195 #define EFI_ACPI_3_0_WBINVD                   (1 << 0)
196 #define EFI_ACPI_3_0_WBINVD_FLUSH             (1 << 1)
197 #define EFI_ACPI_3_0_PROC_C1                  (1 << 2)
198 #define EFI_ACPI_3_0_P_LVL2_UP                (1 << 3)
199 #define EFI_ACPI_3_0_PWR_BUTTON               (1 << 4)
200 #define EFI_ACPI_3_0_SLP_BUTTON               (1 << 5)
201 #define EFI_ACPI_3_0_FIX_RTC                  (1 << 6)
202 #define EFI_ACPI_3_0_RTC_S4                   (1 << 7)
203 #define EFI_ACPI_3_0_TMR_VAL_EXT              (1 << 8)
204 #define EFI_ACPI_3_0_DCK_CAP                  (1 << 9)
205 #define EFI_ACPI_3_0_RESET_REG_SUP            (1 << 10)
206 #define EFI_ACPI_3_0_SEALED_CASE              (1 << 11)
207 #define EFI_ACPI_3_0_HEADLESS                 (1 << 12)
208 #define EFI_ACPI_3_0_CPU_SW_SLP               (1 << 13)
209 #define EFI_ACPI_3_0_PCI_EXP_WAK              (1 << 14)
210 #define EFI_ACPI_3_0_USE_PLATFORM_CLOCK       (1 << 15)
211 #define EFI_ACPI_3_0_S4_RTC_STS_VALID         (1 << 16)
212 #define EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE  (1 << 17)
213 #define EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL (1 << 18)
214 #define EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE (1 << 19)
215 
216 //
217 // Firmware ACPI Control Structure
218 //
219 typedef struct {
220   UINT32  Signature;
221   UINT32  Length;
222   UINT32  HardwareSignature;
223   UINT32  FirmwareWakingVector;
224   UINT32  GlobalLock;
225   UINT32  Flags;
226   UINT64  XFirmwareWakingVector;
227   UINT8   Version;
228   UINT8   Reserved[31];
229 } EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
230 
231 //
232 // FACS Version (as defined in ACPI 3.0 spec.)
233 //
234 #define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION  0x01
235 
236 //
237 // Firmware Control Structure Feature Flags
238 // All other bits are reserved and must be set to 0.
239 //
240 #define EFI_ACPI_3_0_S4BIOS_F (1 << 0)
241 
242 //
243 // Differentiated System Description Table,
244 // Secondary System Description Table
245 // and Persistent System Description Table,
246 // no definition needed as they are common description table header followed by a
247 // definition block.
248 //
249 #define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION   0x02
250 #define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION        0x02
251 
252 //
253 // Multiple APIC Description Table header definition.  The rest of the table
254 // must be defined in a platform specific manner.
255 //
256 typedef struct {
257   EFI_ACPI_DESCRIPTION_HEADER Header;
258   UINT32                      LocalApicAddress;
259   UINT32                      Flags;
260 } EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
261 
262 //
263 // MADT Revision (as defined in ACPI 3.0 spec.)
264 //
265 #define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x02
266 
267 //
268 // Multiple APIC Flags
269 // All other bits are reserved and must be set to 0.
270 //
271 #define EFI_ACPI_3_0_PCAT_COMPAT  (1 << 0)
272 
273 //
274 // Multiple APIC Description Table APIC structure types
275 // All other values between 0x09 an 0xFF are reserved and
276 // will be ignored by OSPM.
277 //
278 #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC           0x00
279 #define EFI_ACPI_3_0_IO_APIC                        0x01
280 #define EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE      0x02
281 #define EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE  0x03
282 #define EFI_ACPI_3_0_LOCAL_APIC_NMI                 0x04
283 #define EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE    0x05
284 #define EFI_ACPI_3_0_IO_SAPIC                       0x06
285 #define EFI_ACPI_3_0_LOCAL_SAPIC                    0x07
286 #define EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES     0x08
287 
288 //
289 // APIC Structure Definitions
290 //
291 //
292 // Processor Local APIC Structure Definition
293 //
294 typedef struct {
295   UINT8   Type;
296   UINT8   Length;
297   UINT8   AcpiProcessorId;
298   UINT8   ApicId;
299   UINT32  Flags;
300 } EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
301 
302 //
303 // Local APIC Flags.  All other bits are reserved and must be 0.
304 //
305 #define EFI_ACPI_3_0_LOCAL_APIC_ENABLED (1 << 0)
306 
307 //
308 // IO APIC Structure
309 //
310 typedef struct {
311   UINT8   Type;
312   UINT8   Length;
313   UINT8   IoApicId;
314   UINT8   Reserved;
315   UINT32  IoApicAddress;
316   UINT32  GlobalSystemInterruptBase;
317 } EFI_ACPI_3_0_IO_APIC_STRUCTURE;
318 
319 //
320 // Interrupt Source Override Structure
321 //
322 typedef struct {
323   UINT8   Type;
324   UINT8   Length;
325   UINT8   Bus;
326   UINT8   Source;
327   UINT32  GlobalSystemInterrupt;
328   UINT16  Flags;
329 } EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
330 
331 //
332 // Platform Interrupt Sources Structure Definition
333 //
334 typedef struct {
335   UINT8   Type;
336   UINT8   Length;
337   UINT16  Flags;
338   UINT8   InterruptType;
339   UINT8   ProcessorId;
340   UINT8   ProcessorEid;
341   UINT8   IoSapicVector;
342   UINT32  GlobalSystemInterrupt;
343   UINT32  PlatformInterruptSourceFlags;
344   UINT8   CpeiProcessorOverride;
345   UINT8   Reserved[31];
346 } EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
347 
348 //
349 // MPS INTI flags.
350 // All other bits are reserved and must be set to 0.
351 //
352 #define EFI_ACPI_3_0_POLARITY      (3 << 0)
353 #define EFI_ACPI_3_0_TRIGGER_MODE  (3 << 2)
354 
355 //
356 // Non-Maskable Interrupt Source Structure
357 //
358 typedef struct {
359   UINT8   Type;
360   UINT8   Length;
361   UINT16  Flags;
362   UINT32  GlobalSystemInterrupt;
363 } EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
364 
365 //
366 // Local APIC NMI Structure
367 //
368 typedef struct {
369   UINT8   Type;
370   UINT8   Length;
371   UINT8   AcpiProcessorId;
372   UINT16  Flags;
373   UINT8   LocalApicLint;
374 } EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE;
375 
376 //
377 // Local APIC Address Override Structure
378 //
379 typedef struct {
380   UINT8   Type;
381   UINT8   Length;
382   UINT16  Reserved;
383   UINT64  LocalApicAddress;
384 } EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
385 
386 //
387 // IO SAPIC Structure
388 //
389 typedef struct {
390   UINT8   Type;
391   UINT8   Length;
392   UINT8   IoApicId;
393   UINT8   Reserved;
394   UINT32  GlobalSystemInterruptBase;
395   UINT64  IoSapicAddress;
396 } EFI_ACPI_3_0_IO_SAPIC_STRUCTURE;
397 
398 //
399 // Local SAPIC Structure
400 // This struct followed by a null-terminated ASCII string - ACPI Processor UID String
401 //
402 typedef struct {
403   UINT8   Type;
404   UINT8   Length;
405   UINT8   AcpiProcessorId;
406   UINT8   LocalSapicId;
407   UINT8   LocalSapicEid;
408   UINT8   Reserved[3];
409   UINT32  Flags;
410   UINT32  ACPIProcessorUIDValue;
411 } EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
412 
413 //
414 // Platform Interrupt Sources Structure
415 //
416 typedef struct {
417   UINT8   Type;
418   UINT8   Length;
419   UINT16  Flags;
420   UINT8   InterruptType;
421   UINT8   ProcessorId;
422   UINT8   ProcessorEid;
423   UINT8   IoSapicVector;
424   UINT32  GlobalSystemInterrupt;
425   UINT32  PlatformInterruptSourceFlags;
426 } EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
427 
428 //
429 // Platform Interrupt Source Flags.
430 // All other bits are reserved and must be set to 0.
431 //
432 #define EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE     (1 << 0)
433 
434 //
435 // Smart Battery Description Table (SBST)
436 //
437 typedef struct {
438   EFI_ACPI_DESCRIPTION_HEADER Header;
439   UINT32                      WarningEnergyLevel;
440   UINT32                      LowEnergyLevel;
441   UINT32                      CriticalEnergyLevel;
442 } EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE;
443 
444 //
445 // SBST Version (as defined in ACPI 3.0 spec.)
446 //
447 #define EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
448 
449 //
450 // Embedded Controller Boot Resources Table (ECDT)
451 // The table is followed by a null terminated ASCII string that contains
452 // a fully qualified reference to the name space object.
453 //
454 typedef struct {
455   EFI_ACPI_DESCRIPTION_HEADER             Header;
456   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  EcControl;
457   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  EcData;
458   UINT32                                  Uid;
459   UINT8                                   GpeBit;
460 } EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
461 
462 //
463 // ECDT Version (as defined in ACPI 3.0 spec.)
464 //
465 #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION  0x01
466 
467 //
468 // System Resource Affinity Table (SRAT.  The rest of the table
469 // must be defined in a platform specific manner.
470 //
471 typedef struct {
472   EFI_ACPI_DESCRIPTION_HEADER Header;
473   UINT32                      Reserved1;  // Must be set to 1
474   UINT64                      Reserved2;
475 } EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
476 
477 //
478 // SRAT Version (as defined in ACPI 3.0 spec.)
479 //
480 #define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION  0x02
481 
482 //
483 // SRAT structure types.
484 // All other values between 0x02 an 0xFF are reserved and
485 // will be ignored by OSPM.
486 //
487 #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY  0x00
488 #define EFI_ACPI_3_0_MEMORY_AFFINITY                      0x01
489 
490 //
491 // Processor Local APIC/SAPIC Affinity Structure Definition
492 //
493 typedef struct {
494   UINT8   Type;
495   UINT8   Length;
496   UINT8   ProximityDomain7To0;
497   UINT8   ApicId;
498   UINT32  Flags;
499   UINT8   LocalSapicEid;
500   UINT8   ProximityDomain31To8[3];
501   UINT8   Reserved[4];
502 } EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
503 
504 //
505 // Local APIC/SAPIC Flags.  All other bits are reserved and must be 0.
506 //
507 #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
508 
509 //
510 // Memory Affinity Structure Definition
511 //
512 typedef struct {
513   UINT8   Type;
514   UINT8   Length;
515   UINT32  ProximityDomain;
516   UINT16  Reserved1;
517   UINT32  AddressBaseLow;
518   UINT32  AddressBaseHigh;
519   UINT32  LengthLow;
520   UINT32  LengthHigh;
521   UINT32  Reserved2;
522   UINT32  Flags;
523   UINT64  Reserved3;
524 } EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE;
525 
526 //
527 // Memory Flags.  All other bits are reserved and must be 0.
528 //
529 #define EFI_ACPI_3_0_MEMORY_ENABLED       (1 << 0)
530 #define EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE (1 << 1)
531 #define EFI_ACPI_3_0_MEMORY_NONVOLATILE   (1 << 2)
532 
533 //
534 // System Locality Distance Information Table (SLIT).
535 // The rest of the table is a matrix.
536 //
537 typedef struct {
538   EFI_ACPI_DESCRIPTION_HEADER Header;
539   UINT64                      NumberOfSystemLocalities;
540 } EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
541 
542 //
543 // SLIT Version (as defined in ACPI 3.0 spec.)
544 //
545 #define EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION  0x01
546 
547 //
548 // Known table signatures
549 //
550 //
551 // "RSD PTR " Root System Description Pointer
552 //
553 #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE  0x2052545020445352ULL
554 
555 //
556 // "APIC" Multiple APIC Description Table
557 //
558 #define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE  0x43495041
559 
560 //
561 // "DSDT" Differentiated System Description Table
562 //
563 #define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  0x54445344
564 
565 //
566 // "ECDT" Embedded Controller Boot Resources Table
567 //
568 #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE 0x54444345
569 
570 //
571 // "FACP" Fixed ACPI Description Table
572 //
573 #define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE 0x50434146
574 
575 //
576 // "FACS" Firmware ACPI Control Structure
577 //
578 #define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE  0x53434146
579 
580 //
581 // "PSDT" Persistent System Description Table
582 //
583 #define EFI_ACPI_3_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  0x54445350
584 
585 //
586 // "RSDT" Root System Description Table
587 //
588 #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  0x54445352
589 
590 //
591 // "SBST" Smart Battery Specification Table
592 //
593 #define EFI_ACPI_3_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE  0x54534253
594 
595 //
596 // "SLIT" System Locality Information Table
597 //
598 #define EFI_ACPI_3_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE  0x54494C53
599 
600 //
601 // "SRAT" System Resource Affinity Table
602 //
603 #define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE 0x54415253
604 
605 //
606 // "SSDT" Secondary System Description Table
607 //
608 #define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445353
609 
610 //
611 // "XSDT" Extended System Description Table
612 //
613 #define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  0x54445358
614 
615 //
616 // "BOOT" MS Simple Boot Spec
617 //
618 #define EFI_ACPI_3_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE 0x544F4F42
619 
620 //
621 // "CPEP" Corrected Platform Error Polling Table
622 // See
623 //
624 #define EFI_ACPI_3_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE 0x50455043
625 
626 //
627 // "DBGP" MS Debug Port Spec
628 //
629 #define EFI_ACPI_3_0_DEBUG_PORT_TABLE_SIGNATURE 0x50474244
630 
631 //
632 // "ETDT" Event Timer Description Table
633 //
634 #define EFI_ACPI_3_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE  0x54445445
635 
636 //
637 // "HPET" IA-PC High Precision Event Timer Table
638 //
639 #define EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE 0x54455048
640 
641 //
642 // "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
643 //
644 #define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE  0x4746434D
645 
646 //
647 // "SPCR" Serial Port Console Redirection Table
648 //
649 #define EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE  0x52435053
650 
651 //
652 // "SPMI" Server Platform Management Interface Table
653 //
654 #define EFI_ACPI_3_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE 0x494D5053
655 
656 //
657 // "TCPA" Trusted Computing Platform Alliance Capabilities Table
658 //
659 #define EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE 0x41504354
660 
661 //
662 // "WDRT" Watchdog Resource Table
663 //
664 #define EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE 0x54524457
665 
666 #pragma pack()
667 
668 #endif
669