13f0275a0SJung-uk Kim /****************************************************************************** 23f0275a0SJung-uk Kim * 33f0275a0SJung-uk Kim * Name: actbl3.h - ACPI Table Definitions 43f0275a0SJung-uk Kim * 53f0275a0SJung-uk Kim *****************************************************************************/ 63f0275a0SJung-uk Kim 70d84335fSJung-uk Kim /****************************************************************************** 80d84335fSJung-uk Kim * 90d84335fSJung-uk Kim * 1. Copyright Notice 100d84335fSJung-uk Kim * 11*58308fadSJung-uk Kim * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. 123f0275a0SJung-uk Kim * All rights reserved. 133f0275a0SJung-uk Kim * 140d84335fSJung-uk Kim * 2. License 150d84335fSJung-uk Kim * 160d84335fSJung-uk Kim * 2.1. This is your license from Intel Corp. under its intellectual property 170d84335fSJung-uk Kim * rights. You may have additional license terms from the party that provided 180d84335fSJung-uk Kim * you this software, covering your right to use that party's intellectual 190d84335fSJung-uk Kim * property rights. 200d84335fSJung-uk Kim * 210d84335fSJung-uk Kim * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 220d84335fSJung-uk Kim * copy of the source code appearing in this file ("Covered Code") an 230d84335fSJung-uk Kim * irrevocable, perpetual, worldwide license under Intel's copyrights in the 240d84335fSJung-uk Kim * base code distributed originally by Intel ("Original Intel Code") to copy, 250d84335fSJung-uk Kim * make derivatives, distribute, use and display any portion of the Covered 260d84335fSJung-uk Kim * Code in any form, with the right to sublicense such rights; and 270d84335fSJung-uk Kim * 280d84335fSJung-uk Kim * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 290d84335fSJung-uk Kim * license (with the right to sublicense), under only those claims of Intel 300d84335fSJung-uk Kim * patents that are infringed by the Original Intel Code, to make, use, sell, 310d84335fSJung-uk Kim * offer to sell, and import the Covered Code and derivative works thereof 320d84335fSJung-uk Kim * solely to the minimum extent necessary to exercise the above copyright 330d84335fSJung-uk Kim * license, and in no event shall the patent license extend to any additions 340d84335fSJung-uk Kim * to or modifications of the Original Intel Code. No other license or right 350d84335fSJung-uk Kim * is granted directly or by implication, estoppel or otherwise; 360d84335fSJung-uk Kim * 370d84335fSJung-uk Kim * The above copyright and patent license is granted only if the following 380d84335fSJung-uk Kim * conditions are met: 390d84335fSJung-uk Kim * 400d84335fSJung-uk Kim * 3. Conditions 410d84335fSJung-uk Kim * 420d84335fSJung-uk Kim * 3.1. Redistribution of Source with Rights to Further Distribute Source. 430d84335fSJung-uk Kim * Redistribution of source code of any substantial portion of the Covered 440d84335fSJung-uk Kim * Code or modification with rights to further distribute source must include 450d84335fSJung-uk Kim * the above Copyright Notice, the above License, this list of Conditions, 460d84335fSJung-uk Kim * and the following Disclaimer and Export Compliance provision. In addition, 470d84335fSJung-uk Kim * Licensee must cause all Covered Code to which Licensee contributes to 480d84335fSJung-uk Kim * contain a file documenting the changes Licensee made to create that Covered 490d84335fSJung-uk Kim * Code and the date of any change. Licensee must include in that file the 500d84335fSJung-uk Kim * documentation of any changes made by any predecessor Licensee. Licensee 510d84335fSJung-uk Kim * must include a prominent statement that the modification is derived, 520d84335fSJung-uk Kim * directly or indirectly, from Original Intel Code. 530d84335fSJung-uk Kim * 540d84335fSJung-uk Kim * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 550d84335fSJung-uk Kim * Redistribution of source code of any substantial portion of the Covered 560d84335fSJung-uk Kim * Code or modification without rights to further distribute source must 570d84335fSJung-uk Kim * include the following Disclaimer and Export Compliance provision in the 580d84335fSJung-uk Kim * documentation and/or other materials provided with distribution. In 590d84335fSJung-uk Kim * addition, Licensee may not authorize further sublicense of source of any 600d84335fSJung-uk Kim * portion of the Covered Code, and must include terms to the effect that the 610d84335fSJung-uk Kim * license from Licensee to its licensee is limited to the intellectual 620d84335fSJung-uk Kim * property embodied in the software Licensee provides to its licensee, and 630d84335fSJung-uk Kim * not to intellectual property embodied in modifications its licensee may 640d84335fSJung-uk Kim * make. 650d84335fSJung-uk Kim * 660d84335fSJung-uk Kim * 3.3. Redistribution of Executable. Redistribution in executable form of any 670d84335fSJung-uk Kim * substantial portion of the Covered Code or modification must reproduce the 680d84335fSJung-uk Kim * above Copyright Notice, and the following Disclaimer and Export Compliance 690d84335fSJung-uk Kim * provision in the documentation and/or other materials provided with the 700d84335fSJung-uk Kim * distribution. 710d84335fSJung-uk Kim * 720d84335fSJung-uk Kim * 3.4. Intel retains all right, title, and interest in and to the Original 730d84335fSJung-uk Kim * Intel Code. 740d84335fSJung-uk Kim * 750d84335fSJung-uk Kim * 3.5. Neither the name Intel nor any other trademark owned or controlled by 760d84335fSJung-uk Kim * Intel shall be used in advertising or otherwise to promote the sale, use or 770d84335fSJung-uk Kim * other dealings in products derived from or relating to the Covered Code 780d84335fSJung-uk Kim * without prior written authorization from Intel. 790d84335fSJung-uk Kim * 800d84335fSJung-uk Kim * 4. Disclaimer and Export Compliance 810d84335fSJung-uk Kim * 820d84335fSJung-uk Kim * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 830d84335fSJung-uk Kim * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 840d84335fSJung-uk Kim * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 850d84335fSJung-uk Kim * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 860d84335fSJung-uk Kim * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 870d84335fSJung-uk Kim * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 880d84335fSJung-uk Kim * PARTICULAR PURPOSE. 890d84335fSJung-uk Kim * 900d84335fSJung-uk Kim * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 910d84335fSJung-uk Kim * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 920d84335fSJung-uk Kim * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 930d84335fSJung-uk Kim * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 940d84335fSJung-uk Kim * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 950d84335fSJung-uk Kim * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 960d84335fSJung-uk Kim * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 970d84335fSJung-uk Kim * LIMITED REMEDY. 980d84335fSJung-uk Kim * 990d84335fSJung-uk Kim * 4.3. Licensee shall not export, either directly or indirectly, any of this 1000d84335fSJung-uk Kim * software or system incorporating such software without first obtaining any 1010d84335fSJung-uk Kim * required license or other approval from the U. S. Department of Commerce or 1020d84335fSJung-uk Kim * any other agency or department of the United States Government. In the 1030d84335fSJung-uk Kim * event Licensee exports any such software from the United States or 1040d84335fSJung-uk Kim * re-exports any such software from a foreign destination, Licensee shall 1050d84335fSJung-uk Kim * ensure that the distribution and export/re-export of the software is in 1060d84335fSJung-uk Kim * compliance with all laws, regulations, orders, or other restrictions of the 1070d84335fSJung-uk Kim * U.S. Export Administration Regulations. Licensee agrees that neither it nor 1080d84335fSJung-uk Kim * any of its subsidiaries will export/re-export any technical data, process, 1090d84335fSJung-uk Kim * software, or service, directly or indirectly, to any country for which the 1100d84335fSJung-uk Kim * United States government or any agency thereof requires an export license, 1110d84335fSJung-uk Kim * other governmental approval, or letter of assurance, without first obtaining 1120d84335fSJung-uk Kim * such license, approval or letter. 1130d84335fSJung-uk Kim * 1140d84335fSJung-uk Kim ***************************************************************************** 1150d84335fSJung-uk Kim * 1160d84335fSJung-uk Kim * Alternatively, you may choose to be licensed under the terms of the 1170d84335fSJung-uk Kim * following license: 1180d84335fSJung-uk Kim * 1193f0275a0SJung-uk Kim * Redistribution and use in source and binary forms, with or without 1203f0275a0SJung-uk Kim * modification, are permitted provided that the following conditions 1213f0275a0SJung-uk Kim * are met: 1223f0275a0SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 1233f0275a0SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 1243f0275a0SJung-uk Kim * without modification. 1253f0275a0SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1263f0275a0SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 1273f0275a0SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 1283f0275a0SJung-uk Kim * including a substantially similar Disclaimer requirement for further 1293f0275a0SJung-uk Kim * binary redistribution. 1303f0275a0SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 1313f0275a0SJung-uk Kim * of any contributors may be used to endorse or promote products derived 1323f0275a0SJung-uk Kim * from this software without specific prior written permission. 1333f0275a0SJung-uk Kim * 1340d84335fSJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1350d84335fSJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1360d84335fSJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1370d84335fSJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1380d84335fSJung-uk Kim * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1390d84335fSJung-uk Kim * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1400d84335fSJung-uk Kim * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1410d84335fSJung-uk Kim * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1420d84335fSJung-uk Kim * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1430d84335fSJung-uk Kim * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1440d84335fSJung-uk Kim * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1450d84335fSJung-uk Kim * 1460d84335fSJung-uk Kim * Alternatively, you may choose to be licensed under the terms of the 1473f0275a0SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 1483f0275a0SJung-uk Kim * Software Foundation. 1493f0275a0SJung-uk Kim * 1500d84335fSJung-uk Kim *****************************************************************************/ 1513f0275a0SJung-uk Kim 1523f0275a0SJung-uk Kim #ifndef __ACTBL3_H__ 1533f0275a0SJung-uk Kim #define __ACTBL3_H__ 1543f0275a0SJung-uk Kim 1553f0275a0SJung-uk Kim 1563f0275a0SJung-uk Kim /******************************************************************************* 1573f0275a0SJung-uk Kim * 158ff879b07SJung-uk Kim * Additional ACPI Tables 1593f0275a0SJung-uk Kim * 1603f0275a0SJung-uk Kim * These tables are not consumed directly by the ACPICA subsystem, but are 1613f0275a0SJung-uk Kim * included here to support device drivers and the AML disassembler. 1623f0275a0SJung-uk Kim * 1633f0275a0SJung-uk Kim ******************************************************************************/ 1643f0275a0SJung-uk Kim 1653f0275a0SJung-uk Kim 1663f0275a0SJung-uk Kim /* 1673f0275a0SJung-uk Kim * Values for description table header signatures for tables defined in this 1683f0275a0SJung-uk Kim * file. Useful because they make it more difficult to inadvertently type in 1693f0275a0SJung-uk Kim * the wrong signature. 1703f0275a0SJung-uk Kim */ 171ff879b07SJung-uk Kim #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ 172ff879b07SJung-uk Kim #define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */ 173ff879b07SJung-uk Kim #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ 174ff879b07SJung-uk Kim #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ 175ff879b07SJung-uk Kim #define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */ 176a371a5fdSJung-uk Kim #define ACPI_SIG_STAO "STAO" /* Status Override table */ 177ff879b07SJung-uk Kim #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ 178ff879b07SJung-uk Kim #define ACPI_SIG_TPM2 "TPM2" /* Trusted Platform Module 2.0 H/W interface table */ 179ff879b07SJung-uk Kim #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ 180cfd1ed46SJung-uk Kim #define ACPI_SIG_VIOT "VIOT" /* Virtual I/O Translation Table */ 181ff879b07SJung-uk Kim #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ 182ff879b07SJung-uk Kim #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ 183ff879b07SJung-uk Kim #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ 184ff879b07SJung-uk Kim #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ 185a371a5fdSJung-uk Kim #define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */ 1863ee58df5SJung-uk Kim #define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Mitigations Table */ 187a371a5fdSJung-uk Kim #define ACPI_SIG_XENV "XENV" /* Xen Environment table */ 188ff879b07SJung-uk Kim #define ACPI_SIG_XXXX "XXXX" /* Intermediate AML header for ASL/ASL+ converter */ 1893f0275a0SJung-uk Kim 1903f0275a0SJung-uk Kim /* 1913f0275a0SJung-uk Kim * All tables must be byte-packed to match the ACPI specification, since 1923f0275a0SJung-uk Kim * the tables are provided by the system BIOS. 1933f0275a0SJung-uk Kim */ 1943f0275a0SJung-uk Kim #pragma pack(1) 1953f0275a0SJung-uk Kim 1963f0275a0SJung-uk Kim /* 1971df130f1SJung-uk Kim * Note: C bitfields are not used for this reason: 1981df130f1SJung-uk Kim * 1991df130f1SJung-uk Kim * "Bitfields are great and easy to read, but unfortunately the C language 2001df130f1SJung-uk Kim * does not specify the layout of bitfields in memory, which means they are 2011df130f1SJung-uk Kim * essentially useless for dealing with packed data in on-disk formats or 2021df130f1SJung-uk Kim * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me, 2031df130f1SJung-uk Kim * this decision was a design error in C. Ritchie could have picked an order 2041df130f1SJung-uk Kim * and stuck with it." Norman Ramsey. 2051df130f1SJung-uk Kim * See http://stackoverflow.com/a/1053662/41661 2063f0275a0SJung-uk Kim */ 2073f0275a0SJung-uk Kim 2083f0275a0SJung-uk Kim 2093f0275a0SJung-uk Kim /******************************************************************************* 2103f0275a0SJung-uk Kim * 211ff879b07SJung-uk Kim * SLIC - Software Licensing Description Table 212ff879b07SJung-uk Kim * 213ff879b07SJung-uk Kim * Conforms to "Microsoft Software Licensing Tables (SLIC and MSDM)", 214ff879b07SJung-uk Kim * November 29, 2011. Copyright 2011 Microsoft 215ff879b07SJung-uk Kim * 216ff879b07SJung-uk Kim ******************************************************************************/ 217ff879b07SJung-uk Kim 218ff879b07SJung-uk Kim /* Basic SLIC table is only the common ACPI header */ 219ff879b07SJung-uk Kim 220ff879b07SJung-uk Kim typedef struct acpi_table_slic 221ff879b07SJung-uk Kim { 222ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 223ff879b07SJung-uk Kim 224ff879b07SJung-uk Kim } ACPI_TABLE_SLIC; 225ff879b07SJung-uk Kim 226ff879b07SJung-uk Kim 227ff879b07SJung-uk Kim /******************************************************************************* 228ff879b07SJung-uk Kim * 229ff879b07SJung-uk Kim * SLIT - System Locality Distance Information Table 2303f0275a0SJung-uk Kim * Version 1 2313f0275a0SJung-uk Kim * 2323f0275a0SJung-uk Kim ******************************************************************************/ 2333f0275a0SJung-uk Kim 234ff879b07SJung-uk Kim typedef struct acpi_table_slit 2353f0275a0SJung-uk Kim { 2363f0275a0SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 237ff879b07SJung-uk Kim UINT64 LocalityCount; 238ff879b07SJung-uk Kim UINT8 Entry[1]; /* Real size = localities^2 */ 2393f0275a0SJung-uk Kim 240ff879b07SJung-uk Kim } ACPI_TABLE_SLIT; 241af051161SJung-uk Kim 2423f0275a0SJung-uk Kim 2433f0275a0SJung-uk Kim /******************************************************************************* 2443f0275a0SJung-uk Kim * 245ff879b07SJung-uk Kim * SPCR - Serial Port Console Redirection table 2468056c665SSia Jee Heng * Version 4 2473f0275a0SJung-uk Kim * 248ff879b07SJung-uk Kim * Conforms to "Serial Port Console Redirection Table", 2498056c665SSia Jee Heng * Version 1.10, Jan 5, 2023 250ff879b07SJung-uk Kim * 2513f0275a0SJung-uk Kim ******************************************************************************/ 2523f0275a0SJung-uk Kim 253ff879b07SJung-uk Kim typedef struct acpi_table_spcr 2543f0275a0SJung-uk Kim { 2553f0275a0SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 256ff879b07SJung-uk Kim UINT8 InterfaceType; /* 0=full 16550, 1=subset of 16550 */ 257ff879b07SJung-uk Kim UINT8 Reserved[3]; 258ff879b07SJung-uk Kim ACPI_GENERIC_ADDRESS SerialPort; 259ff879b07SJung-uk Kim UINT8 InterruptType; 260ff879b07SJung-uk Kim UINT8 PcInterrupt; 261ff879b07SJung-uk Kim UINT32 Interrupt; 262ff879b07SJung-uk Kim UINT8 BaudRate; 263ff879b07SJung-uk Kim UINT8 Parity; 264ff879b07SJung-uk Kim UINT8 StopBits; 265ff879b07SJung-uk Kim UINT8 FlowControl; 266ff879b07SJung-uk Kim UINT8 TerminalType; 2678056c665SSia Jee Heng UINT8 Language; 268ff879b07SJung-uk Kim UINT16 PciDeviceId; 269ff879b07SJung-uk Kim UINT16 PciVendorId; 270ff879b07SJung-uk Kim UINT8 PciBus; 271ff879b07SJung-uk Kim UINT8 PciDevice; 272ff879b07SJung-uk Kim UINT8 PciFunction; 273ff879b07SJung-uk Kim UINT32 PciFlags; 274ff879b07SJung-uk Kim UINT8 PciSegment; 2758056c665SSia Jee Heng UINT32 UartClkFreq; 2768056c665SSia Jee Heng UINT32 PreciseBaudrate; 2778056c665SSia Jee Heng UINT16 NameSpaceStringLength; 2788056c665SSia Jee Heng UINT16 NameSpaceStringOffset; 2798056c665SSia Jee Heng char NameSpaceString[]; 2803f0275a0SJung-uk Kim 281ff879b07SJung-uk Kim } ACPI_TABLE_SPCR; 2823f0275a0SJung-uk Kim 283ff879b07SJung-uk Kim /* Masks for PciFlags field above */ 2843f0275a0SJung-uk Kim 285ff879b07SJung-uk Kim #define ACPI_SPCR_DO_NOT_DISABLE (1) 286ff879b07SJung-uk Kim 287ff879b07SJung-uk Kim /* Values for Interface Type: See the definition of the DBG2 table */ 2883f0275a0SJung-uk Kim 2893f0275a0SJung-uk Kim 290ff879b07SJung-uk Kim /******************************************************************************* 291ff879b07SJung-uk Kim * 292ff879b07SJung-uk Kim * SPMI - Server Platform Management Interface table 293ff879b07SJung-uk Kim * Version 5 294ff879b07SJung-uk Kim * 295ff879b07SJung-uk Kim * Conforms to "Intelligent Platform Management Interface Specification 296ff879b07SJung-uk Kim * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with 297ff879b07SJung-uk Kim * June 12, 2009 markup. 298ff879b07SJung-uk Kim * 299ff879b07SJung-uk Kim ******************************************************************************/ 300313a0c13SJung-uk Kim 301ff879b07SJung-uk Kim typedef struct acpi_table_spmi 302313a0c13SJung-uk Kim { 303ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 304ff879b07SJung-uk Kim UINT8 InterfaceType; 305ff879b07SJung-uk Kim UINT8 Reserved; /* Must be 1 */ 306ff879b07SJung-uk Kim UINT16 SpecRevision; /* Version of IPMI */ 307ff879b07SJung-uk Kim UINT8 InterruptType; 308ff879b07SJung-uk Kim UINT8 GpeNumber; /* GPE assigned */ 309ff879b07SJung-uk Kim UINT8 Reserved1; 310ff879b07SJung-uk Kim UINT8 PciDeviceFlag; 311ff879b07SJung-uk Kim UINT32 Interrupt; 312ff879b07SJung-uk Kim ACPI_GENERIC_ADDRESS IpmiRegister; 313ff879b07SJung-uk Kim UINT8 PciSegment; 314ff879b07SJung-uk Kim UINT8 PciBus; 315ff879b07SJung-uk Kim UINT8 PciDevice; 316ff879b07SJung-uk Kim UINT8 PciFunction; 317ff879b07SJung-uk Kim UINT8 Reserved2; 318313a0c13SJung-uk Kim 319ff879b07SJung-uk Kim } ACPI_TABLE_SPMI; 320313a0c13SJung-uk Kim 321ff879b07SJung-uk Kim /* Values for InterfaceType above */ 322313a0c13SJung-uk Kim 323ff879b07SJung-uk Kim enum AcpiSpmiInterfaceTypes 324313a0c13SJung-uk Kim { 325ff879b07SJung-uk Kim ACPI_SPMI_NOT_USED = 0, 326ff879b07SJung-uk Kim ACPI_SPMI_KEYBOARD = 1, 327ff879b07SJung-uk Kim ACPI_SPMI_SMI = 2, 328ff879b07SJung-uk Kim ACPI_SPMI_BLOCK_TRANSFER = 3, 329ff879b07SJung-uk Kim ACPI_SPMI_SMBUS = 4, 330ff879b07SJung-uk Kim ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */ 331313a0c13SJung-uk Kim }; 332313a0c13SJung-uk Kim 333313a0c13SJung-uk Kim 3343f0275a0SJung-uk Kim /******************************************************************************* 3353f0275a0SJung-uk Kim * 336ff879b07SJung-uk Kim * SRAT - System Resource Affinity Table 337ff879b07SJung-uk Kim * Version 3 3383f0275a0SJung-uk Kim * 3393f0275a0SJung-uk Kim ******************************************************************************/ 3403f0275a0SJung-uk Kim 341ff879b07SJung-uk Kim typedef struct acpi_table_srat 3423f0275a0SJung-uk Kim { 3433f0275a0SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 344ff879b07SJung-uk Kim UINT32 TableRevision; /* Must be value '1' */ 345ff879b07SJung-uk Kim UINT64 Reserved; /* Reserved, must be zero */ 3463f0275a0SJung-uk Kim 347ff879b07SJung-uk Kim } ACPI_TABLE_SRAT; 3483f0275a0SJung-uk Kim 349313a0c13SJung-uk Kim /* Values for subtable type in ACPI_SUBTABLE_HEADER */ 350313a0c13SJung-uk Kim 351ff879b07SJung-uk Kim enum AcpiSratType 352313a0c13SJung-uk Kim { 353ff879b07SJung-uk Kim ACPI_SRAT_TYPE_CPU_AFFINITY = 0, 354ff879b07SJung-uk Kim ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, 355ff879b07SJung-uk Kim ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, 356ff879b07SJung-uk Kim ACPI_SRAT_TYPE_GICC_AFFINITY = 3, 357ff879b07SJung-uk Kim ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */ 358cd6518c7SJung-uk Kim ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, /* ACPI 6.3 */ 3591b7a2680SJung-uk Kim ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, /* ACPI 6.4 */ 360804fe266SJung-uk Kim ACPI_SRAT_TYPE_RINTC_AFFINITY = 7, /* ACPI 6.6 */ 361804fe266SJung-uk Kim ACPI_SRAT_TYPE_RESERVED = 8 /* 8 and greater are reserved */ 362313a0c13SJung-uk Kim }; 363313a0c13SJung-uk Kim 3643f0275a0SJung-uk Kim /* 365ff879b07SJung-uk Kim * SRAT Subtables, correspond to Type in ACPI_SUBTABLE_HEADER 3663f0275a0SJung-uk Kim */ 3673f0275a0SJung-uk Kim 368ff879b07SJung-uk Kim /* 0: Processor Local APIC/SAPIC Affinity */ 3693f0275a0SJung-uk Kim 370ff879b07SJung-uk Kim typedef struct acpi_srat_cpu_affinity 3713f0275a0SJung-uk Kim { 3723f0275a0SJung-uk Kim ACPI_SUBTABLE_HEADER Header; 373ff879b07SJung-uk Kim UINT8 ProximityDomainLo; 374ff879b07SJung-uk Kim UINT8 ApicId; 375af051161SJung-uk Kim UINT32 Flags; 376ff879b07SJung-uk Kim UINT8 LocalSapicEid; 377ff879b07SJung-uk Kim UINT8 ProximityDomainHi[3]; 378ff879b07SJung-uk Kim UINT32 ClockDomain; 379af051161SJung-uk Kim 380ff879b07SJung-uk Kim } ACPI_SRAT_CPU_AFFINITY; 381ff879b07SJung-uk Kim 382ff879b07SJung-uk Kim /* Flags */ 383ff879b07SJung-uk Kim 384ff879b07SJung-uk Kim #define ACPI_SRAT_CPU_USE_AFFINITY (1) /* 00: Use affinity structure */ 385af051161SJung-uk Kim 386af051161SJung-uk Kim 387ff879b07SJung-uk Kim /* 1: Memory Affinity */ 3883f0275a0SJung-uk Kim 389ff879b07SJung-uk Kim typedef struct acpi_srat_mem_affinity 3903f0275a0SJung-uk Kim { 391ff879b07SJung-uk Kim ACPI_SUBTABLE_HEADER Header; 3923f0275a0SJung-uk Kim UINT32 ProximityDomain; 393ff879b07SJung-uk Kim UINT16 Reserved; /* Reserved, must be zero */ 394ff879b07SJung-uk Kim UINT64 BaseAddress; 395ff879b07SJung-uk Kim UINT64 Length; 396ff879b07SJung-uk Kim UINT32 Reserved1; 397ff879b07SJung-uk Kim UINT32 Flags; 398ff879b07SJung-uk Kim UINT64 Reserved2; /* Reserved, must be zero */ 3993f0275a0SJung-uk Kim 400ff879b07SJung-uk Kim } ACPI_SRAT_MEM_AFFINITY; 401ff879b07SJung-uk Kim 402ff879b07SJung-uk Kim /* Flags */ 403ff879b07SJung-uk Kim 404ff879b07SJung-uk Kim #define ACPI_SRAT_MEM_ENABLED (1) /* 00: Use affinity structure */ 405ff879b07SJung-uk Kim #define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */ 406ff879b07SJung-uk Kim #define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */ 4073f0275a0SJung-uk Kim 4083f0275a0SJung-uk Kim 409ff879b07SJung-uk Kim /* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */ 4103f0275a0SJung-uk Kim 411ff879b07SJung-uk Kim typedef struct acpi_srat_x2apic_cpu_affinity 4123f0275a0SJung-uk Kim { 413ff879b07SJung-uk Kim ACPI_SUBTABLE_HEADER Header; 414ff879b07SJung-uk Kim UINT16 Reserved; /* Reserved, must be zero */ 415ff879b07SJung-uk Kim UINT32 ProximityDomain; 416ff879b07SJung-uk Kim UINT32 ApicId; 417ff879b07SJung-uk Kim UINT32 Flags; 418ff879b07SJung-uk Kim UINT32 ClockDomain; 419ff879b07SJung-uk Kim UINT32 Reserved2; 420ff879b07SJung-uk Kim 421ff879b07SJung-uk Kim } ACPI_SRAT_X2APIC_CPU_AFFINITY; 422ff879b07SJung-uk Kim 423ff879b07SJung-uk Kim /* Flags for ACPI_SRAT_CPU_AFFINITY and ACPI_SRAT_X2APIC_CPU_AFFINITY */ 424ff879b07SJung-uk Kim 425ff879b07SJung-uk Kim #define ACPI_SRAT_CPU_ENABLED (1) /* 00: Use affinity structure */ 426ff879b07SJung-uk Kim 427ff879b07SJung-uk Kim 428ff879b07SJung-uk Kim /* 3: GICC Affinity (ACPI 5.1) */ 429ff879b07SJung-uk Kim 430ff879b07SJung-uk Kim typedef struct acpi_srat_gicc_affinity 431ff879b07SJung-uk Kim { 432ff879b07SJung-uk Kim ACPI_SUBTABLE_HEADER Header; 433ff879b07SJung-uk Kim UINT32 ProximityDomain; 434ff879b07SJung-uk Kim UINT32 AcpiProcessorUid; 435ff879b07SJung-uk Kim UINT32 Flags; 436ff879b07SJung-uk Kim UINT32 ClockDomain; 437ff879b07SJung-uk Kim 438ff879b07SJung-uk Kim } ACPI_SRAT_GICC_AFFINITY; 439ff879b07SJung-uk Kim 440ff879b07SJung-uk Kim /* Flags for ACPI_SRAT_GICC_AFFINITY */ 441ff879b07SJung-uk Kim 442ff879b07SJung-uk Kim #define ACPI_SRAT_GICC_ENABLED (1) /* 00: Use affinity structure */ 443ff879b07SJung-uk Kim 444ff879b07SJung-uk Kim 44562e841ccSJung-uk Kim /* 4: GIC ITS Affinity (ACPI 6.2) */ 446ff879b07SJung-uk Kim 447ff879b07SJung-uk Kim typedef struct acpi_srat_gic_its_affinity 448ff879b07SJung-uk Kim { 449ff879b07SJung-uk Kim ACPI_SUBTABLE_HEADER Header; 450ff879b07SJung-uk Kim UINT32 ProximityDomain; 4513f0275a0SJung-uk Kim UINT16 Reserved; 452ff879b07SJung-uk Kim UINT32 ItsId; 4533f0275a0SJung-uk Kim 454ff879b07SJung-uk Kim } ACPI_SRAT_GIC_ITS_AFFINITY; 4553f0275a0SJung-uk Kim 4561b7a2680SJung-uk Kim /* 4571b7a2680SJung-uk Kim * Common structure for SRAT subtable types: 4581b7a2680SJung-uk Kim * 5: ACPI_SRAT_TYPE_GENERIC_AFFINITY 4591b7a2680SJung-uk Kim * 6: ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY 4601b7a2680SJung-uk Kim */ 461cd6518c7SJung-uk Kim 46207c64d74SJung-uk Kim #define ACPI_SRAT_DEVICE_HANDLE_SIZE 16 46307c64d74SJung-uk Kim 464cd6518c7SJung-uk Kim typedef struct acpi_srat_generic_affinity 465cd6518c7SJung-uk Kim { 466cd6518c7SJung-uk Kim ACPI_SUBTABLE_HEADER Header; 467cd6518c7SJung-uk Kim UINT8 Reserved; 468cd6518c7SJung-uk Kim UINT8 DeviceHandleType; 469cd6518c7SJung-uk Kim UINT32 ProximityDomain; 47007c64d74SJung-uk Kim UINT8 DeviceHandle[ACPI_SRAT_DEVICE_HANDLE_SIZE]; 471cd6518c7SJung-uk Kim UINT32 Flags; 472cd6518c7SJung-uk Kim UINT32 Reserved1; 473cd6518c7SJung-uk Kim 474cd6518c7SJung-uk Kim } ACPI_SRAT_GENERIC_AFFINITY; 475cd6518c7SJung-uk Kim 476cd6518c7SJung-uk Kim /* Flags for ACPI_SRAT_GENERIC_AFFINITY */ 477cd6518c7SJung-uk Kim 478cd6518c7SJung-uk Kim #define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ 479cfd1ed46SJung-uk Kim #define ACPI_SRAT_ARCHITECTURAL_TRANSACTIONS (1<<1) /* ACPI 6.4 */ 480cd6518c7SJung-uk Kim 481804fe266SJung-uk Kim /* 7: RINTC Affinity Structure(ACPI 6.6) */ 482804fe266SJung-uk Kim 483804fe266SJung-uk Kim typedef struct acpi_srat_rintc_affinity 484804fe266SJung-uk Kim { 485804fe266SJung-uk Kim ACPI_SUBTABLE_HEADER Header; 486804fe266SJung-uk Kim UINT16 Reserved; 487804fe266SJung-uk Kim UINT32 ProximityDomain; 488804fe266SJung-uk Kim UINT32 AcpiProcessorUid; 489804fe266SJung-uk Kim UINT32 Flags; 490804fe266SJung-uk Kim UINT32 ClockDomain; 491804fe266SJung-uk Kim 492804fe266SJung-uk Kim } ACPI_SRAT_RINTC_AFFINITY; 493804fe266SJung-uk Kim 494804fe266SJung-uk Kim /* Flags for ACPI_SRAT_RINTC_AFFINITY */ 495804fe266SJung-uk Kim 496804fe266SJung-uk Kim #define ACPI_SRAT_RINTC_ENABLED (1) /* 00: Use affinity structure */ 497804fe266SJung-uk Kim 498efcc2a30SJung-uk Kim /******************************************************************************* 499efcc2a30SJung-uk Kim * 500a371a5fdSJung-uk Kim * STAO - Status Override Table (_STA override) - ACPI 6.0 501a371a5fdSJung-uk Kim * Version 1 502a371a5fdSJung-uk Kim * 503a371a5fdSJung-uk Kim * Conforms to "ACPI Specification for Status Override Table" 504a371a5fdSJung-uk Kim * 6 January 2015 505a371a5fdSJung-uk Kim * 506a371a5fdSJung-uk Kim ******************************************************************************/ 507a371a5fdSJung-uk Kim 508a371a5fdSJung-uk Kim typedef struct acpi_table_stao 509a371a5fdSJung-uk Kim { 510a371a5fdSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 511a371a5fdSJung-uk Kim UINT8 IgnoreUart; 512a371a5fdSJung-uk Kim 513a371a5fdSJung-uk Kim } ACPI_TABLE_STAO; 514a371a5fdSJung-uk Kim 515a371a5fdSJung-uk Kim 516a371a5fdSJung-uk Kim /******************************************************************************* 517a371a5fdSJung-uk Kim * 518ff879b07SJung-uk Kim * TCPA - Trusted Computing Platform Alliance table 519ff879b07SJung-uk Kim * Version 2 520ff879b07SJung-uk Kim * 521ff879b07SJung-uk Kim * TCG Hardware Interface Table for TPM 1.2 Clients and Servers 522ff879b07SJung-uk Kim * 523ff879b07SJung-uk Kim * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0", 524ff879b07SJung-uk Kim * Version 1.2, Revision 8 525ff879b07SJung-uk Kim * February 27, 2017 526ff879b07SJung-uk Kim * 527ff879b07SJung-uk Kim * NOTE: There are two versions of the table with the same signature -- 528ff879b07SJung-uk Kim * the client version and the server version. The common PlatformClass 529ff879b07SJung-uk Kim * field is used to differentiate the two types of tables. 530ff879b07SJung-uk Kim * 531ff879b07SJung-uk Kim ******************************************************************************/ 532ff879b07SJung-uk Kim 533ff879b07SJung-uk Kim typedef struct acpi_table_tcpa_hdr 534ff879b07SJung-uk Kim { 535ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 536ff879b07SJung-uk Kim UINT16 PlatformClass; 537ff879b07SJung-uk Kim 538ff879b07SJung-uk Kim } ACPI_TABLE_TCPA_HDR; 539ff879b07SJung-uk Kim 540ff879b07SJung-uk Kim /* 541ff879b07SJung-uk Kim * Values for PlatformClass above. 542ff879b07SJung-uk Kim * This is how the client and server subtables are differentiated 543ff879b07SJung-uk Kim */ 544ff879b07SJung-uk Kim #define ACPI_TCPA_CLIENT_TABLE 0 545ff879b07SJung-uk Kim #define ACPI_TCPA_SERVER_TABLE 1 546ff879b07SJung-uk Kim 547ff879b07SJung-uk Kim 548ff879b07SJung-uk Kim typedef struct acpi_table_tcpa_client 549ff879b07SJung-uk Kim { 550ff879b07SJung-uk Kim UINT32 MinimumLogLength; /* Minimum length for the event log area */ 551ff879b07SJung-uk Kim UINT64 LogAddress; /* Address of the event log area */ 552ff879b07SJung-uk Kim 553ff879b07SJung-uk Kim } ACPI_TABLE_TCPA_CLIENT; 554ff879b07SJung-uk Kim 555ff879b07SJung-uk Kim typedef struct acpi_table_tcpa_server 556ff879b07SJung-uk Kim { 557ff879b07SJung-uk Kim UINT16 Reserved; 558ff879b07SJung-uk Kim UINT64 MinimumLogLength; /* Minimum length for the event log area */ 559ff879b07SJung-uk Kim UINT64 LogAddress; /* Address of the event log area */ 560ff879b07SJung-uk Kim UINT16 SpecRevision; 561ff879b07SJung-uk Kim UINT8 DeviceFlags; 562ff879b07SJung-uk Kim UINT8 InterruptFlags; 563ff879b07SJung-uk Kim UINT8 GpeNumber; 564ff879b07SJung-uk Kim UINT8 Reserved2[3]; 565ff879b07SJung-uk Kim UINT32 GlobalInterrupt; 566ff879b07SJung-uk Kim ACPI_GENERIC_ADDRESS Address; 567ff879b07SJung-uk Kim UINT32 Reserved3; 568ff879b07SJung-uk Kim ACPI_GENERIC_ADDRESS ConfigAddress; 569ff879b07SJung-uk Kim UINT8 Group; 570ff879b07SJung-uk Kim UINT8 Bus; /* PCI Bus/Segment/Function numbers */ 571ff879b07SJung-uk Kim UINT8 Device; 572ff879b07SJung-uk Kim UINT8 Function; 573ff879b07SJung-uk Kim 574ff879b07SJung-uk Kim } ACPI_TABLE_TCPA_SERVER; 575ff879b07SJung-uk Kim 576ff879b07SJung-uk Kim /* Values for DeviceFlags above */ 577ff879b07SJung-uk Kim 578ff879b07SJung-uk Kim #define ACPI_TCPA_PCI_DEVICE (1) 579ff879b07SJung-uk Kim #define ACPI_TCPA_BUS_PNP (1<<1) 580ff879b07SJung-uk Kim #define ACPI_TCPA_ADDRESS_VALID (1<<2) 581ff879b07SJung-uk Kim 582ff879b07SJung-uk Kim /* Values for InterruptFlags above */ 583ff879b07SJung-uk Kim 584ff879b07SJung-uk Kim #define ACPI_TCPA_INTERRUPT_MODE (1) 585ff879b07SJung-uk Kim #define ACPI_TCPA_INTERRUPT_POLARITY (1<<1) 586ff879b07SJung-uk Kim #define ACPI_TCPA_SCI_VIA_GPE (1<<2) 587ff879b07SJung-uk Kim #define ACPI_TCPA_GLOBAL_INTERRUPT (1<<3) 588ff879b07SJung-uk Kim 589ff879b07SJung-uk Kim 590ff879b07SJung-uk Kim /******************************************************************************* 591ff879b07SJung-uk Kim * 592ff879b07SJung-uk Kim * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table 593ff879b07SJung-uk Kim * Version 4 594ff879b07SJung-uk Kim * 595ff879b07SJung-uk Kim * TCG Hardware Interface Table for TPM 2.0 Clients and Servers 596ff879b07SJung-uk Kim * 597ff879b07SJung-uk Kim * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0", 598ff879b07SJung-uk Kim * Version 1.2, Revision 8 599ff879b07SJung-uk Kim * February 27, 2017 600ff879b07SJung-uk Kim * 601ff879b07SJung-uk Kim ******************************************************************************/ 602ff879b07SJung-uk Kim 6034a38ee6dSJung-uk Kim /* Revision 3 */ 6044a38ee6dSJung-uk Kim 6054a38ee6dSJung-uk Kim typedef struct acpi_table_tpm23 6064a38ee6dSJung-uk Kim { 6074a38ee6dSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 6084a38ee6dSJung-uk Kim UINT32 Reserved; 6094a38ee6dSJung-uk Kim UINT64 ControlAddress; 6104a38ee6dSJung-uk Kim UINT32 StartMethod; 6114a38ee6dSJung-uk Kim 6124a38ee6dSJung-uk Kim } ACPI_TABLE_TPM23; 6134a38ee6dSJung-uk Kim 6144a38ee6dSJung-uk Kim /* Value for StartMethod above */ 6154a38ee6dSJung-uk Kim 6164a38ee6dSJung-uk Kim #define ACPI_TPM23_ACPI_START_METHOD 2 6174a38ee6dSJung-uk Kim 6184a38ee6dSJung-uk Kim /* 6194a38ee6dSJung-uk Kim * Optional trailer for revision 3. If start method is 2, there is a 4 byte 6204a38ee6dSJung-uk Kim * reserved area of all zeros. 6214a38ee6dSJung-uk Kim */ 6224a38ee6dSJung-uk Kim typedef struct acpi_tmp23_trailer 6234a38ee6dSJung-uk Kim { 6244a38ee6dSJung-uk Kim UINT32 Reserved; 6254a38ee6dSJung-uk Kim 6264a38ee6dSJung-uk Kim } ACPI_TPM23_TRAILER; 6274a38ee6dSJung-uk Kim 6284a38ee6dSJung-uk Kim 6294a38ee6dSJung-uk Kim /* Revision 4 */ 6304a38ee6dSJung-uk Kim 631ff879b07SJung-uk Kim typedef struct acpi_table_tpm2 632ff879b07SJung-uk Kim { 633ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 634ff879b07SJung-uk Kim UINT16 PlatformClass; 635ff879b07SJung-uk Kim UINT16 Reserved; 636ff879b07SJung-uk Kim UINT64 ControlAddress; 637ff879b07SJung-uk Kim UINT32 StartMethod; 638ff879b07SJung-uk Kim 639ff879b07SJung-uk Kim /* Platform-specific data follows */ 640ff879b07SJung-uk Kim 641ff879b07SJung-uk Kim } ACPI_TABLE_TPM2; 642ff879b07SJung-uk Kim 643ff879b07SJung-uk Kim /* Values for StartMethod above */ 644ff879b07SJung-uk Kim 645ff879b07SJung-uk Kim #define ACPI_TPM2_NOT_ALLOWED 0 646ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED1 1 647ff879b07SJung-uk Kim #define ACPI_TPM2_START_METHOD 2 648ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED3 3 649ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED4 4 650ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED5 5 651ff879b07SJung-uk Kim #define ACPI_TPM2_MEMORY_MAPPED 6 652ff879b07SJung-uk Kim #define ACPI_TPM2_COMMAND_BUFFER 7 653ff879b07SJung-uk Kim #define ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD 8 654ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED9 9 655ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED10 10 656ff879b07SJung-uk Kim #define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC 11 /* V1.2 Rev 8 */ 657ff879b07SJung-uk Kim #define ACPI_TPM2_RESERVED 12 658*58308fadSJung-uk Kim #define ACPI_TPM2_COMMAND_BUFFER_WITH_PLUTON 13 659*58308fadSJung-uk Kim #define ACPI_TPM2_CRB_WITH_ARM_FFA 15 660ff879b07SJung-uk Kim 661ff879b07SJung-uk Kim 662ff879b07SJung-uk Kim /* Optional trailer appears after any StartMethod subtables */ 663ff879b07SJung-uk Kim 664ff879b07SJung-uk Kim typedef struct acpi_tpm2_trailer 665ff879b07SJung-uk Kim { 666ff879b07SJung-uk Kim UINT8 MethodParameters[12]; 667ff879b07SJung-uk Kim UINT32 MinimumLogLength; /* Minimum length for the event log area */ 668ff879b07SJung-uk Kim UINT64 LogAddress; /* Address of the event log area */ 669ff879b07SJung-uk Kim 670ff879b07SJung-uk Kim } ACPI_TPM2_TRAILER; 671ff879b07SJung-uk Kim 672ff879b07SJung-uk Kim 673ff879b07SJung-uk Kim /* 674ff879b07SJung-uk Kim * Subtables (StartMethod-specific) 675ff879b07SJung-uk Kim */ 676ff879b07SJung-uk Kim 677ff879b07SJung-uk Kim /* 11: Start Method for ARM SMC (V1.2 Rev 8) */ 678ff879b07SJung-uk Kim 679ff879b07SJung-uk Kim typedef struct acpi_tpm2_arm_smc 680ff879b07SJung-uk Kim { 681ff879b07SJung-uk Kim UINT32 GlobalInterrupt; 682ff879b07SJung-uk Kim UINT8 InterruptFlags; 683ff879b07SJung-uk Kim UINT8 OperationFlags; 684ff879b07SJung-uk Kim UINT16 Reserved; 685ff879b07SJung-uk Kim UINT32 FunctionId; 686ff879b07SJung-uk Kim 687ff879b07SJung-uk Kim } ACPI_TPM2_ARM_SMC; 688ff879b07SJung-uk Kim 689ff879b07SJung-uk Kim /* Values for InterruptFlags above */ 690ff879b07SJung-uk Kim 691ff879b07SJung-uk Kim #define ACPI_TPM2_INTERRUPT_SUPPORT (1) 692ff879b07SJung-uk Kim 693ff879b07SJung-uk Kim /* Values for OperationFlags above */ 694ff879b07SJung-uk Kim 695ff879b07SJung-uk Kim #define ACPI_TPM2_IDLE_SUPPORT (1) 696ff879b07SJung-uk Kim 697ff879b07SJung-uk Kim 698ff879b07SJung-uk Kim /******************************************************************************* 699ff879b07SJung-uk Kim * 700ff879b07SJung-uk Kim * UEFI - UEFI Boot optimization Table 701ff879b07SJung-uk Kim * Version 1 702ff879b07SJung-uk Kim * 703ff879b07SJung-uk Kim * Conforms to "Unified Extensible Firmware Interface Specification", 704ff879b07SJung-uk Kim * Version 2.3, May 8, 2009 705ff879b07SJung-uk Kim * 706ff879b07SJung-uk Kim ******************************************************************************/ 707ff879b07SJung-uk Kim 708ff879b07SJung-uk Kim typedef struct acpi_table_uefi 709ff879b07SJung-uk Kim { 710ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 711ff879b07SJung-uk Kim UINT8 Identifier[16]; /* UUID identifier */ 712ff879b07SJung-uk Kim UINT16 DataOffset; /* Offset of remaining data in table */ 713ff879b07SJung-uk Kim 714ff879b07SJung-uk Kim } ACPI_TABLE_UEFI; 715ff879b07SJung-uk Kim 716ff879b07SJung-uk Kim 717ff879b07SJung-uk Kim /******************************************************************************* 718ff879b07SJung-uk Kim * 719cfd1ed46SJung-uk Kim * VIOT - Virtual I/O Translation Table 720cfd1ed46SJung-uk Kim * Version 1 721cfd1ed46SJung-uk Kim * 722cfd1ed46SJung-uk Kim ******************************************************************************/ 723cfd1ed46SJung-uk Kim 724cfd1ed46SJung-uk Kim typedef struct acpi_table_viot 725cfd1ed46SJung-uk Kim { 726cfd1ed46SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 727cfd1ed46SJung-uk Kim UINT16 NodeCount; 728cfd1ed46SJung-uk Kim UINT16 NodeOffset; 729cfd1ed46SJung-uk Kim UINT8 Reserved[8]; 730cfd1ed46SJung-uk Kim 731cfd1ed46SJung-uk Kim } ACPI_TABLE_VIOT; 732cfd1ed46SJung-uk Kim 733cfd1ed46SJung-uk Kim /* VIOT subtable header */ 734cfd1ed46SJung-uk Kim 735cfd1ed46SJung-uk Kim typedef struct acpi_viot_header 736cfd1ed46SJung-uk Kim { 737cfd1ed46SJung-uk Kim UINT8 Type; 738cfd1ed46SJung-uk Kim UINT8 Reserved; 739cfd1ed46SJung-uk Kim UINT16 Length; 740cfd1ed46SJung-uk Kim 741cfd1ed46SJung-uk Kim } ACPI_VIOT_HEADER; 742cfd1ed46SJung-uk Kim 743cfd1ed46SJung-uk Kim /* Values for Type field above */ 744cfd1ed46SJung-uk Kim 745cfd1ed46SJung-uk Kim enum AcpiViotNodeType 746cfd1ed46SJung-uk Kim { 747cfd1ed46SJung-uk Kim ACPI_VIOT_NODE_PCI_RANGE = 0x01, 748cfd1ed46SJung-uk Kim ACPI_VIOT_NODE_MMIO = 0x02, 749cfd1ed46SJung-uk Kim ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI = 0x03, 750cfd1ed46SJung-uk Kim ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO = 0x04, 751cfd1ed46SJung-uk Kim ACPI_VIOT_RESERVED = 0x05 752cfd1ed46SJung-uk Kim }; 753cfd1ed46SJung-uk Kim 754cfd1ed46SJung-uk Kim /* VIOT subtables */ 755cfd1ed46SJung-uk Kim 756cfd1ed46SJung-uk Kim typedef struct acpi_viot_pci_range 757cfd1ed46SJung-uk Kim { 758cfd1ed46SJung-uk Kim ACPI_VIOT_HEADER Header; 759cfd1ed46SJung-uk Kim UINT32 EndpointStart; 760cfd1ed46SJung-uk Kim UINT16 SegmentStart; 761cfd1ed46SJung-uk Kim UINT16 SegmentEnd; 762cfd1ed46SJung-uk Kim UINT16 BdfStart; 763cfd1ed46SJung-uk Kim UINT16 BdfEnd; 764cfd1ed46SJung-uk Kim UINT16 OutputNode; 765cfd1ed46SJung-uk Kim UINT8 Reserved[6]; 766cfd1ed46SJung-uk Kim 767cfd1ed46SJung-uk Kim } ACPI_VIOT_PCI_RANGE; 768cfd1ed46SJung-uk Kim 769cfd1ed46SJung-uk Kim typedef struct acpi_viot_mmio 770cfd1ed46SJung-uk Kim { 771cfd1ed46SJung-uk Kim ACPI_VIOT_HEADER Header; 772cfd1ed46SJung-uk Kim UINT32 Endpoint; 773cfd1ed46SJung-uk Kim UINT64 BaseAddress; 774cfd1ed46SJung-uk Kim UINT16 OutputNode; 775cfd1ed46SJung-uk Kim UINT8 Reserved[6]; 776cfd1ed46SJung-uk Kim 777cfd1ed46SJung-uk Kim } ACPI_VIOT_MMIO; 778cfd1ed46SJung-uk Kim 779cfd1ed46SJung-uk Kim typedef struct acpi_viot_virtio_iommu_pci 780cfd1ed46SJung-uk Kim { 781cfd1ed46SJung-uk Kim ACPI_VIOT_HEADER Header; 782cfd1ed46SJung-uk Kim UINT16 Segment; 783cfd1ed46SJung-uk Kim UINT16 Bdf; 784cfd1ed46SJung-uk Kim UINT8 Reserved[8]; 785cfd1ed46SJung-uk Kim 786cfd1ed46SJung-uk Kim } ACPI_VIOT_VIRTIO_IOMMU_PCI; 787cfd1ed46SJung-uk Kim 788cfd1ed46SJung-uk Kim typedef struct acpi_viot_virtio_iommu_mmio 789cfd1ed46SJung-uk Kim { 790cfd1ed46SJung-uk Kim ACPI_VIOT_HEADER Header; 791cfd1ed46SJung-uk Kim UINT8 Reserved[4]; 792cfd1ed46SJung-uk Kim UINT64 BaseAddress; 793cfd1ed46SJung-uk Kim 794cfd1ed46SJung-uk Kim } ACPI_VIOT_VIRTIO_IOMMU_MMIO; 795cfd1ed46SJung-uk Kim 796cfd1ed46SJung-uk Kim 797cfd1ed46SJung-uk Kim /******************************************************************************* 798cfd1ed46SJung-uk Kim * 799ff879b07SJung-uk Kim * WAET - Windows ACPI Emulated devices Table 800ff879b07SJung-uk Kim * Version 1 801ff879b07SJung-uk Kim * 802ff879b07SJung-uk Kim * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009 803ff879b07SJung-uk Kim * 804ff879b07SJung-uk Kim ******************************************************************************/ 805ff879b07SJung-uk Kim 806ff879b07SJung-uk Kim typedef struct acpi_table_waet 807ff879b07SJung-uk Kim { 808ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 809ff879b07SJung-uk Kim UINT32 Flags; 810ff879b07SJung-uk Kim 811ff879b07SJung-uk Kim } ACPI_TABLE_WAET; 812ff879b07SJung-uk Kim 813ff879b07SJung-uk Kim /* Masks for Flags field above */ 814ff879b07SJung-uk Kim 815ff879b07SJung-uk Kim #define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */ 816ff879b07SJung-uk Kim #define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */ 817ff879b07SJung-uk Kim 818ff879b07SJung-uk Kim 819ff879b07SJung-uk Kim /******************************************************************************* 820ff879b07SJung-uk Kim * 821ff879b07SJung-uk Kim * WDAT - Watchdog Action Table 822ff879b07SJung-uk Kim * Version 1 823ff879b07SJung-uk Kim * 824ff879b07SJung-uk Kim * Conforms to "Hardware Watchdog Timers Design Specification", 825ff879b07SJung-uk Kim * Copyright 2006 Microsoft Corporation. 826ff879b07SJung-uk Kim * 827ff879b07SJung-uk Kim ******************************************************************************/ 828ff879b07SJung-uk Kim 829ff879b07SJung-uk Kim typedef struct acpi_table_wdat 830ff879b07SJung-uk Kim { 831ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 832ff879b07SJung-uk Kim UINT32 HeaderLength; /* Watchdog Header Length */ 833ff879b07SJung-uk Kim UINT16 PciSegment; /* PCI Segment number */ 834ff879b07SJung-uk Kim UINT8 PciBus; /* PCI Bus number */ 835ff879b07SJung-uk Kim UINT8 PciDevice; /* PCI Device number */ 836ff879b07SJung-uk Kim UINT8 PciFunction; /* PCI Function number */ 837ff879b07SJung-uk Kim UINT8 Reserved[3]; 838ff879b07SJung-uk Kim UINT32 TimerPeriod; /* Period of one timer count (msec) */ 839ff879b07SJung-uk Kim UINT32 MaxCount; /* Maximum counter value supported */ 840ff879b07SJung-uk Kim UINT32 MinCount; /* Minimum counter value */ 841ff879b07SJung-uk Kim UINT8 Flags; 842ff879b07SJung-uk Kim UINT8 Reserved2[3]; 843ff879b07SJung-uk Kim UINT32 Entries; /* Number of watchdog entries that follow */ 844ff879b07SJung-uk Kim 845ff879b07SJung-uk Kim } ACPI_TABLE_WDAT; 846ff879b07SJung-uk Kim 847ff879b07SJung-uk Kim /* Masks for Flags field above */ 848ff879b07SJung-uk Kim 849ff879b07SJung-uk Kim #define ACPI_WDAT_ENABLED (1) 850ff879b07SJung-uk Kim #define ACPI_WDAT_STOPPED 0x80 851ff879b07SJung-uk Kim 852ff879b07SJung-uk Kim 853ff879b07SJung-uk Kim /* WDAT Instruction Entries (actions) */ 854ff879b07SJung-uk Kim 855ff879b07SJung-uk Kim typedef struct acpi_wdat_entry 856ff879b07SJung-uk Kim { 857ff879b07SJung-uk Kim UINT8 Action; 858ff879b07SJung-uk Kim UINT8 Instruction; 859ff879b07SJung-uk Kim UINT16 Reserved; 860ff879b07SJung-uk Kim ACPI_GENERIC_ADDRESS RegisterRegion; 861ff879b07SJung-uk Kim UINT32 Value; /* Value used with Read/Write register */ 862ff879b07SJung-uk Kim UINT32 Mask; /* Bitmask required for this register instruction */ 863ff879b07SJung-uk Kim 864ff879b07SJung-uk Kim } ACPI_WDAT_ENTRY; 865ff879b07SJung-uk Kim 866ff879b07SJung-uk Kim /* Values for Action field above */ 867ff879b07SJung-uk Kim 868ff879b07SJung-uk Kim enum AcpiWdatActions 869ff879b07SJung-uk Kim { 870ff879b07SJung-uk Kim ACPI_WDAT_RESET = 1, 871ff879b07SJung-uk Kim ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4, 872ff879b07SJung-uk Kim ACPI_WDAT_GET_COUNTDOWN = 5, 873ff879b07SJung-uk Kim ACPI_WDAT_SET_COUNTDOWN = 6, 874ff879b07SJung-uk Kim ACPI_WDAT_GET_RUNNING_STATE = 8, 875ff879b07SJung-uk Kim ACPI_WDAT_SET_RUNNING_STATE = 9, 876ff879b07SJung-uk Kim ACPI_WDAT_GET_STOPPED_STATE = 10, 877ff879b07SJung-uk Kim ACPI_WDAT_SET_STOPPED_STATE = 11, 878ff879b07SJung-uk Kim ACPI_WDAT_GET_REBOOT = 16, 879ff879b07SJung-uk Kim ACPI_WDAT_SET_REBOOT = 17, 880ff879b07SJung-uk Kim ACPI_WDAT_GET_SHUTDOWN = 18, 881ff879b07SJung-uk Kim ACPI_WDAT_SET_SHUTDOWN = 19, 882ff879b07SJung-uk Kim ACPI_WDAT_GET_STATUS = 32, 883ff879b07SJung-uk Kim ACPI_WDAT_SET_STATUS = 33, 884ff879b07SJung-uk Kim ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */ 885ff879b07SJung-uk Kim }; 886ff879b07SJung-uk Kim 887ff879b07SJung-uk Kim /* Values for Instruction field above */ 888ff879b07SJung-uk Kim 889ff879b07SJung-uk Kim enum AcpiWdatInstructions 890ff879b07SJung-uk Kim { 891ff879b07SJung-uk Kim ACPI_WDAT_READ_VALUE = 0, 892ff879b07SJung-uk Kim ACPI_WDAT_READ_COUNTDOWN = 1, 893ff879b07SJung-uk Kim ACPI_WDAT_WRITE_VALUE = 2, 894ff879b07SJung-uk Kim ACPI_WDAT_WRITE_COUNTDOWN = 3, 895ff879b07SJung-uk Kim ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */ 896ff879b07SJung-uk Kim ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */ 897ff879b07SJung-uk Kim }; 898ff879b07SJung-uk Kim 899ff879b07SJung-uk Kim 900ff879b07SJung-uk Kim /******************************************************************************* 901ff879b07SJung-uk Kim * 902ff879b07SJung-uk Kim * WDDT - Watchdog Descriptor Table 903ff879b07SJung-uk Kim * Version 1 904ff879b07SJung-uk Kim * 905ff879b07SJung-uk Kim * Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)", 906ff879b07SJung-uk Kim * Version 001, September 2002 907ff879b07SJung-uk Kim * 908ff879b07SJung-uk Kim ******************************************************************************/ 909ff879b07SJung-uk Kim 910ff879b07SJung-uk Kim typedef struct acpi_table_wddt 911ff879b07SJung-uk Kim { 912ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 913ff879b07SJung-uk Kim UINT16 SpecVersion; 914ff879b07SJung-uk Kim UINT16 TableVersion; 915ff879b07SJung-uk Kim UINT16 PciVendorId; 916ff879b07SJung-uk Kim ACPI_GENERIC_ADDRESS Address; 917ff879b07SJung-uk Kim UINT16 MaxCount; /* Maximum counter value supported */ 918ff879b07SJung-uk Kim UINT16 MinCount; /* Minimum counter value supported */ 919ff879b07SJung-uk Kim UINT16 Period; 920ff879b07SJung-uk Kim UINT16 Status; 921ff879b07SJung-uk Kim UINT16 Capability; 922ff879b07SJung-uk Kim 923ff879b07SJung-uk Kim } ACPI_TABLE_WDDT; 924ff879b07SJung-uk Kim 925ff879b07SJung-uk Kim /* Flags for Status field above */ 926ff879b07SJung-uk Kim 927ff879b07SJung-uk Kim #define ACPI_WDDT_AVAILABLE (1) 928ff879b07SJung-uk Kim #define ACPI_WDDT_ACTIVE (1<<1) 929ff879b07SJung-uk Kim #define ACPI_WDDT_TCO_OS_OWNED (1<<2) 930ff879b07SJung-uk Kim #define ACPI_WDDT_USER_RESET (1<<11) 931ff879b07SJung-uk Kim #define ACPI_WDDT_WDT_RESET (1<<12) 932ff879b07SJung-uk Kim #define ACPI_WDDT_POWER_FAIL (1<<13) 933ff879b07SJung-uk Kim #define ACPI_WDDT_UNKNOWN_RESET (1<<14) 934ff879b07SJung-uk Kim 935ff879b07SJung-uk Kim /* Flags for Capability field above */ 936ff879b07SJung-uk Kim 937ff879b07SJung-uk Kim #define ACPI_WDDT_AUTO_RESET (1) 938ff879b07SJung-uk Kim #define ACPI_WDDT_ALERT_SUPPORT (1<<1) 939ff879b07SJung-uk Kim 940ff879b07SJung-uk Kim 941ff879b07SJung-uk Kim /******************************************************************************* 942ff879b07SJung-uk Kim * 943ff879b07SJung-uk Kim * WDRT - Watchdog Resource Table 944ff879b07SJung-uk Kim * Version 1 945ff879b07SJung-uk Kim * 946ff879b07SJung-uk Kim * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003", 947ff879b07SJung-uk Kim * Version 1.01, August 28, 2006 948ff879b07SJung-uk Kim * 949ff879b07SJung-uk Kim ******************************************************************************/ 950ff879b07SJung-uk Kim 951ff879b07SJung-uk Kim typedef struct acpi_table_wdrt 952ff879b07SJung-uk Kim { 953ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 954ff879b07SJung-uk Kim ACPI_GENERIC_ADDRESS ControlRegister; 955ff879b07SJung-uk Kim ACPI_GENERIC_ADDRESS CountRegister; 956ff879b07SJung-uk Kim UINT16 PciDeviceId; 957ff879b07SJung-uk Kim UINT16 PciVendorId; 958ff879b07SJung-uk Kim UINT8 PciBus; /* PCI Bus number */ 959ff879b07SJung-uk Kim UINT8 PciDevice; /* PCI Device number */ 960ff879b07SJung-uk Kim UINT8 PciFunction; /* PCI Function number */ 961ff879b07SJung-uk Kim UINT8 PciSegment; /* PCI Segment number */ 962ff879b07SJung-uk Kim UINT16 MaxCount; /* Maximum counter value supported */ 963ff879b07SJung-uk Kim UINT8 Units; 964ff879b07SJung-uk Kim 965ff879b07SJung-uk Kim } ACPI_TABLE_WDRT; 966ff879b07SJung-uk Kim 967ff879b07SJung-uk Kim 968ff879b07SJung-uk Kim /******************************************************************************* 969ff879b07SJung-uk Kim * 970a371a5fdSJung-uk Kim * WPBT - Windows Platform Environment Table (ACPI 6.0) 971a371a5fdSJung-uk Kim * Version 1 972a371a5fdSJung-uk Kim * 973a371a5fdSJung-uk Kim * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011 974a371a5fdSJung-uk Kim * 975a371a5fdSJung-uk Kim ******************************************************************************/ 976a371a5fdSJung-uk Kim 977a371a5fdSJung-uk Kim typedef struct acpi_table_wpbt 978a371a5fdSJung-uk Kim { 979a371a5fdSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 980a371a5fdSJung-uk Kim UINT32 HandoffSize; 981a371a5fdSJung-uk Kim UINT64 HandoffAddress; 982a371a5fdSJung-uk Kim UINT8 Layout; 983a371a5fdSJung-uk Kim UINT8 Type; 984a371a5fdSJung-uk Kim UINT16 ArgumentsLength; 985a371a5fdSJung-uk Kim 986a371a5fdSJung-uk Kim } ACPI_TABLE_WPBT; 987a371a5fdSJung-uk Kim 98897c0b5abSJung-uk Kim typedef struct acpi_wpbt_unicode 98997c0b5abSJung-uk Kim { 99097c0b5abSJung-uk Kim UINT16 *UnicodeString; 99197c0b5abSJung-uk Kim 99297c0b5abSJung-uk Kim } ACPI_WPBT_UNICODE; 99397c0b5abSJung-uk Kim 994a371a5fdSJung-uk Kim 995a371a5fdSJung-uk Kim /******************************************************************************* 996a371a5fdSJung-uk Kim * 9973ee58df5SJung-uk Kim * WSMT - Windows SMM Security Mitigations Table 998ff879b07SJung-uk Kim * Version 1 999ff879b07SJung-uk Kim * 10003ee58df5SJung-uk Kim * Conforms to "Windows SMM Security Mitigations Table", 1001ff879b07SJung-uk Kim * Version 1.0, April 18, 2016 1002ff879b07SJung-uk Kim * 1003ff879b07SJung-uk Kim ******************************************************************************/ 1004ff879b07SJung-uk Kim 1005ff879b07SJung-uk Kim typedef struct acpi_table_wsmt 1006ff879b07SJung-uk Kim { 1007ff879b07SJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 1008ff879b07SJung-uk Kim UINT32 ProtectionFlags; 1009ff879b07SJung-uk Kim 1010ff879b07SJung-uk Kim } ACPI_TABLE_WSMT; 1011ff879b07SJung-uk Kim 1012ff879b07SJung-uk Kim /* Flags for ProtectionFlags field above */ 1013ff879b07SJung-uk Kim 1014ff879b07SJung-uk Kim #define ACPI_WSMT_FIXED_COMM_BUFFERS (1) 1015ff879b07SJung-uk Kim #define ACPI_WSMT_COMM_BUFFER_NESTED_PTR_PROTECTION (2) 1016ff879b07SJung-uk Kim #define ACPI_WSMT_SYSTEM_RESOURCE_PROTECTION (4) 1017ff879b07SJung-uk Kim 1018ff879b07SJung-uk Kim 1019ff879b07SJung-uk Kim /******************************************************************************* 1020ff879b07SJung-uk Kim * 1021a371a5fdSJung-uk Kim * XENV - Xen Environment Table (ACPI 6.0) 1022a371a5fdSJung-uk Kim * Version 1 1023a371a5fdSJung-uk Kim * 1024a371a5fdSJung-uk Kim * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015 1025a371a5fdSJung-uk Kim * 1026a371a5fdSJung-uk Kim ******************************************************************************/ 1027a371a5fdSJung-uk Kim 1028a371a5fdSJung-uk Kim typedef struct acpi_table_xenv 1029a371a5fdSJung-uk Kim { 1030a371a5fdSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 1031a371a5fdSJung-uk Kim UINT64 GrantTableAddress; 1032a371a5fdSJung-uk Kim UINT64 GrantTableSize; 1033a371a5fdSJung-uk Kim UINT32 EventInterrupt; 1034a371a5fdSJung-uk Kim UINT8 EventFlags; 1035a371a5fdSJung-uk Kim 1036a371a5fdSJung-uk Kim } ACPI_TABLE_XENV; 1037a371a5fdSJung-uk Kim 1038a371a5fdSJung-uk Kim 10393f0275a0SJung-uk Kim /* Reset to default packing */ 10403f0275a0SJung-uk Kim 10413f0275a0SJung-uk Kim #pragma pack() 10423f0275a0SJung-uk Kim 10433f0275a0SJung-uk Kim #endif /* __ACTBL3_H__ */ 1044