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