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