1d6dd1baeSJung-uk Kim /****************************************************************************** 2d6dd1baeSJung-uk Kim * 3d6dd1baeSJung-uk Kim * Name: actbl2.h - ACPI Specification Revision 2.0 Tables 4d6dd1baeSJung-uk Kim * 5d6dd1baeSJung-uk Kim *****************************************************************************/ 6d6dd1baeSJung-uk Kim 7d6dd1baeSJung-uk Kim /****************************************************************************** 8d6dd1baeSJung-uk Kim * 9d6dd1baeSJung-uk Kim * 1. Copyright Notice 10d6dd1baeSJung-uk Kim * 119a179dd8SJung-uk Kim * Some or all of this work - Copyright (c) 1999 - 2010, Intel Corp. 12d6dd1baeSJung-uk Kim * All rights reserved. 13d6dd1baeSJung-uk Kim * 14d6dd1baeSJung-uk Kim * 2. License 15d6dd1baeSJung-uk Kim * 16d6dd1baeSJung-uk Kim * 2.1. This is your license from Intel Corp. under its intellectual property 17d6dd1baeSJung-uk Kim * rights. You may have additional license terms from the party that provided 18d6dd1baeSJung-uk Kim * you this software, covering your right to use that party's intellectual 19d6dd1baeSJung-uk Kim * property rights. 20d6dd1baeSJung-uk Kim * 21d6dd1baeSJung-uk Kim * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22d6dd1baeSJung-uk Kim * copy of the source code appearing in this file ("Covered Code") an 23d6dd1baeSJung-uk Kim * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24d6dd1baeSJung-uk Kim * base code distributed originally by Intel ("Original Intel Code") to copy, 25d6dd1baeSJung-uk Kim * make derivatives, distribute, use and display any portion of the Covered 26d6dd1baeSJung-uk Kim * Code in any form, with the right to sublicense such rights; and 27d6dd1baeSJung-uk Kim * 28d6dd1baeSJung-uk Kim * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29d6dd1baeSJung-uk Kim * license (with the right to sublicense), under only those claims of Intel 30d6dd1baeSJung-uk Kim * patents that are infringed by the Original Intel Code, to make, use, sell, 31d6dd1baeSJung-uk Kim * offer to sell, and import the Covered Code and derivative works thereof 32d6dd1baeSJung-uk Kim * solely to the minimum extent necessary to exercise the above copyright 33d6dd1baeSJung-uk Kim * license, and in no event shall the patent license extend to any additions 34d6dd1baeSJung-uk Kim * to or modifications of the Original Intel Code. No other license or right 35d6dd1baeSJung-uk Kim * is granted directly or by implication, estoppel or otherwise; 36d6dd1baeSJung-uk Kim * 37d6dd1baeSJung-uk Kim * The above copyright and patent license is granted only if the following 38d6dd1baeSJung-uk Kim * conditions are met: 39d6dd1baeSJung-uk Kim * 40d6dd1baeSJung-uk Kim * 3. Conditions 41d6dd1baeSJung-uk Kim * 42d6dd1baeSJung-uk Kim * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43d6dd1baeSJung-uk Kim * Redistribution of source code of any substantial portion of the Covered 44d6dd1baeSJung-uk Kim * Code or modification with rights to further distribute source must include 45d6dd1baeSJung-uk Kim * the above Copyright Notice, the above License, this list of Conditions, 46d6dd1baeSJung-uk Kim * and the following Disclaimer and Export Compliance provision. In addition, 47d6dd1baeSJung-uk Kim * Licensee must cause all Covered Code to which Licensee contributes to 48d6dd1baeSJung-uk Kim * contain a file documenting the changes Licensee made to create that Covered 49d6dd1baeSJung-uk Kim * Code and the date of any change. Licensee must include in that file the 50d6dd1baeSJung-uk Kim * documentation of any changes made by any predecessor Licensee. Licensee 51d6dd1baeSJung-uk Kim * must include a prominent statement that the modification is derived, 52d6dd1baeSJung-uk Kim * directly or indirectly, from Original Intel Code. 53d6dd1baeSJung-uk Kim * 54d6dd1baeSJung-uk Kim * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55d6dd1baeSJung-uk Kim * Redistribution of source code of any substantial portion of the Covered 56d6dd1baeSJung-uk Kim * Code or modification without rights to further distribute source must 57d6dd1baeSJung-uk Kim * include the following Disclaimer and Export Compliance provision in the 58d6dd1baeSJung-uk Kim * documentation and/or other materials provided with distribution. In 59d6dd1baeSJung-uk Kim * addition, Licensee may not authorize further sublicense of source of any 60d6dd1baeSJung-uk Kim * portion of the Covered Code, and must include terms to the effect that the 61d6dd1baeSJung-uk Kim * license from Licensee to its licensee is limited to the intellectual 62d6dd1baeSJung-uk Kim * property embodied in the software Licensee provides to its licensee, and 63d6dd1baeSJung-uk Kim * not to intellectual property embodied in modifications its licensee may 64d6dd1baeSJung-uk Kim * make. 65d6dd1baeSJung-uk Kim * 66d6dd1baeSJung-uk Kim * 3.3. Redistribution of Executable. Redistribution in executable form of any 67d6dd1baeSJung-uk Kim * substantial portion of the Covered Code or modification must reproduce the 68d6dd1baeSJung-uk Kim * above Copyright Notice, and the following Disclaimer and Export Compliance 69d6dd1baeSJung-uk Kim * provision in the documentation and/or other materials provided with the 70d6dd1baeSJung-uk Kim * distribution. 71d6dd1baeSJung-uk Kim * 72d6dd1baeSJung-uk Kim * 3.4. Intel retains all right, title, and interest in and to the Original 73d6dd1baeSJung-uk Kim * Intel Code. 74d6dd1baeSJung-uk Kim * 75d6dd1baeSJung-uk Kim * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76d6dd1baeSJung-uk Kim * Intel shall be used in advertising or otherwise to promote the sale, use or 77d6dd1baeSJung-uk Kim * other dealings in products derived from or relating to the Covered Code 78d6dd1baeSJung-uk Kim * without prior written authorization from Intel. 79d6dd1baeSJung-uk Kim * 80d6dd1baeSJung-uk Kim * 4. Disclaimer and Export Compliance 81d6dd1baeSJung-uk Kim * 82d6dd1baeSJung-uk Kim * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83d6dd1baeSJung-uk Kim * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84d6dd1baeSJung-uk Kim * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85d6dd1baeSJung-uk Kim * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86d6dd1baeSJung-uk Kim * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87d6dd1baeSJung-uk Kim * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88d6dd1baeSJung-uk Kim * PARTICULAR PURPOSE. 89d6dd1baeSJung-uk Kim * 90d6dd1baeSJung-uk Kim * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91d6dd1baeSJung-uk Kim * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92d6dd1baeSJung-uk Kim * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93d6dd1baeSJung-uk Kim * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94d6dd1baeSJung-uk Kim * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95d6dd1baeSJung-uk Kim * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96d6dd1baeSJung-uk Kim * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97d6dd1baeSJung-uk Kim * LIMITED REMEDY. 98d6dd1baeSJung-uk Kim * 99d6dd1baeSJung-uk Kim * 4.3. Licensee shall not export, either directly or indirectly, any of this 100d6dd1baeSJung-uk Kim * software or system incorporating such software without first obtaining any 101d6dd1baeSJung-uk Kim * required license or other approval from the U. S. Department of Commerce or 102d6dd1baeSJung-uk Kim * any other agency or department of the United States Government. In the 103d6dd1baeSJung-uk Kim * event Licensee exports any such software from the United States or 104d6dd1baeSJung-uk Kim * re-exports any such software from a foreign destination, Licensee shall 105d6dd1baeSJung-uk Kim * ensure that the distribution and export/re-export of the software is in 106d6dd1baeSJung-uk Kim * compliance with all laws, regulations, orders, or other restrictions of the 107d6dd1baeSJung-uk Kim * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108d6dd1baeSJung-uk Kim * any of its subsidiaries will export/re-export any technical data, process, 109d6dd1baeSJung-uk Kim * software, or service, directly or indirectly, to any country for which the 110d6dd1baeSJung-uk Kim * United States government or any agency thereof requires an export license, 111d6dd1baeSJung-uk Kim * other governmental approval, or letter of assurance, without first obtaining 112d6dd1baeSJung-uk Kim * such license, approval or letter. 113d6dd1baeSJung-uk Kim * 114d6dd1baeSJung-uk Kim *****************************************************************************/ 115d6dd1baeSJung-uk Kim 116d6dd1baeSJung-uk Kim #ifndef __ACTBL2_H__ 117d6dd1baeSJung-uk Kim #define __ACTBL2_H__ 118d6dd1baeSJung-uk Kim 119d6dd1baeSJung-uk Kim 120d6dd1baeSJung-uk Kim /******************************************************************************* 121d6dd1baeSJung-uk Kim * 122d6dd1baeSJung-uk Kim * Additional ACPI Tables (2) 123d6dd1baeSJung-uk Kim * 124d6dd1baeSJung-uk Kim * These tables are not consumed directly by the ACPICA subsystem, but are 125d6dd1baeSJung-uk Kim * included here to support device drivers and the AML disassembler. 126d6dd1baeSJung-uk Kim * 127d6dd1baeSJung-uk Kim * The tables in this file are defined by third-party specifications, and are 128d6dd1baeSJung-uk Kim * not defined directly by the ACPI specification itself. 129d6dd1baeSJung-uk Kim * 130d6dd1baeSJung-uk Kim ******************************************************************************/ 131d6dd1baeSJung-uk Kim 132d6dd1baeSJung-uk Kim 133d6dd1baeSJung-uk Kim /* 134d6dd1baeSJung-uk Kim * Values for description table header signatures for tables defined in this 135d6dd1baeSJung-uk Kim * file. Useful because they make it more difficult to inadvertently type in 136d6dd1baeSJung-uk Kim * the wrong signature. 137d6dd1baeSJung-uk Kim */ 138d6dd1baeSJung-uk Kim #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ 139d6dd1baeSJung-uk Kim #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ 140d6dd1baeSJung-uk Kim #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ 141d6dd1baeSJung-uk Kim #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ 142d6dd1baeSJung-uk Kim #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ 143d6dd1baeSJung-uk Kim #define ACPI_SIG_IBFT "IBFT" /* iSCSI Boot Firmware Table */ 144d6dd1baeSJung-uk Kim #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ 145d6dd1baeSJung-uk Kim #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ 146ca3cf4faSJung-uk Kim #define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */ 147d6dd1baeSJung-uk Kim #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ 148d6dd1baeSJung-uk Kim #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ 149d6dd1baeSJung-uk Kim #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ 150d6dd1baeSJung-uk Kim #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ 151d6dd1baeSJung-uk Kim #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ 152d6dd1baeSJung-uk Kim #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ 153d6dd1baeSJung-uk Kim #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ 154d6dd1baeSJung-uk Kim #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ 155d6dd1baeSJung-uk Kim 156d6dd1baeSJung-uk Kim 157d6dd1baeSJung-uk Kim /* 158d6dd1baeSJung-uk Kim * All tables must be byte-packed to match the ACPI specification, since 159d6dd1baeSJung-uk Kim * the tables are provided by the system BIOS. 160d6dd1baeSJung-uk Kim */ 161d6dd1baeSJung-uk Kim #pragma pack(1) 162d6dd1baeSJung-uk Kim 163d6dd1baeSJung-uk Kim /* 164d6dd1baeSJung-uk Kim * Note about bitfields: The UINT8 type is used for bitfields in ACPI tables. 165d6dd1baeSJung-uk Kim * This is the only type that is even remotely portable. Anything else is not 166d6dd1baeSJung-uk Kim * portable, so do not use any other bitfield types. 167d6dd1baeSJung-uk Kim */ 168d6dd1baeSJung-uk Kim 169d6dd1baeSJung-uk Kim 170d6dd1baeSJung-uk Kim /******************************************************************************* 171d6dd1baeSJung-uk Kim * 172d6dd1baeSJung-uk Kim * ASF - Alert Standard Format table (Signature "ASF!") 173d6dd1baeSJung-uk Kim * Revision 0x10 174d6dd1baeSJung-uk Kim * 175d6dd1baeSJung-uk Kim * Conforms to the Alert Standard Format Specification V2.0, 23 April 2003 176d6dd1baeSJung-uk Kim * 177d6dd1baeSJung-uk Kim ******************************************************************************/ 178d6dd1baeSJung-uk Kim 179d6dd1baeSJung-uk Kim typedef struct acpi_table_asf 180d6dd1baeSJung-uk Kim { 181d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 182d6dd1baeSJung-uk Kim 183d6dd1baeSJung-uk Kim } ACPI_TABLE_ASF; 184d6dd1baeSJung-uk Kim 185d6dd1baeSJung-uk Kim 186d6dd1baeSJung-uk Kim /* ASF subtable header */ 187d6dd1baeSJung-uk Kim 188d6dd1baeSJung-uk Kim typedef struct acpi_asf_header 189d6dd1baeSJung-uk Kim { 190d6dd1baeSJung-uk Kim UINT8 Type; 191d6dd1baeSJung-uk Kim UINT8 Reserved; 192d6dd1baeSJung-uk Kim UINT16 Length; 193d6dd1baeSJung-uk Kim 194d6dd1baeSJung-uk Kim } ACPI_ASF_HEADER; 195d6dd1baeSJung-uk Kim 196d6dd1baeSJung-uk Kim 197d6dd1baeSJung-uk Kim /* Values for Type field above */ 198d6dd1baeSJung-uk Kim 199d6dd1baeSJung-uk Kim enum AcpiAsfType 200d6dd1baeSJung-uk Kim { 201d6dd1baeSJung-uk Kim ACPI_ASF_TYPE_INFO = 0, 202d6dd1baeSJung-uk Kim ACPI_ASF_TYPE_ALERT = 1, 203d6dd1baeSJung-uk Kim ACPI_ASF_TYPE_CONTROL = 2, 204d6dd1baeSJung-uk Kim ACPI_ASF_TYPE_BOOT = 3, 205d6dd1baeSJung-uk Kim ACPI_ASF_TYPE_ADDRESS = 4, 206d6dd1baeSJung-uk Kim ACPI_ASF_TYPE_RESERVED = 5 207d6dd1baeSJung-uk Kim }; 208d6dd1baeSJung-uk Kim 209d6dd1baeSJung-uk Kim /* 210d6dd1baeSJung-uk Kim * ASF subtables 211d6dd1baeSJung-uk Kim */ 212d6dd1baeSJung-uk Kim 213d6dd1baeSJung-uk Kim /* 0: ASF Information */ 214d6dd1baeSJung-uk Kim 215d6dd1baeSJung-uk Kim typedef struct acpi_asf_info 216d6dd1baeSJung-uk Kim { 217d6dd1baeSJung-uk Kim ACPI_ASF_HEADER Header; 218d6dd1baeSJung-uk Kim UINT8 MinResetValue; 219d6dd1baeSJung-uk Kim UINT8 MinPollInterval; 220d6dd1baeSJung-uk Kim UINT16 SystemId; 221d6dd1baeSJung-uk Kim UINT32 MfgId; 222d6dd1baeSJung-uk Kim UINT8 Flags; 223d6dd1baeSJung-uk Kim UINT8 Reserved2[3]; 224d6dd1baeSJung-uk Kim 225d6dd1baeSJung-uk Kim } ACPI_ASF_INFO; 226d6dd1baeSJung-uk Kim 227d6dd1baeSJung-uk Kim /* Masks for Flags field above */ 228d6dd1baeSJung-uk Kim 229d6dd1baeSJung-uk Kim #define ACPI_ASF_SMBUS_PROTOCOLS (1) 230d6dd1baeSJung-uk Kim 231d6dd1baeSJung-uk Kim 232d6dd1baeSJung-uk Kim /* 1: ASF Alerts */ 233d6dd1baeSJung-uk Kim 234d6dd1baeSJung-uk Kim typedef struct acpi_asf_alert 235d6dd1baeSJung-uk Kim { 236d6dd1baeSJung-uk Kim ACPI_ASF_HEADER Header; 237d6dd1baeSJung-uk Kim UINT8 AssertMask; 238d6dd1baeSJung-uk Kim UINT8 DeassertMask; 239d6dd1baeSJung-uk Kim UINT8 Alerts; 240d6dd1baeSJung-uk Kim UINT8 DataLength; 241d6dd1baeSJung-uk Kim 242d6dd1baeSJung-uk Kim } ACPI_ASF_ALERT; 243d6dd1baeSJung-uk Kim 244d6dd1baeSJung-uk Kim typedef struct acpi_asf_alert_data 245d6dd1baeSJung-uk Kim { 246d6dd1baeSJung-uk Kim UINT8 Address; 247d6dd1baeSJung-uk Kim UINT8 Command; 248d6dd1baeSJung-uk Kim UINT8 Mask; 249d6dd1baeSJung-uk Kim UINT8 Value; 250d6dd1baeSJung-uk Kim UINT8 SensorType; 251d6dd1baeSJung-uk Kim UINT8 Type; 252d6dd1baeSJung-uk Kim UINT8 Offset; 253d6dd1baeSJung-uk Kim UINT8 SourceType; 254d6dd1baeSJung-uk Kim UINT8 Severity; 255d6dd1baeSJung-uk Kim UINT8 SensorNumber; 256d6dd1baeSJung-uk Kim UINT8 Entity; 257d6dd1baeSJung-uk Kim UINT8 Instance; 258d6dd1baeSJung-uk Kim 259d6dd1baeSJung-uk Kim } ACPI_ASF_ALERT_DATA; 260d6dd1baeSJung-uk Kim 261d6dd1baeSJung-uk Kim 262d6dd1baeSJung-uk Kim /* 2: ASF Remote Control */ 263d6dd1baeSJung-uk Kim 264d6dd1baeSJung-uk Kim typedef struct acpi_asf_remote 265d6dd1baeSJung-uk Kim { 266d6dd1baeSJung-uk Kim ACPI_ASF_HEADER Header; 267d6dd1baeSJung-uk Kim UINT8 Controls; 268d6dd1baeSJung-uk Kim UINT8 DataLength; 269d6dd1baeSJung-uk Kim UINT16 Reserved2; 270d6dd1baeSJung-uk Kim 271d6dd1baeSJung-uk Kim } ACPI_ASF_REMOTE; 272d6dd1baeSJung-uk Kim 273d6dd1baeSJung-uk Kim typedef struct acpi_asf_control_data 274d6dd1baeSJung-uk Kim { 275d6dd1baeSJung-uk Kim UINT8 Function; 276d6dd1baeSJung-uk Kim UINT8 Address; 277d6dd1baeSJung-uk Kim UINT8 Command; 278d6dd1baeSJung-uk Kim UINT8 Value; 279d6dd1baeSJung-uk Kim 280d6dd1baeSJung-uk Kim } ACPI_ASF_CONTROL_DATA; 281d6dd1baeSJung-uk Kim 282d6dd1baeSJung-uk Kim 283d6dd1baeSJung-uk Kim /* 3: ASF RMCP Boot Options */ 284d6dd1baeSJung-uk Kim 285d6dd1baeSJung-uk Kim typedef struct acpi_asf_rmcp 286d6dd1baeSJung-uk Kim { 287d6dd1baeSJung-uk Kim ACPI_ASF_HEADER Header; 288d6dd1baeSJung-uk Kim UINT8 Capabilities[7]; 289d6dd1baeSJung-uk Kim UINT8 CompletionCode; 290d6dd1baeSJung-uk Kim UINT32 EnterpriseId; 291d6dd1baeSJung-uk Kim UINT8 Command; 292d6dd1baeSJung-uk Kim UINT16 Parameter; 293d6dd1baeSJung-uk Kim UINT16 BootOptions; 294d6dd1baeSJung-uk Kim UINT16 OemParameters; 295d6dd1baeSJung-uk Kim 296d6dd1baeSJung-uk Kim } ACPI_ASF_RMCP; 297d6dd1baeSJung-uk Kim 298d6dd1baeSJung-uk Kim 299d6dd1baeSJung-uk Kim /* 4: ASF Address */ 300d6dd1baeSJung-uk Kim 301d6dd1baeSJung-uk Kim typedef struct acpi_asf_address 302d6dd1baeSJung-uk Kim { 303d6dd1baeSJung-uk Kim ACPI_ASF_HEADER Header; 304d6dd1baeSJung-uk Kim UINT8 EpromAddress; 305d6dd1baeSJung-uk Kim UINT8 Devices; 306d6dd1baeSJung-uk Kim 307d6dd1baeSJung-uk Kim } ACPI_ASF_ADDRESS; 308d6dd1baeSJung-uk Kim 309d6dd1baeSJung-uk Kim 310d6dd1baeSJung-uk Kim /******************************************************************************* 311d6dd1baeSJung-uk Kim * 312d6dd1baeSJung-uk Kim * BOOT - Simple Boot Flag Table 313d6dd1baeSJung-uk Kim * Version 1 314d6dd1baeSJung-uk Kim * 315d6dd1baeSJung-uk Kim * Conforms to the "Simple Boot Flag Specification", Version 2.1 316d6dd1baeSJung-uk Kim * 317d6dd1baeSJung-uk Kim ******************************************************************************/ 318d6dd1baeSJung-uk Kim 319d6dd1baeSJung-uk Kim typedef struct acpi_table_boot 320d6dd1baeSJung-uk Kim { 321d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 322d6dd1baeSJung-uk Kim UINT8 CmosIndex; /* Index in CMOS RAM for the boot register */ 323d6dd1baeSJung-uk Kim UINT8 Reserved[3]; 324d6dd1baeSJung-uk Kim 325d6dd1baeSJung-uk Kim } ACPI_TABLE_BOOT; 326d6dd1baeSJung-uk Kim 327d6dd1baeSJung-uk Kim 328d6dd1baeSJung-uk Kim /******************************************************************************* 329d6dd1baeSJung-uk Kim * 330d6dd1baeSJung-uk Kim * DBGP - Debug Port table 331d6dd1baeSJung-uk Kim * Version 1 332d6dd1baeSJung-uk Kim * 333d6dd1baeSJung-uk Kim * Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000 334d6dd1baeSJung-uk Kim * 335d6dd1baeSJung-uk Kim ******************************************************************************/ 336d6dd1baeSJung-uk Kim 337d6dd1baeSJung-uk Kim typedef struct acpi_table_dbgp 338d6dd1baeSJung-uk Kim { 339d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 340d6dd1baeSJung-uk Kim UINT8 Type; /* 0=full 16550, 1=subset of 16550 */ 341d6dd1baeSJung-uk Kim UINT8 Reserved[3]; 342d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS DebugPort; 343d6dd1baeSJung-uk Kim 344d6dd1baeSJung-uk Kim } ACPI_TABLE_DBGP; 345d6dd1baeSJung-uk Kim 346d6dd1baeSJung-uk Kim 347d6dd1baeSJung-uk Kim /******************************************************************************* 348d6dd1baeSJung-uk Kim * 349d6dd1baeSJung-uk Kim * DMAR - DMA Remapping table 350d6dd1baeSJung-uk Kim * Version 1 351d6dd1baeSJung-uk Kim * 352d6dd1baeSJung-uk Kim * Conforms to "Intel Virtualization Technology for Directed I/O", 353d6dd1baeSJung-uk Kim * Version 1.2, Sept. 2008 354d6dd1baeSJung-uk Kim * 355d6dd1baeSJung-uk Kim ******************************************************************************/ 356d6dd1baeSJung-uk Kim 357d6dd1baeSJung-uk Kim typedef struct acpi_table_dmar 358d6dd1baeSJung-uk Kim { 359d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 360d6dd1baeSJung-uk Kim UINT8 Width; /* Host Address Width */ 361d6dd1baeSJung-uk Kim UINT8 Flags; 362d6dd1baeSJung-uk Kim UINT8 Reserved[10]; 363d6dd1baeSJung-uk Kim 364d6dd1baeSJung-uk Kim } ACPI_TABLE_DMAR; 365d6dd1baeSJung-uk Kim 366d6dd1baeSJung-uk Kim /* Masks for Flags field above */ 367d6dd1baeSJung-uk Kim 368d6dd1baeSJung-uk Kim #define ACPI_DMAR_INTR_REMAP (1) 369d6dd1baeSJung-uk Kim 370d6dd1baeSJung-uk Kim 371d6dd1baeSJung-uk Kim /* DMAR subtable header */ 372d6dd1baeSJung-uk Kim 373d6dd1baeSJung-uk Kim typedef struct acpi_dmar_header 374d6dd1baeSJung-uk Kim { 375d6dd1baeSJung-uk Kim UINT16 Type; 376d6dd1baeSJung-uk Kim UINT16 Length; 377d6dd1baeSJung-uk Kim 378d6dd1baeSJung-uk Kim } ACPI_DMAR_HEADER; 379d6dd1baeSJung-uk Kim 380d6dd1baeSJung-uk Kim /* Values for subtable type in ACPI_DMAR_HEADER */ 381d6dd1baeSJung-uk Kim 382d6dd1baeSJung-uk Kim enum AcpiDmarType 383d6dd1baeSJung-uk Kim { 384d6dd1baeSJung-uk Kim ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, 385d6dd1baeSJung-uk Kim ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, 386d6dd1baeSJung-uk Kim ACPI_DMAR_TYPE_ATSR = 2, 387d6dd1baeSJung-uk Kim ACPI_DMAR_HARDWARE_AFFINITY = 3, 388d6dd1baeSJung-uk Kim ACPI_DMAR_TYPE_RESERVED = 4 /* 4 and greater are reserved */ 389d6dd1baeSJung-uk Kim }; 390d6dd1baeSJung-uk Kim 391d6dd1baeSJung-uk Kim 392d6dd1baeSJung-uk Kim /* DMAR Device Scope structure */ 393d6dd1baeSJung-uk Kim 394d6dd1baeSJung-uk Kim typedef struct acpi_dmar_device_scope 395d6dd1baeSJung-uk Kim { 396d6dd1baeSJung-uk Kim UINT8 EntryType; 397d6dd1baeSJung-uk Kim UINT8 Length; 398d6dd1baeSJung-uk Kim UINT16 Reserved; 399d6dd1baeSJung-uk Kim UINT8 EnumerationId; 400d6dd1baeSJung-uk Kim UINT8 Bus; 401d6dd1baeSJung-uk Kim 402d6dd1baeSJung-uk Kim } ACPI_DMAR_DEVICE_SCOPE; 403d6dd1baeSJung-uk Kim 404d6dd1baeSJung-uk Kim /* Values for EntryType in ACPI_DMAR_DEVICE_SCOPE */ 405d6dd1baeSJung-uk Kim 406d6dd1baeSJung-uk Kim enum AcpiDmarScopeType 407d6dd1baeSJung-uk Kim { 408d6dd1baeSJung-uk Kim ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0, 409d6dd1baeSJung-uk Kim ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1, 410d6dd1baeSJung-uk Kim ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, 411d6dd1baeSJung-uk Kim ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3, 412d6dd1baeSJung-uk Kim ACPI_DMAR_SCOPE_TYPE_HPET = 4, 413d6dd1baeSJung-uk Kim ACPI_DMAR_SCOPE_TYPE_RESERVED = 5 /* 5 and greater are reserved */ 414d6dd1baeSJung-uk Kim }; 415d6dd1baeSJung-uk Kim 416d6dd1baeSJung-uk Kim typedef struct acpi_dmar_pci_path 417d6dd1baeSJung-uk Kim { 418d6dd1baeSJung-uk Kim UINT8 Device; 419d6dd1baeSJung-uk Kim UINT8 Function; 420d6dd1baeSJung-uk Kim 421d6dd1baeSJung-uk Kim } ACPI_DMAR_PCI_PATH; 422d6dd1baeSJung-uk Kim 423d6dd1baeSJung-uk Kim 424d6dd1baeSJung-uk Kim /* 425d6dd1baeSJung-uk Kim * DMAR Sub-tables, correspond to Type in ACPI_DMAR_HEADER 426d6dd1baeSJung-uk Kim */ 427d6dd1baeSJung-uk Kim 428d6dd1baeSJung-uk Kim /* 0: Hardware Unit Definition */ 429d6dd1baeSJung-uk Kim 430d6dd1baeSJung-uk Kim typedef struct acpi_dmar_hardware_unit 431d6dd1baeSJung-uk Kim { 432d6dd1baeSJung-uk Kim ACPI_DMAR_HEADER Header; 433d6dd1baeSJung-uk Kim UINT8 Flags; 434d6dd1baeSJung-uk Kim UINT8 Reserved; 435d6dd1baeSJung-uk Kim UINT16 Segment; 436d6dd1baeSJung-uk Kim UINT64 Address; /* Register Base Address */ 437d6dd1baeSJung-uk Kim 438d6dd1baeSJung-uk Kim } ACPI_DMAR_HARDWARE_UNIT; 439d6dd1baeSJung-uk Kim 440d6dd1baeSJung-uk Kim /* Masks for Flags field above */ 441d6dd1baeSJung-uk Kim 442d6dd1baeSJung-uk Kim #define ACPI_DMAR_INCLUDE_ALL (1) 443d6dd1baeSJung-uk Kim 444d6dd1baeSJung-uk Kim 445d6dd1baeSJung-uk Kim /* 1: Reserved Memory Defininition */ 446d6dd1baeSJung-uk Kim 447d6dd1baeSJung-uk Kim typedef struct acpi_dmar_reserved_memory 448d6dd1baeSJung-uk Kim { 449d6dd1baeSJung-uk Kim ACPI_DMAR_HEADER Header; 450d6dd1baeSJung-uk Kim UINT16 Reserved; 451d6dd1baeSJung-uk Kim UINT16 Segment; 452d6dd1baeSJung-uk Kim UINT64 BaseAddress; /* 4K aligned base address */ 453d6dd1baeSJung-uk Kim UINT64 EndAddress; /* 4K aligned limit address */ 454d6dd1baeSJung-uk Kim 455d6dd1baeSJung-uk Kim } ACPI_DMAR_RESERVED_MEMORY; 456d6dd1baeSJung-uk Kim 457d6dd1baeSJung-uk Kim /* Masks for Flags field above */ 458d6dd1baeSJung-uk Kim 459d6dd1baeSJung-uk Kim #define ACPI_DMAR_ALLOW_ALL (1) 460d6dd1baeSJung-uk Kim 461d6dd1baeSJung-uk Kim 462d6dd1baeSJung-uk Kim /* 2: Root Port ATS Capability Reporting Structure */ 463d6dd1baeSJung-uk Kim 464d6dd1baeSJung-uk Kim typedef struct acpi_dmar_atsr 465d6dd1baeSJung-uk Kim { 466d6dd1baeSJung-uk Kim ACPI_DMAR_HEADER Header; 467d6dd1baeSJung-uk Kim UINT8 Flags; 468d6dd1baeSJung-uk Kim UINT8 Reserved; 469d6dd1baeSJung-uk Kim UINT16 Segment; 470d6dd1baeSJung-uk Kim 471d6dd1baeSJung-uk Kim } ACPI_DMAR_ATSR; 472d6dd1baeSJung-uk Kim 473d6dd1baeSJung-uk Kim /* Masks for Flags field above */ 474d6dd1baeSJung-uk Kim 475d6dd1baeSJung-uk Kim #define ACPI_DMAR_ALL_PORTS (1) 476d6dd1baeSJung-uk Kim 477d6dd1baeSJung-uk Kim 478d6dd1baeSJung-uk Kim /* 3: Remapping Hardware Static Affinity Structure */ 479d6dd1baeSJung-uk Kim 480d6dd1baeSJung-uk Kim typedef struct acpi_dmar_rhsa 481d6dd1baeSJung-uk Kim { 482d6dd1baeSJung-uk Kim ACPI_DMAR_HEADER Header; 483d6dd1baeSJung-uk Kim UINT32 Reserved; 484d6dd1baeSJung-uk Kim UINT64 BaseAddress; 485d6dd1baeSJung-uk Kim UINT32 ProximityDomain; 486d6dd1baeSJung-uk Kim 487d6dd1baeSJung-uk Kim } ACPI_DMAR_RHSA; 488d6dd1baeSJung-uk Kim 489d6dd1baeSJung-uk Kim 490d6dd1baeSJung-uk Kim /******************************************************************************* 491d6dd1baeSJung-uk Kim * 492d6dd1baeSJung-uk Kim * HPET - High Precision Event Timer table 493d6dd1baeSJung-uk Kim * Version 1 494d6dd1baeSJung-uk Kim * 495d6dd1baeSJung-uk Kim * Conforms to "IA-PC HPET (High Precision Event Timers) Specification", 496d6dd1baeSJung-uk Kim * Version 1.0a, October 2004 497d6dd1baeSJung-uk Kim * 498d6dd1baeSJung-uk Kim ******************************************************************************/ 499d6dd1baeSJung-uk Kim 500d6dd1baeSJung-uk Kim typedef struct acpi_table_hpet 501d6dd1baeSJung-uk Kim { 502d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 503d6dd1baeSJung-uk Kim UINT32 Id; /* Hardware ID of event timer block */ 504d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS Address; /* Address of event timer block */ 505d6dd1baeSJung-uk Kim UINT8 Sequence; /* HPET sequence number */ 506d6dd1baeSJung-uk Kim UINT16 MinimumTick; /* Main counter min tick, periodic mode */ 507d6dd1baeSJung-uk Kim UINT8 Flags; 508d6dd1baeSJung-uk Kim 509d6dd1baeSJung-uk Kim } ACPI_TABLE_HPET; 510d6dd1baeSJung-uk Kim 511d6dd1baeSJung-uk Kim /* Masks for Flags field above */ 512d6dd1baeSJung-uk Kim 513d6dd1baeSJung-uk Kim #define ACPI_HPET_PAGE_PROTECT_MASK (3) 514d6dd1baeSJung-uk Kim 515d6dd1baeSJung-uk Kim /* Values for Page Protect flags */ 516d6dd1baeSJung-uk Kim 517d6dd1baeSJung-uk Kim enum AcpiHpetPageProtect 518d6dd1baeSJung-uk Kim { 519d6dd1baeSJung-uk Kim ACPI_HPET_NO_PAGE_PROTECT = 0, 520d6dd1baeSJung-uk Kim ACPI_HPET_PAGE_PROTECT4 = 1, 521d6dd1baeSJung-uk Kim ACPI_HPET_PAGE_PROTECT64 = 2 522d6dd1baeSJung-uk Kim }; 523d6dd1baeSJung-uk Kim 524d6dd1baeSJung-uk Kim 525d6dd1baeSJung-uk Kim /******************************************************************************* 526d6dd1baeSJung-uk Kim * 527d6dd1baeSJung-uk Kim * IBFT - Boot Firmware Table 528d6dd1baeSJung-uk Kim * Version 1 529d6dd1baeSJung-uk Kim * 530d6dd1baeSJung-uk Kim * Conforms to "iSCSI Boot Firmware Table (iBFT) as Defined in ACPI 3.0b 531d6dd1baeSJung-uk Kim * Specification", Version 1.01, March 1, 2007 532d6dd1baeSJung-uk Kim * 533d6dd1baeSJung-uk Kim * Note: It appears that this table is not intended to appear in the RSDT/XSDT. 534d6dd1baeSJung-uk Kim * Therefore, it is not currently supported by the disassembler. 535d6dd1baeSJung-uk Kim * 536d6dd1baeSJung-uk Kim ******************************************************************************/ 537d6dd1baeSJung-uk Kim 538d6dd1baeSJung-uk Kim typedef struct acpi_table_ibft 539d6dd1baeSJung-uk Kim { 540d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 541d6dd1baeSJung-uk Kim UINT8 Reserved[12]; 542d6dd1baeSJung-uk Kim 543d6dd1baeSJung-uk Kim } ACPI_TABLE_IBFT; 544d6dd1baeSJung-uk Kim 545d6dd1baeSJung-uk Kim 546d6dd1baeSJung-uk Kim /* IBFT common subtable header */ 547d6dd1baeSJung-uk Kim 548d6dd1baeSJung-uk Kim typedef struct acpi_ibft_header 549d6dd1baeSJung-uk Kim { 550d6dd1baeSJung-uk Kim UINT8 Type; 551d6dd1baeSJung-uk Kim UINT8 Version; 552d6dd1baeSJung-uk Kim UINT16 Length; 553d6dd1baeSJung-uk Kim UINT8 Index; 554d6dd1baeSJung-uk Kim UINT8 Flags; 555d6dd1baeSJung-uk Kim 556d6dd1baeSJung-uk Kim } ACPI_IBFT_HEADER; 557d6dd1baeSJung-uk Kim 558d6dd1baeSJung-uk Kim /* Values for Type field above */ 559d6dd1baeSJung-uk Kim 560d6dd1baeSJung-uk Kim enum AcpiIbftType 561d6dd1baeSJung-uk Kim { 562d6dd1baeSJung-uk Kim ACPI_IBFT_TYPE_NOT_USED = 0, 563d6dd1baeSJung-uk Kim ACPI_IBFT_TYPE_CONTROL = 1, 564d6dd1baeSJung-uk Kim ACPI_IBFT_TYPE_INITIATOR = 2, 565d6dd1baeSJung-uk Kim ACPI_IBFT_TYPE_NIC = 3, 566d6dd1baeSJung-uk Kim ACPI_IBFT_TYPE_TARGET = 4, 567d6dd1baeSJung-uk Kim ACPI_IBFT_TYPE_EXTENSIONS = 5, 568d6dd1baeSJung-uk Kim ACPI_IBFT_TYPE_RESERVED = 6 /* 6 and greater are reserved */ 569d6dd1baeSJung-uk Kim }; 570d6dd1baeSJung-uk Kim 571d6dd1baeSJung-uk Kim 572d6dd1baeSJung-uk Kim /* IBFT subtables */ 573d6dd1baeSJung-uk Kim 574d6dd1baeSJung-uk Kim typedef struct acpi_ibft_control 575d6dd1baeSJung-uk Kim { 576d6dd1baeSJung-uk Kim ACPI_IBFT_HEADER Header; 577d6dd1baeSJung-uk Kim UINT16 Extensions; 578d6dd1baeSJung-uk Kim UINT16 InitiatorOffset; 579d6dd1baeSJung-uk Kim UINT16 Nic0Offset; 580d6dd1baeSJung-uk Kim UINT16 Target0Offset; 581d6dd1baeSJung-uk Kim UINT16 Nic1Offset; 582d6dd1baeSJung-uk Kim UINT16 Target1Offset; 583d6dd1baeSJung-uk Kim 584d6dd1baeSJung-uk Kim } ACPI_IBFT_CONTROL; 585d6dd1baeSJung-uk Kim 586d6dd1baeSJung-uk Kim typedef struct acpi_ibft_initiator 587d6dd1baeSJung-uk Kim { 588d6dd1baeSJung-uk Kim ACPI_IBFT_HEADER Header; 589d6dd1baeSJung-uk Kim UINT8 SnsServer[16]; 590d6dd1baeSJung-uk Kim UINT8 SlpServer[16]; 591d6dd1baeSJung-uk Kim UINT8 PrimaryServer[16]; 592d6dd1baeSJung-uk Kim UINT8 SecondaryServer[16]; 593d6dd1baeSJung-uk Kim UINT16 NameLength; 594d6dd1baeSJung-uk Kim UINT16 NameOffset; 595d6dd1baeSJung-uk Kim 596d6dd1baeSJung-uk Kim } ACPI_IBFT_INITIATOR; 597d6dd1baeSJung-uk Kim 598d6dd1baeSJung-uk Kim typedef struct acpi_ibft_nic 599d6dd1baeSJung-uk Kim { 600d6dd1baeSJung-uk Kim ACPI_IBFT_HEADER Header; 601d6dd1baeSJung-uk Kim UINT8 IpAddress[16]; 602d6dd1baeSJung-uk Kim UINT8 SubnetMaskPrefix; 603d6dd1baeSJung-uk Kim UINT8 Origin; 604d6dd1baeSJung-uk Kim UINT8 Gateway[16]; 605d6dd1baeSJung-uk Kim UINT8 PrimaryDns[16]; 606d6dd1baeSJung-uk Kim UINT8 SecondaryDns[16]; 607d6dd1baeSJung-uk Kim UINT8 Dhcp[16]; 608d6dd1baeSJung-uk Kim UINT16 Vlan; 609d6dd1baeSJung-uk Kim UINT8 MacAddress[6]; 610d6dd1baeSJung-uk Kim UINT16 PciAddress; 611d6dd1baeSJung-uk Kim UINT16 NameLength; 612d6dd1baeSJung-uk Kim UINT16 NameOffset; 613d6dd1baeSJung-uk Kim 614d6dd1baeSJung-uk Kim } ACPI_IBFT_NIC; 615d6dd1baeSJung-uk Kim 616d6dd1baeSJung-uk Kim typedef struct acpi_ibft_target 617d6dd1baeSJung-uk Kim { 618d6dd1baeSJung-uk Kim ACPI_IBFT_HEADER Header; 619d6dd1baeSJung-uk Kim UINT8 TargetIpAddress[16]; 620d6dd1baeSJung-uk Kim UINT16 TargetIpSocket; 621d6dd1baeSJung-uk Kim UINT8 TargetBootLun[8]; 622d6dd1baeSJung-uk Kim UINT8 ChapType; 623d6dd1baeSJung-uk Kim UINT8 NicAssociation; 624d6dd1baeSJung-uk Kim UINT16 TargetNameLength; 625d6dd1baeSJung-uk Kim UINT16 TargetNameOffset; 626d6dd1baeSJung-uk Kim UINT16 ChapNameLength; 627d6dd1baeSJung-uk Kim UINT16 ChapNameOffset; 628d6dd1baeSJung-uk Kim UINT16 ChapSecretLength; 629d6dd1baeSJung-uk Kim UINT16 ChapSecretOffset; 630d6dd1baeSJung-uk Kim UINT16 ReverseChapNameLength; 631d6dd1baeSJung-uk Kim UINT16 ReverseChapNameOffset; 632d6dd1baeSJung-uk Kim UINT16 ReverseChapSecretLength; 633d6dd1baeSJung-uk Kim UINT16 ReverseChapSecretOffset; 634d6dd1baeSJung-uk Kim 635d6dd1baeSJung-uk Kim } ACPI_IBFT_TARGET; 636d6dd1baeSJung-uk Kim 637d6dd1baeSJung-uk Kim 638d6dd1baeSJung-uk Kim /******************************************************************************* 639d6dd1baeSJung-uk Kim * 640d6dd1baeSJung-uk Kim * IVRS - I/O Virtualization Reporting Structure 641d6dd1baeSJung-uk Kim * Version 1 642d6dd1baeSJung-uk Kim * 643d6dd1baeSJung-uk Kim * Conforms to "AMD I/O Virtualization Technology (IOMMU) Specification", 644d6dd1baeSJung-uk Kim * Revision 1.26, February 2009. 645d6dd1baeSJung-uk Kim * 646d6dd1baeSJung-uk Kim ******************************************************************************/ 647d6dd1baeSJung-uk Kim 648d6dd1baeSJung-uk Kim typedef struct acpi_table_ivrs 649d6dd1baeSJung-uk Kim { 650d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 651d6dd1baeSJung-uk Kim UINT32 Info; /* Common virtualization info */ 652d6dd1baeSJung-uk Kim UINT64 Reserved; 653d6dd1baeSJung-uk Kim 654d6dd1baeSJung-uk Kim } ACPI_TABLE_IVRS; 655d6dd1baeSJung-uk Kim 656d6dd1baeSJung-uk Kim /* Values for Info field above */ 657d6dd1baeSJung-uk Kim 658d6dd1baeSJung-uk Kim #define ACPI_IVRS_PHYSICAL_SIZE 0x00007F00 /* 7 bits, physical address size */ 659d6dd1baeSJung-uk Kim #define ACPI_IVRS_VIRTUAL_SIZE 0x003F8000 /* 7 bits, virtual address size */ 660d6dd1baeSJung-uk Kim #define ACPI_IVRS_ATS_RESERVED 0x00400000 /* ATS address translation range reserved */ 661d6dd1baeSJung-uk Kim 662d6dd1baeSJung-uk Kim 663d6dd1baeSJung-uk Kim /* IVRS subtable header */ 664d6dd1baeSJung-uk Kim 665d6dd1baeSJung-uk Kim typedef struct acpi_ivrs_header 666d6dd1baeSJung-uk Kim { 667d6dd1baeSJung-uk Kim UINT8 Type; /* Subtable type */ 668d6dd1baeSJung-uk Kim UINT8 Flags; 669d6dd1baeSJung-uk Kim UINT16 Length; /* Subtable length */ 670d6dd1baeSJung-uk Kim UINT16 DeviceId; /* ID of IOMMU */ 671d6dd1baeSJung-uk Kim 672d6dd1baeSJung-uk Kim } ACPI_IVRS_HEADER; 673d6dd1baeSJung-uk Kim 674d6dd1baeSJung-uk Kim /* Values for subtable Type above */ 675d6dd1baeSJung-uk Kim 676d6dd1baeSJung-uk Kim enum AcpiIvrsType 677d6dd1baeSJung-uk Kim { 678d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_HARDWARE = 0x10, 679d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_MEMORY1 = 0x20, 680d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_MEMORY2 = 0x21, 681d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_MEMORY3 = 0x22 682d6dd1baeSJung-uk Kim }; 683d6dd1baeSJung-uk Kim 684d6dd1baeSJung-uk Kim /* Masks for Flags field above for IVHD subtable */ 685d6dd1baeSJung-uk Kim 686d6dd1baeSJung-uk Kim #define ACPI_IVHD_TT_ENABLE (1) 687d6dd1baeSJung-uk Kim #define ACPI_IVHD_PASS_PW (1<<1) 688d6dd1baeSJung-uk Kim #define ACPI_IVHD_RES_PASS_PW (1<<2) 689d6dd1baeSJung-uk Kim #define ACPI_IVHD_ISOC (1<<3) 690d6dd1baeSJung-uk Kim #define ACPI_IVHD_IOTLB (1<<4) 691d6dd1baeSJung-uk Kim 692d6dd1baeSJung-uk Kim /* Masks for Flags field above for IVMD subtable */ 693d6dd1baeSJung-uk Kim 694d6dd1baeSJung-uk Kim #define ACPI_IVMD_UNITY (1) 695d6dd1baeSJung-uk Kim #define ACPI_IVMD_READ (1<<1) 696d6dd1baeSJung-uk Kim #define ACPI_IVMD_WRITE (1<<2) 697d6dd1baeSJung-uk Kim #define ACPI_IVMD_EXCLUSION_RANGE (1<<3) 698d6dd1baeSJung-uk Kim 699d6dd1baeSJung-uk Kim 700d6dd1baeSJung-uk Kim /* 701d6dd1baeSJung-uk Kim * IVRS subtables, correspond to Type in ACPI_IVRS_HEADER 702d6dd1baeSJung-uk Kim */ 703d6dd1baeSJung-uk Kim 704d6dd1baeSJung-uk Kim /* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */ 705d6dd1baeSJung-uk Kim 706d6dd1baeSJung-uk Kim typedef struct acpi_ivrs_hardware 707d6dd1baeSJung-uk Kim { 708d6dd1baeSJung-uk Kim ACPI_IVRS_HEADER Header; 709d6dd1baeSJung-uk Kim UINT16 CapabilityOffset; /* Offset for IOMMU control fields */ 710d6dd1baeSJung-uk Kim UINT64 BaseAddress; /* IOMMU control registers */ 711d6dd1baeSJung-uk Kim UINT16 PciSegmentGroup; 712d6dd1baeSJung-uk Kim UINT16 Info; /* MSI number and unit ID */ 713d6dd1baeSJung-uk Kim UINT32 Reserved; 714d6dd1baeSJung-uk Kim 715d6dd1baeSJung-uk Kim } ACPI_IVRS_HARDWARE; 716d6dd1baeSJung-uk Kim 717d6dd1baeSJung-uk Kim /* Masks for Info field above */ 718d6dd1baeSJung-uk Kim 719d6dd1baeSJung-uk Kim #define ACPI_IVHD_MSI_NUMBER_MASK 0x001F /* 5 bits, MSI message number */ 720d6dd1baeSJung-uk Kim #define ACPI_IVHD_UNIT_ID_MASK 0x1F00 /* 5 bits, UnitID */ 721d6dd1baeSJung-uk Kim 722d6dd1baeSJung-uk Kim 723d6dd1baeSJung-uk Kim /* 724d6dd1baeSJung-uk Kim * Device Entries for IVHD subtable, appear after ACPI_IVRS_HARDWARE structure. 725d6dd1baeSJung-uk Kim * Upper two bits of the Type field are the (encoded) length of the structure. 726d6dd1baeSJung-uk Kim * Currently, only 4 and 8 byte entries are defined. 16 and 32 byte entries 727d6dd1baeSJung-uk Kim * are reserved for future use but not defined. 728d6dd1baeSJung-uk Kim */ 729d6dd1baeSJung-uk Kim typedef struct acpi_ivrs_de_header 730d6dd1baeSJung-uk Kim { 731d6dd1baeSJung-uk Kim UINT8 Type; 732d6dd1baeSJung-uk Kim UINT16 Id; 733d6dd1baeSJung-uk Kim UINT8 DataSetting; 734d6dd1baeSJung-uk Kim 735d6dd1baeSJung-uk Kim } ACPI_IVRS_DE_HEADER; 736d6dd1baeSJung-uk Kim 737d6dd1baeSJung-uk Kim /* Length of device entry is in the top two bits of Type field above */ 738d6dd1baeSJung-uk Kim 739d6dd1baeSJung-uk Kim #define ACPI_IVHD_ENTRY_LENGTH 0xC0 740d6dd1baeSJung-uk Kim 741d6dd1baeSJung-uk Kim /* Values for device entry Type field above */ 742d6dd1baeSJung-uk Kim 743d6dd1baeSJung-uk Kim enum AcpiIvrsDeviceEntryType 744d6dd1baeSJung-uk Kim { 745d6dd1baeSJung-uk Kim /* 4-byte device entries, all use ACPI_IVRS_DEVICE4 */ 746d6dd1baeSJung-uk Kim 747d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_PAD4 = 0, 748d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_ALL = 1, 749d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_SELECT = 2, 750d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_START = 3, 751d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_END = 4, 752d6dd1baeSJung-uk Kim 753d6dd1baeSJung-uk Kim /* 8-byte device entries */ 754d6dd1baeSJung-uk Kim 755d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_PAD8 = 64, 756d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_NOT_USED = 65, 757d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_ALIAS_SELECT = 66, /* Uses ACPI_IVRS_DEVICE8A */ 758d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_ALIAS_START = 67, /* Uses ACPI_IVRS_DEVICE8A */ 759d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_EXT_SELECT = 70, /* Uses ACPI_IVRS_DEVICE8B */ 760d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_EXT_START = 71, /* Uses ACPI_IVRS_DEVICE8B */ 761d6dd1baeSJung-uk Kim ACPI_IVRS_TYPE_SPECIAL = 72 /* Uses ACPI_IVRS_DEVICE8C */ 762d6dd1baeSJung-uk Kim }; 763d6dd1baeSJung-uk Kim 764d6dd1baeSJung-uk Kim /* Values for Data field above */ 765d6dd1baeSJung-uk Kim 766d6dd1baeSJung-uk Kim #define ACPI_IVHD_INIT_PASS (1) 767d6dd1baeSJung-uk Kim #define ACPI_IVHD_EINT_PASS (1<<1) 768d6dd1baeSJung-uk Kim #define ACPI_IVHD_NMI_PASS (1<<2) 769d6dd1baeSJung-uk Kim #define ACPI_IVHD_SYSTEM_MGMT (3<<4) 770d6dd1baeSJung-uk Kim #define ACPI_IVHD_LINT0_PASS (1<<6) 771d6dd1baeSJung-uk Kim #define ACPI_IVHD_LINT1_PASS (1<<7) 772d6dd1baeSJung-uk Kim 773d6dd1baeSJung-uk Kim 774d6dd1baeSJung-uk Kim /* Types 0-4: 4-byte device entry */ 775d6dd1baeSJung-uk Kim 776d6dd1baeSJung-uk Kim typedef struct acpi_ivrs_device4 777d6dd1baeSJung-uk Kim { 778d6dd1baeSJung-uk Kim ACPI_IVRS_DE_HEADER Header; 779d6dd1baeSJung-uk Kim 780d6dd1baeSJung-uk Kim } ACPI_IVRS_DEVICE4; 781d6dd1baeSJung-uk Kim 782d6dd1baeSJung-uk Kim /* Types 66-67: 8-byte device entry */ 783d6dd1baeSJung-uk Kim 784d6dd1baeSJung-uk Kim typedef struct acpi_ivrs_device8a 785d6dd1baeSJung-uk Kim { 786d6dd1baeSJung-uk Kim ACPI_IVRS_DE_HEADER Header; 787d6dd1baeSJung-uk Kim UINT8 Reserved1; 788d6dd1baeSJung-uk Kim UINT16 UsedId; 789d6dd1baeSJung-uk Kim UINT8 Reserved2; 790d6dd1baeSJung-uk Kim 791d6dd1baeSJung-uk Kim } ACPI_IVRS_DEVICE8A; 792d6dd1baeSJung-uk Kim 793d6dd1baeSJung-uk Kim /* Types 70-71: 8-byte device entry */ 794d6dd1baeSJung-uk Kim 795d6dd1baeSJung-uk Kim typedef struct acpi_ivrs_device8b 796d6dd1baeSJung-uk Kim { 797d6dd1baeSJung-uk Kim ACPI_IVRS_DE_HEADER Header; 798d6dd1baeSJung-uk Kim UINT32 ExtendedData; 799d6dd1baeSJung-uk Kim 800d6dd1baeSJung-uk Kim } ACPI_IVRS_DEVICE8B; 801d6dd1baeSJung-uk Kim 802d6dd1baeSJung-uk Kim /* Values for ExtendedData above */ 803d6dd1baeSJung-uk Kim 804d6dd1baeSJung-uk Kim #define ACPI_IVHD_ATS_DISABLED (1<<31) 805d6dd1baeSJung-uk Kim 806d6dd1baeSJung-uk Kim /* Type 72: 8-byte device entry */ 807d6dd1baeSJung-uk Kim 808d6dd1baeSJung-uk Kim typedef struct acpi_ivrs_device8c 809d6dd1baeSJung-uk Kim { 810d6dd1baeSJung-uk Kim ACPI_IVRS_DE_HEADER Header; 811d6dd1baeSJung-uk Kim UINT8 Handle; 812d6dd1baeSJung-uk Kim UINT16 UsedId; 813d6dd1baeSJung-uk Kim UINT8 Variety; 814d6dd1baeSJung-uk Kim 815d6dd1baeSJung-uk Kim } ACPI_IVRS_DEVICE8C; 816d6dd1baeSJung-uk Kim 817d6dd1baeSJung-uk Kim /* Values for Variety field above */ 818d6dd1baeSJung-uk Kim 819d6dd1baeSJung-uk Kim #define ACPI_IVHD_IOAPIC 1 820d6dd1baeSJung-uk Kim #define ACPI_IVHD_HPET 2 821d6dd1baeSJung-uk Kim 822d6dd1baeSJung-uk Kim 823d6dd1baeSJung-uk Kim /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */ 824d6dd1baeSJung-uk Kim 825d6dd1baeSJung-uk Kim typedef struct acpi_ivrs_memory 826d6dd1baeSJung-uk Kim { 827d6dd1baeSJung-uk Kim ACPI_IVRS_HEADER Header; 828d6dd1baeSJung-uk Kim UINT16 AuxData; 829d6dd1baeSJung-uk Kim UINT64 Reserved; 830d6dd1baeSJung-uk Kim UINT64 StartAddress; 831d6dd1baeSJung-uk Kim UINT64 MemoryLength; 832d6dd1baeSJung-uk Kim 833d6dd1baeSJung-uk Kim } ACPI_IVRS_MEMORY; 834d6dd1baeSJung-uk Kim 835d6dd1baeSJung-uk Kim 836d6dd1baeSJung-uk Kim /******************************************************************************* 837d6dd1baeSJung-uk Kim * 838d6dd1baeSJung-uk Kim * MCFG - PCI Memory Mapped Configuration table and sub-table 839d6dd1baeSJung-uk Kim * Version 1 840d6dd1baeSJung-uk Kim * 841d6dd1baeSJung-uk Kim * Conforms to "PCI Firmware Specification", Revision 3.0, June 20, 2005 842d6dd1baeSJung-uk Kim * 843d6dd1baeSJung-uk Kim ******************************************************************************/ 844d6dd1baeSJung-uk Kim 845d6dd1baeSJung-uk Kim typedef struct acpi_table_mcfg 846d6dd1baeSJung-uk Kim { 847d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 848d6dd1baeSJung-uk Kim UINT8 Reserved[8]; 849d6dd1baeSJung-uk Kim 850d6dd1baeSJung-uk Kim } ACPI_TABLE_MCFG; 851d6dd1baeSJung-uk Kim 852d6dd1baeSJung-uk Kim 853d6dd1baeSJung-uk Kim /* Subtable */ 854d6dd1baeSJung-uk Kim 855d6dd1baeSJung-uk Kim typedef struct acpi_mcfg_allocation 856d6dd1baeSJung-uk Kim { 857d6dd1baeSJung-uk Kim UINT64 Address; /* Base address, processor-relative */ 858d6dd1baeSJung-uk Kim UINT16 PciSegment; /* PCI segment group number */ 859d6dd1baeSJung-uk Kim UINT8 StartBusNumber; /* Starting PCI Bus number */ 860d6dd1baeSJung-uk Kim UINT8 EndBusNumber; /* Final PCI Bus number */ 861d6dd1baeSJung-uk Kim UINT32 Reserved; 862d6dd1baeSJung-uk Kim 863d6dd1baeSJung-uk Kim } ACPI_MCFG_ALLOCATION; 864d6dd1baeSJung-uk Kim 865d6dd1baeSJung-uk Kim 866d6dd1baeSJung-uk Kim /******************************************************************************* 867d6dd1baeSJung-uk Kim * 868ca3cf4faSJung-uk Kim * MCHI - Management Controller Host Interface Table 869ca3cf4faSJung-uk Kim * Version 1 870ca3cf4faSJung-uk Kim * 871ca3cf4faSJung-uk Kim * Conforms to "Management Component Transport Protocol (MCTP) Host 872ca3cf4faSJung-uk Kim * Interface Specification", Revision 1.0.0a, October 13, 2009 873ca3cf4faSJung-uk Kim * 874ca3cf4faSJung-uk Kim ******************************************************************************/ 875ca3cf4faSJung-uk Kim 876ca3cf4faSJung-uk Kim typedef struct acpi_table_mchi 877ca3cf4faSJung-uk Kim { 878ca3cf4faSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 879ca3cf4faSJung-uk Kim UINT8 InterfaceType; 880ca3cf4faSJung-uk Kim UINT8 Protocol; 881ca3cf4faSJung-uk Kim UINT64 ProtocolData; 882ca3cf4faSJung-uk Kim UINT8 InterruptType; 883ca3cf4faSJung-uk Kim UINT8 Gpe; 884ca3cf4faSJung-uk Kim UINT8 PciDeviceFlag; 885ca3cf4faSJung-uk Kim UINT32 GlobalInterrupt; 886ca3cf4faSJung-uk Kim ACPI_GENERIC_ADDRESS ControlRegister; 887ca3cf4faSJung-uk Kim UINT8 PciSegment; 888ca3cf4faSJung-uk Kim UINT8 PciBus; 889ca3cf4faSJung-uk Kim UINT8 PciDevice; 890ca3cf4faSJung-uk Kim UINT8 PciFunction; 891ca3cf4faSJung-uk Kim 892ca3cf4faSJung-uk Kim } ACPI_TABLE_MCHI; 893ca3cf4faSJung-uk Kim 894ca3cf4faSJung-uk Kim 895ca3cf4faSJung-uk Kim /******************************************************************************* 896ca3cf4faSJung-uk Kim * 897d6dd1baeSJung-uk Kim * SPCR - Serial Port Console Redirection table 898d6dd1baeSJung-uk Kim * Version 1 899d6dd1baeSJung-uk Kim * 900d6dd1baeSJung-uk Kim * Conforms to "Serial Port Console Redirection Table", 901d6dd1baeSJung-uk Kim * Version 1.00, January 11, 2002 902d6dd1baeSJung-uk Kim * 903d6dd1baeSJung-uk Kim ******************************************************************************/ 904d6dd1baeSJung-uk Kim 905d6dd1baeSJung-uk Kim typedef struct acpi_table_spcr 906d6dd1baeSJung-uk Kim { 907d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 908d6dd1baeSJung-uk Kim UINT8 InterfaceType; /* 0=full 16550, 1=subset of 16550 */ 909d6dd1baeSJung-uk Kim UINT8 Reserved[3]; 910d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS SerialPort; 911d6dd1baeSJung-uk Kim UINT8 InterruptType; 912d6dd1baeSJung-uk Kim UINT8 PcInterrupt; 913d6dd1baeSJung-uk Kim UINT32 Interrupt; 914d6dd1baeSJung-uk Kim UINT8 BaudRate; 915d6dd1baeSJung-uk Kim UINT8 Parity; 916d6dd1baeSJung-uk Kim UINT8 StopBits; 917d6dd1baeSJung-uk Kim UINT8 FlowControl; 918d6dd1baeSJung-uk Kim UINT8 TerminalType; 919d6dd1baeSJung-uk Kim UINT8 Reserved1; 920d6dd1baeSJung-uk Kim UINT16 PciDeviceId; 921d6dd1baeSJung-uk Kim UINT16 PciVendorId; 922d6dd1baeSJung-uk Kim UINT8 PciBus; 923d6dd1baeSJung-uk Kim UINT8 PciDevice; 924d6dd1baeSJung-uk Kim UINT8 PciFunction; 925d6dd1baeSJung-uk Kim UINT32 PciFlags; 926d6dd1baeSJung-uk Kim UINT8 PciSegment; 927d6dd1baeSJung-uk Kim UINT32 Reserved2; 928d6dd1baeSJung-uk Kim 929d6dd1baeSJung-uk Kim } ACPI_TABLE_SPCR; 930d6dd1baeSJung-uk Kim 931d6dd1baeSJung-uk Kim /* Masks for PciFlags field above */ 932d6dd1baeSJung-uk Kim 933d6dd1baeSJung-uk Kim #define ACPI_SPCR_DO_NOT_DISABLE (1) 934d6dd1baeSJung-uk Kim 935d6dd1baeSJung-uk Kim 936d6dd1baeSJung-uk Kim /******************************************************************************* 937d6dd1baeSJung-uk Kim * 938d6dd1baeSJung-uk Kim * SPMI - Server Platform Management Interface table 939d6dd1baeSJung-uk Kim * Version 5 940d6dd1baeSJung-uk Kim * 941d6dd1baeSJung-uk Kim * Conforms to "Intelligent Platform Management Interface Specification 942d6dd1baeSJung-uk Kim * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with 943d6dd1baeSJung-uk Kim * June 12, 2009 markup. 944d6dd1baeSJung-uk Kim * 945d6dd1baeSJung-uk Kim ******************************************************************************/ 946d6dd1baeSJung-uk Kim 947d6dd1baeSJung-uk Kim typedef struct acpi_table_spmi 948d6dd1baeSJung-uk Kim { 949d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 950d6dd1baeSJung-uk Kim UINT8 InterfaceType; 951d6dd1baeSJung-uk Kim UINT8 Reserved; /* Must be 1 */ 952d6dd1baeSJung-uk Kim UINT16 SpecRevision; /* Version of IPMI */ 953d6dd1baeSJung-uk Kim UINT8 InterruptType; 954d6dd1baeSJung-uk Kim UINT8 GpeNumber; /* GPE assigned */ 955d6dd1baeSJung-uk Kim UINT8 Reserved1; 956d6dd1baeSJung-uk Kim UINT8 PciDeviceFlag; 957d6dd1baeSJung-uk Kim UINT32 Interrupt; 958d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS IpmiRegister; 959d6dd1baeSJung-uk Kim UINT8 PciSegment; 960d6dd1baeSJung-uk Kim UINT8 PciBus; 961d6dd1baeSJung-uk Kim UINT8 PciDevice; 962d6dd1baeSJung-uk Kim UINT8 PciFunction; 963d6dd1baeSJung-uk Kim UINT8 Reserved2; 964d6dd1baeSJung-uk Kim 965d6dd1baeSJung-uk Kim } ACPI_TABLE_SPMI; 966d6dd1baeSJung-uk Kim 967d6dd1baeSJung-uk Kim /* Values for InterfaceType above */ 968d6dd1baeSJung-uk Kim 969d6dd1baeSJung-uk Kim enum AcpiSpmiInterfaceTypes 970d6dd1baeSJung-uk Kim { 971d6dd1baeSJung-uk Kim ACPI_SPMI_NOT_USED = 0, 972d6dd1baeSJung-uk Kim ACPI_SPMI_KEYBOARD = 1, 973d6dd1baeSJung-uk Kim ACPI_SPMI_SMI = 2, 974d6dd1baeSJung-uk Kim ACPI_SPMI_BLOCK_TRANSFER = 3, 975d6dd1baeSJung-uk Kim ACPI_SPMI_SMBUS = 4, 976d6dd1baeSJung-uk Kim ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */ 977d6dd1baeSJung-uk Kim }; 978d6dd1baeSJung-uk Kim 979d6dd1baeSJung-uk Kim 980d6dd1baeSJung-uk Kim /******************************************************************************* 981d6dd1baeSJung-uk Kim * 982d6dd1baeSJung-uk Kim * TCPA - Trusted Computing Platform Alliance table 983d6dd1baeSJung-uk Kim * Version 1 984d6dd1baeSJung-uk Kim * 985d6dd1baeSJung-uk Kim * Conforms to "TCG PC Specific Implementation Specification", 986d6dd1baeSJung-uk Kim * Version 1.1, August 18, 2003 987d6dd1baeSJung-uk Kim * 988d6dd1baeSJung-uk Kim ******************************************************************************/ 989d6dd1baeSJung-uk Kim 990d6dd1baeSJung-uk Kim typedef struct acpi_table_tcpa 991d6dd1baeSJung-uk Kim { 992d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 993d6dd1baeSJung-uk Kim UINT16 Reserved; 994d6dd1baeSJung-uk Kim UINT32 MaxLogLength; /* Maximum length for the event log area */ 995d6dd1baeSJung-uk Kim UINT64 LogAddress; /* Address of the event log area */ 996d6dd1baeSJung-uk Kim 997d6dd1baeSJung-uk Kim } ACPI_TABLE_TCPA; 998d6dd1baeSJung-uk Kim 999d6dd1baeSJung-uk Kim 1000d6dd1baeSJung-uk Kim /******************************************************************************* 1001d6dd1baeSJung-uk Kim * 1002d6dd1baeSJung-uk Kim * UEFI - UEFI Boot optimization Table 1003d6dd1baeSJung-uk Kim * Version 1 1004d6dd1baeSJung-uk Kim * 1005d6dd1baeSJung-uk Kim * Conforms to "Unified Extensible Firmware Interface Specification", 1006d6dd1baeSJung-uk Kim * Version 2.3, May 8, 2009 1007d6dd1baeSJung-uk Kim * 1008d6dd1baeSJung-uk Kim ******************************************************************************/ 1009d6dd1baeSJung-uk Kim 1010d6dd1baeSJung-uk Kim typedef struct acpi_table_uefi 1011d6dd1baeSJung-uk Kim { 1012d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 1013d6dd1baeSJung-uk Kim UINT8 Identifier[16]; /* UUID identifier */ 1014d6dd1baeSJung-uk Kim UINT16 DataOffset; /* Offset of remaining data in table */ 1015d6dd1baeSJung-uk Kim 1016d6dd1baeSJung-uk Kim } ACPI_TABLE_UEFI; 1017d6dd1baeSJung-uk Kim 1018d6dd1baeSJung-uk Kim 1019d6dd1baeSJung-uk Kim /******************************************************************************* 1020d6dd1baeSJung-uk Kim * 1021d6dd1baeSJung-uk Kim * WAET - Windows ACPI Emulated devices Table 1022d6dd1baeSJung-uk Kim * Version 1 1023d6dd1baeSJung-uk Kim * 1024d6dd1baeSJung-uk Kim * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009 1025d6dd1baeSJung-uk Kim * 1026d6dd1baeSJung-uk Kim ******************************************************************************/ 1027d6dd1baeSJung-uk Kim 1028d6dd1baeSJung-uk Kim typedef struct acpi_table_waet 1029d6dd1baeSJung-uk Kim { 1030d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 1031d6dd1baeSJung-uk Kim UINT32 Flags; 1032d6dd1baeSJung-uk Kim 1033d6dd1baeSJung-uk Kim } ACPI_TABLE_WAET; 1034d6dd1baeSJung-uk Kim 1035d6dd1baeSJung-uk Kim /* Masks for Flags field above */ 1036d6dd1baeSJung-uk Kim 1037d6dd1baeSJung-uk Kim #define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */ 1038d6dd1baeSJung-uk Kim #define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */ 1039d6dd1baeSJung-uk Kim 1040d6dd1baeSJung-uk Kim 1041d6dd1baeSJung-uk Kim /******************************************************************************* 1042d6dd1baeSJung-uk Kim * 1043d6dd1baeSJung-uk Kim * WDAT - Watchdog Action Table 1044d6dd1baeSJung-uk Kim * Version 1 1045d6dd1baeSJung-uk Kim * 1046d6dd1baeSJung-uk Kim * Conforms to "Hardware Watchdog Timers Design Specification", 1047d6dd1baeSJung-uk Kim * Copyright 2006 Microsoft Corporation. 1048d6dd1baeSJung-uk Kim * 1049d6dd1baeSJung-uk Kim ******************************************************************************/ 1050d6dd1baeSJung-uk Kim 1051d6dd1baeSJung-uk Kim typedef struct acpi_table_wdat 1052d6dd1baeSJung-uk Kim { 1053d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 1054d6dd1baeSJung-uk Kim UINT32 HeaderLength; /* Watchdog Header Length */ 1055d6dd1baeSJung-uk Kim UINT16 PciSegment; /* PCI Segment number */ 1056d6dd1baeSJung-uk Kim UINT8 PciBus; /* PCI Bus number */ 1057d6dd1baeSJung-uk Kim UINT8 PciDevice; /* PCI Device number */ 1058d6dd1baeSJung-uk Kim UINT8 PciFunction; /* PCI Function number */ 1059d6dd1baeSJung-uk Kim UINT8 Reserved[3]; 1060d6dd1baeSJung-uk Kim UINT32 TimerPeriod; /* Period of one timer count (msec) */ 1061d6dd1baeSJung-uk Kim UINT32 MaxCount; /* Maximum counter value supported */ 1062d6dd1baeSJung-uk Kim UINT32 MinCount; /* Minimum counter value */ 1063d6dd1baeSJung-uk Kim UINT8 Flags; 1064d6dd1baeSJung-uk Kim UINT8 Reserved2[3]; 1065d6dd1baeSJung-uk Kim UINT32 Entries; /* Number of watchdog entries that follow */ 1066d6dd1baeSJung-uk Kim 1067d6dd1baeSJung-uk Kim } ACPI_TABLE_WDAT; 1068d6dd1baeSJung-uk Kim 1069d6dd1baeSJung-uk Kim /* Masks for Flags field above */ 1070d6dd1baeSJung-uk Kim 1071d6dd1baeSJung-uk Kim #define ACPI_WDAT_ENABLED (1) 1072d6dd1baeSJung-uk Kim #define ACPI_WDAT_STOPPED 0x80 1073d6dd1baeSJung-uk Kim 1074d6dd1baeSJung-uk Kim 1075d6dd1baeSJung-uk Kim /* WDAT Instruction Entries (actions) */ 1076d6dd1baeSJung-uk Kim 1077d6dd1baeSJung-uk Kim typedef struct acpi_wdat_entry 1078d6dd1baeSJung-uk Kim { 1079d6dd1baeSJung-uk Kim UINT8 Action; 1080d6dd1baeSJung-uk Kim UINT8 Instruction; 1081d6dd1baeSJung-uk Kim UINT16 Reserved; 1082d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS RegisterRegion; 1083d6dd1baeSJung-uk Kim UINT32 Value; /* Value used with Read/Write register */ 1084d6dd1baeSJung-uk Kim UINT32 Mask; /* Bitmask required for this register instruction */ 1085d6dd1baeSJung-uk Kim 1086d6dd1baeSJung-uk Kim } ACPI_WDAT_ENTRY; 1087d6dd1baeSJung-uk Kim 1088d6dd1baeSJung-uk Kim /* Values for Action field above */ 1089d6dd1baeSJung-uk Kim 1090d6dd1baeSJung-uk Kim enum AcpiWdatActions 1091d6dd1baeSJung-uk Kim { 1092d6dd1baeSJung-uk Kim ACPI_WDAT_RESET = 1, 1093d6dd1baeSJung-uk Kim ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4, 1094d6dd1baeSJung-uk Kim ACPI_WDAT_GET_COUNTDOWN = 5, 1095d6dd1baeSJung-uk Kim ACPI_WDAT_SET_COUNTDOWN = 6, 1096d6dd1baeSJung-uk Kim ACPI_WDAT_GET_RUNNING_STATE = 8, 1097d6dd1baeSJung-uk Kim ACPI_WDAT_SET_RUNNING_STATE = 9, 1098d6dd1baeSJung-uk Kim ACPI_WDAT_GET_STOPPED_STATE = 10, 1099d6dd1baeSJung-uk Kim ACPI_WDAT_SET_STOPPED_STATE = 11, 1100d6dd1baeSJung-uk Kim ACPI_WDAT_GET_REBOOT = 16, 1101d6dd1baeSJung-uk Kim ACPI_WDAT_SET_REBOOT = 17, 1102d6dd1baeSJung-uk Kim ACPI_WDAT_GET_SHUTDOWN = 18, 1103d6dd1baeSJung-uk Kim ACPI_WDAT_SET_SHUTDOWN = 19, 1104d6dd1baeSJung-uk Kim ACPI_WDAT_GET_STATUS = 32, 1105d6dd1baeSJung-uk Kim ACPI_WDAT_SET_STATUS = 33, 1106d6dd1baeSJung-uk Kim ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */ 1107d6dd1baeSJung-uk Kim }; 1108d6dd1baeSJung-uk Kim 1109d6dd1baeSJung-uk Kim /* Values for Instruction field above */ 1110d6dd1baeSJung-uk Kim 1111d6dd1baeSJung-uk Kim enum AcpiWdatInstructions 1112d6dd1baeSJung-uk Kim { 1113d6dd1baeSJung-uk Kim ACPI_WDAT_READ_VALUE = 0, 1114d6dd1baeSJung-uk Kim ACPI_WDAT_READ_COUNTDOWN = 1, 1115d6dd1baeSJung-uk Kim ACPI_WDAT_WRITE_VALUE = 2, 1116d6dd1baeSJung-uk Kim ACPI_WDAT_WRITE_COUNTDOWN = 3, 1117d6dd1baeSJung-uk Kim ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */ 1118d6dd1baeSJung-uk Kim ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */ 1119d6dd1baeSJung-uk Kim }; 1120d6dd1baeSJung-uk Kim 1121d6dd1baeSJung-uk Kim 1122d6dd1baeSJung-uk Kim /******************************************************************************* 1123d6dd1baeSJung-uk Kim * 1124d6dd1baeSJung-uk Kim * WDRT - Watchdog Resource Table 1125d6dd1baeSJung-uk Kim * Version 1 1126d6dd1baeSJung-uk Kim * 1127d6dd1baeSJung-uk Kim * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003", 1128d6dd1baeSJung-uk Kim * Version 1.01, August 28, 2006 1129d6dd1baeSJung-uk Kim * 1130d6dd1baeSJung-uk Kim ******************************************************************************/ 1131d6dd1baeSJung-uk Kim 1132d6dd1baeSJung-uk Kim typedef struct acpi_table_wdrt 1133d6dd1baeSJung-uk Kim { 1134d6dd1baeSJung-uk Kim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 1135d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS ControlRegister; 1136d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS CountRegister; 1137d6dd1baeSJung-uk Kim UINT16 PciDeviceId; 1138d6dd1baeSJung-uk Kim UINT16 PciVendorId; 1139d6dd1baeSJung-uk Kim UINT8 PciBus; /* PCI Bus number */ 1140d6dd1baeSJung-uk Kim UINT8 PciDevice; /* PCI Device number */ 1141d6dd1baeSJung-uk Kim UINT8 PciFunction; /* PCI Function number */ 1142d6dd1baeSJung-uk Kim UINT8 PciSegment; /* PCI Segment number */ 1143d6dd1baeSJung-uk Kim UINT16 MaxCount; /* Maximum counter value supported */ 1144d6dd1baeSJung-uk Kim UINT8 Units; 1145d6dd1baeSJung-uk Kim 1146d6dd1baeSJung-uk Kim } ACPI_TABLE_WDRT; 1147d6dd1baeSJung-uk Kim 1148d6dd1baeSJung-uk Kim 1149d6dd1baeSJung-uk Kim /* Reset to default packing */ 1150d6dd1baeSJung-uk Kim 1151d6dd1baeSJung-uk Kim #pragma pack() 1152d6dd1baeSJung-uk Kim 1153d6dd1baeSJung-uk Kim #endif /* __ACTBL2_H__ */ 1154d6dd1baeSJung-uk Kim 1155