The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/edk2/Include/IndustryStandard/Acpi30.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 668235f91ae8bb093827e6056f83eb07


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.