Home | History | Annotate | Download | only in IndustryStandard
      1 /** @file
      2   ACPI 2.0 definitions from the ACPI Specification, revision 2.0
      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_2_0_H_
     15 #define _ACPI_2_0_H_
     16 
     17 #include <IndustryStandard/Acpi10.h>
     18 
     19 //
     20 // Define for Desriptor
     21 //
     22 #define ACPI_LARGE_GENERIC_REGISTER_DESCRIPTOR_NAME          0x02
     23 
     24 #define ACPI_GENERIC_REGISTER_DESCRIPTOR          0x82
     25 
     26 //
     27 // Ensure proper structure formats
     28 //
     29 #pragma pack(1)
     30 
     31 ///
     32 /// Generic Register Descriptor
     33 ///
     34 typedef PACKED struct {
     35   ACPI_LARGE_RESOURCE_HEADER    Header;
     36   UINT8                         AddressSpaceId;
     37   UINT8                         RegisterBitWidth;
     38   UINT8                         RegisterBitOffset;
     39   UINT8                         AddressSize;
     40   UINT64                        RegisterAddress;
     41 } EFI_ACPI_GENERIC_REGISTER_DESCRIPTOR;
     42 
     43 #pragma pack()
     44 
     45 //
     46 // Ensure proper structure formats
     47 //
     48 #pragma pack(1)
     49 
     50 ///
     51 /// ACPI 2.0 Generic Address Space definition
     52 ///
     53 typedef struct {
     54   UINT8   AddressSpaceId;
     55   UINT8   RegisterBitWidth;
     56   UINT8   RegisterBitOffset;
     57   UINT8   Reserved;
     58   UINT64  Address;
     59 } EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE;
     60 
     61 //
     62 // Generic Address Space Address IDs
     63 //
     64 #define EFI_ACPI_2_0_SYSTEM_MEMORY              0
     65 #define EFI_ACPI_2_0_SYSTEM_IO                  1
     66 #define EFI_ACPI_2_0_PCI_CONFIGURATION_SPACE    2
     67 #define EFI_ACPI_2_0_EMBEDDED_CONTROLLER        3
     68 #define EFI_ACPI_2_0_SMBUS                      4
     69 #define EFI_ACPI_2_0_FUNCTIONAL_FIXED_HARDWARE  0x7F
     70 
     71 //
     72 // ACPI 2.0 table structures
     73 //
     74 
     75 ///
     76 /// Root System Description Pointer Structure
     77 ///
     78 typedef struct {
     79   UINT64  Signature;
     80   UINT8   Checksum;
     81   UINT8   OemId[6];
     82   UINT8   Revision;
     83   UINT32  RsdtAddress;
     84   UINT32  Length;
     85   UINT64  XsdtAddress;
     86   UINT8   ExtendedChecksum;
     87   UINT8   Reserved[3];
     88 } EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
     89 
     90 ///
     91 /// RSD_PTR Revision (as defined in ACPI 2.0 spec.)
     92 ///
     93 #define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02
     94 
     95 ///
     96 /// Common table header, this prefaces all ACPI tables, including FACS, but
     97 /// excluding the RSD PTR structure
     98 ///
     99 typedef struct {
    100   UINT32  Signature;
    101   UINT32  Length;
    102 } EFI_ACPI_2_0_COMMON_HEADER;
    103 
    104 //
    105 // Root System Description Table
    106 // No definition needed as it is a common description table header, the same with
    107 // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
    108 //
    109 
    110 ///
    111 /// RSDT Revision (as defined in ACPI 2.0 spec.)
    112 ///
    113 #define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
    114 
    115 //
    116 // Extended System Description Table
    117 // No definition needed as it is a common description table header, the same with
    118 // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
    119 //
    120 
    121 ///
    122 /// XSDT Revision (as defined in ACPI 2.0 spec.)
    123 ///
    124 #define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
    125 
    126 ///
    127 /// Fixed ACPI Description Table Structure (FADT)
    128 ///
    129 typedef struct {
    130   EFI_ACPI_DESCRIPTION_HEADER             Header;
    131   UINT32                                  FirmwareCtrl;
    132   UINT32                                  Dsdt;
    133   UINT8                                   Reserved0;
    134   UINT8                                   PreferredPmProfile;
    135   UINT16                                  SciInt;
    136   UINT32                                  SmiCmd;
    137   UINT8                                   AcpiEnable;
    138   UINT8                                   AcpiDisable;
    139   UINT8                                   S4BiosReq;
    140   UINT8                                   PstateCnt;
    141   UINT32                                  Pm1aEvtBlk;
    142   UINT32                                  Pm1bEvtBlk;
    143   UINT32                                  Pm1aCntBlk;
    144   UINT32                                  Pm1bCntBlk;
    145   UINT32                                  Pm2CntBlk;
    146   UINT32                                  PmTmrBlk;
    147   UINT32                                  Gpe0Blk;
    148   UINT32                                  Gpe1Blk;
    149   UINT8                                   Pm1EvtLen;
    150   UINT8                                   Pm1CntLen;
    151   UINT8                                   Pm2CntLen;
    152   UINT8                                   PmTmrLen;
    153   UINT8                                   Gpe0BlkLen;
    154   UINT8                                   Gpe1BlkLen;
    155   UINT8                                   Gpe1Base;
    156   UINT8                                   CstCnt;
    157   UINT16                                  PLvl2Lat;
    158   UINT16                                  PLvl3Lat;
    159   UINT16                                  FlushSize;
    160   UINT16                                  FlushStride;
    161   UINT8                                   DutyOffset;
    162   UINT8                                   DutyWidth;
    163   UINT8                                   DayAlrm;
    164   UINT8                                   MonAlrm;
    165   UINT8                                   Century;
    166   UINT16                                  IaPcBootArch;
    167   UINT8                                   Reserved1;
    168   UINT32                                  Flags;
    169   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  ResetReg;
    170   UINT8                                   ResetValue;
    171   UINT8                                   Reserved2[3];
    172   UINT64                                  XFirmwareCtrl;
    173   UINT64                                  XDsdt;
    174   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm1aEvtBlk;
    175   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm1bEvtBlk;
    176   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm1aCntBlk;
    177   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm1bCntBlk;
    178   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm2CntBlk;
    179   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPmTmrBlk;
    180   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XGpe0Blk;
    181   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XGpe1Blk;
    182 } EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE;
    183 
    184 ///
    185 /// FADT Version (as defined in ACPI 2.0 spec.)
    186 ///
    187 #define EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION  0x03
    188 
    189 //
    190 // Fixed ACPI Description Table Preferred Power Management Profile
    191 //
    192 #define EFI_ACPI_2_0_PM_PROFILE_UNSPECIFIED         0
    193 #define EFI_ACPI_2_0_PM_PROFILE_DESKTOP             1
    194 #define EFI_ACPI_2_0_PM_PROFILE_MOBILE              2
    195 #define EFI_ACPI_2_0_PM_PROFILE_WORKSTATION         3
    196 #define EFI_ACPI_2_0_PM_PROFILE_ENTERPRISE_SERVER   4
    197 #define EFI_ACPI_2_0_PM_PROFILE_SOHO_SERVER         5
    198 #define EFI_ACPI_2_0_PM_PROFILE_APPLIANCE_PC        6
    199 
    200 //
    201 // Fixed ACPI Description Table Boot Architecture Flags
    202 // All other bits are reserved and must be set to 0.
    203 //
    204 #define EFI_ACPI_2_0_LEGACY_DEVICES          BIT0
    205 #define EFI_ACPI_2_0_8042                    BIT1
    206 
    207 //
    208 // Fixed ACPI Description Table Fixed Feature Flags
    209 // All other bits are reserved and must be set to 0.
    210 //
    211 #define EFI_ACPI_2_0_WBINVD                  BIT0
    212 #define EFI_ACPI_2_0_WBINVD_FLUSH            BIT1
    213 #define EFI_ACPI_2_0_PROC_C1                 BIT2
    214 #define EFI_ACPI_2_0_P_LVL2_UP               BIT3
    215 #define EFI_ACPI_2_0_PWR_BUTTON              BIT4
    216 #define EFI_ACPI_2_0_SLP_BUTTON              BIT5
    217 #define EFI_ACPI_2_0_FIX_RTC                 BIT6
    218 #define EFI_ACPI_2_0_RTC_S4                  BIT7
    219 #define EFI_ACPI_2_0_TMR_VAL_EXT             BIT8
    220 #define EFI_ACPI_2_0_DCK_CAP                 BIT9
    221 #define EFI_ACPI_2_0_RESET_REG_SUP           BIT10
    222 #define EFI_ACPI_2_0_SEALED_CASE             BIT11
    223 #define EFI_ACPI_2_0_HEADLESS                BIT12
    224 #define EFI_ACPI_2_0_CPU_SW_SLP              BIT13
    225 
    226 ///
    227 /// Firmware ACPI Control Structure
    228 ///
    229 typedef struct {
    230   UINT32  Signature;
    231   UINT32  Length;
    232   UINT32  HardwareSignature;
    233   UINT32  FirmwareWakingVector;
    234   UINT32  GlobalLock;
    235   UINT32  Flags;
    236   UINT64  XFirmwareWakingVector;
    237   UINT8   Version;
    238   UINT8   Reserved[31];
    239 } EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
    240 
    241 ///
    242 /// FACS Version (as defined in ACPI 2.0 spec.)
    243 ///
    244 #define EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION  0x01
    245 
    246 ///
    247 /// Firmware Control Structure Feature Flags
    248 /// All other bits are reserved and must be set to 0.
    249 ///
    250 #define EFI_ACPI_2_0_S4BIOS_F        BIT0
    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_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
    261 
    262 ///
    263 /// MADT Revision (as defined in ACPI 2.0 spec.)
    264 ///
    265 #define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
    266 
    267 ///
    268 /// Multiple APIC Flags
    269 /// All other bits are reserved and must be set to 0.
    270 ///
    271 #define EFI_ACPI_2_0_PCAT_COMPAT          BIT0
    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_2_0_PROCESSOR_LOCAL_APIC           0x00
    279 #define EFI_ACPI_2_0_IO_APIC                        0x01
    280 #define EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE      0x02
    281 #define EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE  0x03
    282 #define EFI_ACPI_2_0_LOCAL_APIC_NMI                 0x04
    283 #define EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE    0x05
    284 #define EFI_ACPI_2_0_IO_SAPIC                       0x06
    285 #define EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC          0x07
    286 #define EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES     0x08
    287 
    288 //
    289 // APIC Structure Definitions
    290 //
    291 
    292 ///
    293 /// Processor Local APIC Structure Definition
    294 ///
    295 typedef struct {
    296   UINT8   Type;
    297   UINT8   Length;
    298   UINT8   AcpiProcessorId;
    299   UINT8   ApicId;
    300   UINT32  Flags;
    301 } EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
    302 
    303 ///
    304 /// Local APIC Flags.  All other bits are reserved and must be 0.
    305 ///
    306 #define EFI_ACPI_2_0_LOCAL_APIC_ENABLED         BIT0
    307 
    308 ///
    309 /// IO APIC Structure
    310 ///
    311 typedef struct {
    312   UINT8   Type;
    313   UINT8   Length;
    314   UINT8   IoApicId;
    315   UINT8   Reserved;
    316   UINT32  IoApicAddress;
    317   UINT32  GlobalSystemInterruptBase;
    318 } EFI_ACPI_2_0_IO_APIC_STRUCTURE;
    319 
    320 ///
    321 /// Interrupt Source Override Structure
    322 ///
    323 typedef struct {
    324   UINT8   Type;
    325   UINT8   Length;
    326   UINT8   Bus;
    327   UINT8   Source;
    328   UINT32  GlobalSystemInterrupt;
    329   UINT16  Flags;
    330 } EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
    331 
    332 ///
    333 /// Non-Maskable Interrupt Source Structure
    334 ///
    335 typedef struct {
    336   UINT8   Type;
    337   UINT8   Length;
    338   UINT16  Flags;
    339   UINT32  GlobalSystemInterrupt;
    340 } EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
    341 
    342 ///
    343 /// Local APIC NMI Structure
    344 ///
    345 typedef struct {
    346   UINT8   Type;
    347   UINT8   Length;
    348   UINT8   AcpiProcessorId;
    349   UINT16  Flags;
    350   UINT8   LocalApicLint;
    351 } EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE;
    352 
    353 ///
    354 /// Local APIC Address Override Structure
    355 ///
    356 typedef struct {
    357   UINT8   Type;
    358   UINT8   Length;
    359   UINT16  Reserved;
    360   UINT64  LocalApicAddress;
    361 } EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
    362 
    363 ///
    364 /// IO SAPIC Structure
    365 ///
    366 typedef struct {
    367   UINT8   Type;
    368   UINT8   Length;
    369   UINT8   IoApicId;
    370   UINT8   Reserved;
    371   UINT32  GlobalSystemInterruptBase;
    372   UINT64  IoSapicAddress;
    373 } EFI_ACPI_2_0_IO_SAPIC_STRUCTURE;
    374 
    375 ///
    376 /// Local SAPIC Structure
    377 ///
    378 typedef struct {
    379   UINT8   Type;
    380   UINT8   Length;
    381   UINT8   AcpiProcessorId;
    382   UINT8   LocalSapicId;
    383   UINT8   LocalSapicEid;
    384   UINT8   Reserved[3];
    385   UINT32  Flags;
    386 } EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
    387 
    388 ///
    389 /// Platform Interrupt Sources Structure
    390 ///
    391 typedef struct {
    392   UINT8   Type;
    393   UINT8   Length;
    394   UINT16  Flags;
    395   UINT8   InterruptType;
    396   UINT8   ProcessorId;
    397   UINT8   ProcessorEid;
    398   UINT8   IoSapicVector;
    399   UINT32  GlobalSystemInterrupt;
    400   UINT32  Reserved;
    401 } EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
    402 
    403 ///
    404 /// Smart Battery Description Table (SBST)
    405 ///
    406 typedef struct {
    407   EFI_ACPI_DESCRIPTION_HEADER Header;
    408   UINT32                      WarningEnergyLevel;
    409   UINT32                      LowEnergyLevel;
    410   UINT32                      CriticalEnergyLevel;
    411 } EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE;
    412 
    413 ///
    414 /// SBST Version (as defined in ACPI 2.0 spec.)
    415 ///
    416 #define EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
    417 
    418 ///
    419 /// Embedded Controller Boot Resources Table (ECDT)
    420 /// The table is followed by a null terminated ASCII string that contains
    421 /// a fully qualified reference to the name space object.
    422 ///
    423 typedef struct {
    424   EFI_ACPI_DESCRIPTION_HEADER             Header;
    425   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  EcControl;
    426   EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  EcData;
    427   UINT32                                  Uid;
    428   UINT8                                   GpeBit;
    429 } EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
    430 
    431 ///
    432 /// ECDT Version (as defined in ACPI 2.0 spec.)
    433 ///
    434 #define EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION  0x01
    435 
    436 //
    437 // Known table signatures
    438 //
    439 
    440 ///
    441 /// "RSD PTR " Root System Description Pointer
    442 ///
    443 #define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE  SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
    444 
    445 ///
    446 /// "SPIC" Multiple SAPIC Description Table
    447 ///
    448 /// BUGBUG: Don't know where this came from except SR870BN4 uses it.
    449 /// #define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE 0x43495053
    450 ///
    451 #define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('A', 'P', 'I', 'C')
    452 
    453 ///
    454 /// "BOOT" MS Simple Boot Spec
    455 ///
    456 #define EFI_ACPI_2_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE  SIGNATURE_32('B', 'O', 'O', 'T')
    457 
    458 ///
    459 /// "DBGP" MS Bebug Port Spec
    460 ///
    461 #define EFI_ACPI_2_0_DEBUG_PORT_TABLE_SIGNATURE  SIGNATURE_32('D', 'B', 'G', 'P')
    462 
    463 ///
    464 /// "DSDT" Differentiated System Description Table
    465 ///
    466 #define EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('D', 'S', 'D', 'T')
    467 
    468 ///
    469 /// "ECDT" Embedded Controller Boot Resources Table
    470 ///
    471 #define EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE  SIGNATURE_32('E', 'C', 'D', 'T')
    472 
    473 ///
    474 /// "ETDT" Event Timer Description Table
    475 ///
    476 #define EFI_ACPI_2_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('E', 'T', 'D', 'T')
    477 
    478 ///
    479 /// "FACS" Firmware ACPI Control Structure
    480 ///
    481 #define EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE  SIGNATURE_32('F', 'A', 'C', 'S')
    482 
    483 ///
    484 /// "FACP" Fixed ACPI Description Table
    485 ///
    486 #define EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('F', 'A', 'C', 'P')
    487 
    488 ///
    489 /// "APIC" Multiple APIC Description Table
    490 ///
    491 #define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('A', 'P', 'I', 'C')
    492 
    493 ///
    494 /// "PSDT" Persistent System Description Table
    495 ///
    496 #define EFI_ACPI_2_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('P', 'S', 'D', 'T')
    497 
    498 ///
    499 /// "RSDT" Root System Description Table
    500 ///
    501 #define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('R', 'S', 'D', 'T')
    502 
    503 ///
    504 /// "SBST" Smart Battery Specification Table
    505 ///
    506 #define EFI_ACPI_2_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE  SIGNATURE_32('S', 'B', 'S', 'T')
    507 
    508 ///
    509 /// "SLIT" System Locality Information Table
    510 ///
    511 #define EFI_ACPI_2_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE  SIGNATURE_32('S', 'L', 'I', 'T')
    512 
    513 ///
    514 /// "SPCR" Serial Port Concole Redirection Table
    515 ///
    516 #define EFI_ACPI_2_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE  SIGNATURE_32('S', 'P', 'C', 'R')
    517 
    518 ///
    519 /// "SRAT" Static Resource Affinity Table
    520 ///
    521 #define EFI_ACPI_2_0_STATIC_RESOURCE_AFFINITY_TABLE_SIGNATURE  SIGNATURE_32('S', 'R', 'A', 'T')
    522 
    523 ///
    524 /// "SSDT" Secondary System Description Table
    525 ///
    526 #define EFI_ACPI_2_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('S', 'S', 'D', 'T')
    527 
    528 ///
    529 /// "SPMI" Server Platform Management Interface Table
    530 ///
    531 #define EFI_ACPI_2_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_SIGNATURE  SIGNATURE_32('S', 'P', 'M', 'I')
    532 
    533 ///
    534 /// "XSDT" Extended System Description Table
    535 ///
    536 #define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('X', 'S', 'D', 'T')
    537 
    538 ///
    539 /// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
    540 ///
    541 #define EFI_ACPI_2_0_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_SIGNATURE  SIGNATURE_32('M', 'C', 'F', 'G')
    542 
    543 #pragma pack()
    544 
    545 #endif
    546