actbl3.h revision 316303
1227896Sjkim/****************************************************************************** 2227896Sjkim * 3227896Sjkim * Name: actbl3.h - ACPI Table Definitions 4227896Sjkim * 5227896Sjkim *****************************************************************************/ 6227896Sjkim 7316303Sjkim/****************************************************************************** 8316303Sjkim * 9316303Sjkim * 1. Copyright Notice 10316303Sjkim * 11316303Sjkim * Some or all of this work - Copyright (c) 1999 - 2017, Intel Corp. 12227896Sjkim * All rights reserved. 13227896Sjkim * 14316303Sjkim * 2. License 15316303Sjkim * 16316303Sjkim * 2.1. This is your license from Intel Corp. under its intellectual property 17316303Sjkim * rights. You may have additional license terms from the party that provided 18316303Sjkim * you this software, covering your right to use that party's intellectual 19316303Sjkim * property rights. 20316303Sjkim * 21316303Sjkim * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22316303Sjkim * copy of the source code appearing in this file ("Covered Code") an 23316303Sjkim * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24316303Sjkim * base code distributed originally by Intel ("Original Intel Code") to copy, 25316303Sjkim * make derivatives, distribute, use and display any portion of the Covered 26316303Sjkim * Code in any form, with the right to sublicense such rights; and 27316303Sjkim * 28316303Sjkim * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29316303Sjkim * license (with the right to sublicense), under only those claims of Intel 30316303Sjkim * patents that are infringed by the Original Intel Code, to make, use, sell, 31316303Sjkim * offer to sell, and import the Covered Code and derivative works thereof 32316303Sjkim * solely to the minimum extent necessary to exercise the above copyright 33316303Sjkim * license, and in no event shall the patent license extend to any additions 34316303Sjkim * to or modifications of the Original Intel Code. No other license or right 35316303Sjkim * is granted directly or by implication, estoppel or otherwise; 36316303Sjkim * 37316303Sjkim * The above copyright and patent license is granted only if the following 38316303Sjkim * conditions are met: 39316303Sjkim * 40316303Sjkim * 3. Conditions 41316303Sjkim * 42316303Sjkim * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43316303Sjkim * Redistribution of source code of any substantial portion of the Covered 44316303Sjkim * Code or modification with rights to further distribute source must include 45316303Sjkim * the above Copyright Notice, the above License, this list of Conditions, 46316303Sjkim * and the following Disclaimer and Export Compliance provision. In addition, 47316303Sjkim * Licensee must cause all Covered Code to which Licensee contributes to 48316303Sjkim * contain a file documenting the changes Licensee made to create that Covered 49316303Sjkim * Code and the date of any change. Licensee must include in that file the 50316303Sjkim * documentation of any changes made by any predecessor Licensee. Licensee 51316303Sjkim * must include a prominent statement that the modification is derived, 52316303Sjkim * directly or indirectly, from Original Intel Code. 53316303Sjkim * 54316303Sjkim * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55316303Sjkim * Redistribution of source code of any substantial portion of the Covered 56316303Sjkim * Code or modification without rights to further distribute source must 57316303Sjkim * include the following Disclaimer and Export Compliance provision in the 58316303Sjkim * documentation and/or other materials provided with distribution. In 59316303Sjkim * addition, Licensee may not authorize further sublicense of source of any 60316303Sjkim * portion of the Covered Code, and must include terms to the effect that the 61316303Sjkim * license from Licensee to its licensee is limited to the intellectual 62316303Sjkim * property embodied in the software Licensee provides to its licensee, and 63316303Sjkim * not to intellectual property embodied in modifications its licensee may 64316303Sjkim * make. 65316303Sjkim * 66316303Sjkim * 3.3. Redistribution of Executable. Redistribution in executable form of any 67316303Sjkim * substantial portion of the Covered Code or modification must reproduce the 68316303Sjkim * above Copyright Notice, and the following Disclaimer and Export Compliance 69316303Sjkim * provision in the documentation and/or other materials provided with the 70316303Sjkim * distribution. 71316303Sjkim * 72316303Sjkim * 3.4. Intel retains all right, title, and interest in and to the Original 73316303Sjkim * Intel Code. 74316303Sjkim * 75316303Sjkim * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76316303Sjkim * Intel shall be used in advertising or otherwise to promote the sale, use or 77316303Sjkim * other dealings in products derived from or relating to the Covered Code 78316303Sjkim * without prior written authorization from Intel. 79316303Sjkim * 80316303Sjkim * 4. Disclaimer and Export Compliance 81316303Sjkim * 82316303Sjkim * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83316303Sjkim * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84316303Sjkim * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85316303Sjkim * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86316303Sjkim * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87316303Sjkim * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88316303Sjkim * PARTICULAR PURPOSE. 89316303Sjkim * 90316303Sjkim * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91316303Sjkim * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92316303Sjkim * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93316303Sjkim * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94316303Sjkim * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95316303Sjkim * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96316303Sjkim * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97316303Sjkim * LIMITED REMEDY. 98316303Sjkim * 99316303Sjkim * 4.3. Licensee shall not export, either directly or indirectly, any of this 100316303Sjkim * software or system incorporating such software without first obtaining any 101316303Sjkim * required license or other approval from the U. S. Department of Commerce or 102316303Sjkim * any other agency or department of the United States Government. In the 103316303Sjkim * event Licensee exports any such software from the United States or 104316303Sjkim * re-exports any such software from a foreign destination, Licensee shall 105316303Sjkim * ensure that the distribution and export/re-export of the software is in 106316303Sjkim * compliance with all laws, regulations, orders, or other restrictions of the 107316303Sjkim * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108316303Sjkim * any of its subsidiaries will export/re-export any technical data, process, 109316303Sjkim * software, or service, directly or indirectly, to any country for which the 110316303Sjkim * United States government or any agency thereof requires an export license, 111316303Sjkim * other governmental approval, or letter of assurance, without first obtaining 112316303Sjkim * such license, approval or letter. 113316303Sjkim * 114316303Sjkim ***************************************************************************** 115316303Sjkim * 116316303Sjkim * Alternatively, you may choose to be licensed under the terms of the 117316303Sjkim * following license: 118316303Sjkim * 119227896Sjkim * Redistribution and use in source and binary forms, with or without 120227896Sjkim * modification, are permitted provided that the following conditions 121227896Sjkim * are met: 122227896Sjkim * 1. Redistributions of source code must retain the above copyright 123227896Sjkim * notice, this list of conditions, and the following disclaimer, 124227896Sjkim * without modification. 125227896Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 126227896Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 127227896Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 128227896Sjkim * including a substantially similar Disclaimer requirement for further 129227896Sjkim * binary redistribution. 130227896Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 131227896Sjkim * of any contributors may be used to endorse or promote products derived 132227896Sjkim * from this software without specific prior written permission. 133227896Sjkim * 134316303Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 135316303Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 136316303Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 137316303Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 138316303Sjkim * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 139316303Sjkim * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 140316303Sjkim * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 141316303Sjkim * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 142316303Sjkim * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 143316303Sjkim * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 144316303Sjkim * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 145316303Sjkim * 146316303Sjkim * Alternatively, you may choose to be licensed under the terms of the 147227896Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 148227896Sjkim * Software Foundation. 149227896Sjkim * 150316303Sjkim *****************************************************************************/ 151227896Sjkim 152227896Sjkim#ifndef __ACTBL3_H__ 153227896Sjkim#define __ACTBL3_H__ 154227896Sjkim 155227896Sjkim 156227896Sjkim/******************************************************************************* 157227896Sjkim * 158227896Sjkim * Additional ACPI Tables (3) 159227896Sjkim * 160227896Sjkim * These tables are not consumed directly by the ACPICA subsystem, but are 161227896Sjkim * included here to support device drivers and the AML disassembler. 162227896Sjkim * 163284583Sjkim * In general, the tables in this file are fully defined within the ACPI 164284583Sjkim * specification. 165227896Sjkim * 166227896Sjkim ******************************************************************************/ 167227896Sjkim 168227896Sjkim 169227896Sjkim/* 170227896Sjkim * Values for description table header signatures for tables defined in this 171227896Sjkim * file. Useful because they make it more difficult to inadvertently type in 172227896Sjkim * the wrong signature. 173227896Sjkim */ 174227896Sjkim#define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */ 175227896Sjkim#define ACPI_SIG_DRTM "DRTM" /* Dynamic Root of Trust for Measurement table */ 176227896Sjkim#define ACPI_SIG_FPDT "FPDT" /* Firmware Performance Data Table */ 177227896Sjkim#define ACPI_SIG_GTDT "GTDT" /* Generic Timer Description Table */ 178227896Sjkim#define ACPI_SIG_MPST "MPST" /* Memory Power State Table */ 179227896Sjkim#define ACPI_SIG_PCCT "PCCT" /* Platform Communications Channel Table */ 180227896Sjkim#define ACPI_SIG_PMTT "PMTT" /* Platform Memory Topology Table */ 181227896Sjkim#define ACPI_SIG_RASF "RASF" /* RAS Feature table */ 182283092Sjkim#define ACPI_SIG_STAO "STAO" /* Status Override table */ 183283092Sjkim#define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */ 184283092Sjkim#define ACPI_SIG_XENV "XENV" /* Xen Environment table */ 185227896Sjkim 186227896Sjkim#define ACPI_SIG_S3PT "S3PT" /* S3 Performance (sub)Table */ 187227896Sjkim#define ACPI_SIG_PCCS "PCC" /* PCC Shared Memory Region */ 188227896Sjkim 189227896Sjkim/* Reserved table signatures */ 190227896Sjkim 191227896Sjkim#define ACPI_SIG_MATR "MATR" /* Memory Address Translation Table */ 192227896Sjkim#define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */ 193227896Sjkim 194227896Sjkim/* 195227896Sjkim * All tables must be byte-packed to match the ACPI specification, since 196227896Sjkim * the tables are provided by the system BIOS. 197227896Sjkim */ 198227896Sjkim#pragma pack(1) 199227896Sjkim 200227896Sjkim/* 201239340Sjkim * Note: C bitfields are not used for this reason: 202239340Sjkim * 203239340Sjkim * "Bitfields are great and easy to read, but unfortunately the C language 204239340Sjkim * does not specify the layout of bitfields in memory, which means they are 205239340Sjkim * essentially useless for dealing with packed data in on-disk formats or 206239340Sjkim * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me, 207239340Sjkim * this decision was a design error in C. Ritchie could have picked an order 208239340Sjkim * and stuck with it." Norman Ramsey. 209239340Sjkim * See http://stackoverflow.com/a/1053662/41661 210227896Sjkim */ 211227896Sjkim 212227896Sjkim 213227896Sjkim/******************************************************************************* 214227896Sjkim * 215227896Sjkim * BGRT - Boot Graphics Resource Table (ACPI 5.0) 216227896Sjkim * Version 1 217227896Sjkim * 218227896Sjkim ******************************************************************************/ 219227896Sjkim 220227896Sjkimtypedef struct acpi_table_bgrt 221227896Sjkim{ 222227896Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 223227896Sjkim UINT16 Version; 224227896Sjkim UINT8 Status; 225227896Sjkim UINT8 ImageType; 226227896Sjkim UINT64 ImageAddress; 227227896Sjkim UINT32 ImageOffsetX; 228227896Sjkim UINT32 ImageOffsetY; 229227896Sjkim 230227896Sjkim} ACPI_TABLE_BGRT; 231227896Sjkim 232227896Sjkim 233227896Sjkim/******************************************************************************* 234227896Sjkim * 235227896Sjkim * DRTM - Dynamic Root of Trust for Measurement table 236283092Sjkim * Conforms to "TCG D-RTM Architecture" June 17 2013, Version 1.0.0 237283092Sjkim * Table version 1 238227896Sjkim * 239227896Sjkim ******************************************************************************/ 240227896Sjkim 241227896Sjkimtypedef struct acpi_table_drtm 242227896Sjkim{ 243227896Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 244227896Sjkim UINT64 EntryBaseAddress; 245227896Sjkim UINT64 EntryLength; 246227896Sjkim UINT32 EntryAddress32; 247227896Sjkim UINT64 EntryAddress64; 248227896Sjkim UINT64 ExitAddress; 249227896Sjkim UINT64 LogAreaAddress; 250227896Sjkim UINT32 LogAreaLength; 251227896Sjkim UINT64 ArchDependentAddress; 252227896Sjkim UINT32 Flags; 253227896Sjkim 254227896Sjkim} ACPI_TABLE_DRTM; 255227896Sjkim 256283092Sjkim/* Flag Definitions for above */ 257227896Sjkim 258283092Sjkim#define ACPI_DRTM_ACCESS_ALLOWED (1) 259283092Sjkim#define ACPI_DRTM_ENABLE_GAP_CODE (1<<1) 260283092Sjkim#define ACPI_DRTM_INCOMPLETE_MEASUREMENTS (1<<2) 261283092Sjkim#define ACPI_DRTM_AUTHORITY_ORDER (1<<3) 262283092Sjkim 263283092Sjkim 264283092Sjkim/* 1) Validated Tables List (64-bit addresses) */ 265283092Sjkim 266283092Sjkimtypedef struct acpi_drtm_vtable_list 267227896Sjkim{ 268283092Sjkim UINT32 ValidatedTableCount; 269283092Sjkim UINT64 ValidatedTables[1]; 270227896Sjkim 271283092Sjkim} ACPI_DRTM_VTABLE_LIST; 272227896Sjkim 273283092Sjkim/* 2) Resources List (of Resource Descriptors) */ 274227896Sjkim 275283092Sjkim/* Resource Descriptor */ 276283092Sjkim 277283092Sjkimtypedef struct acpi_drtm_resource 278283092Sjkim{ 279283092Sjkim UINT8 Size[7]; 280283092Sjkim UINT8 Type; 281283092Sjkim UINT64 Address; 282283092Sjkim 283283092Sjkim} ACPI_DRTM_RESOURCE; 284283092Sjkim 285227896Sjkimtypedef struct acpi_drtm_resource_list 286227896Sjkim{ 287283092Sjkim UINT32 ResourceCount; 288283092Sjkim ACPI_DRTM_RESOURCE Resources[1]; 289227896Sjkim 290227896Sjkim} ACPI_DRTM_RESOURCE_LIST; 291227896Sjkim 292227896Sjkim/* 3) Platform-specific Identifiers List */ 293227896Sjkim 294283092Sjkimtypedef struct acpi_drtm_dps_id 295227896Sjkim{ 296283092Sjkim UINT32 DpsIdLength; 297283092Sjkim UINT8 DpsId[16]; 298227896Sjkim 299283092Sjkim} ACPI_DRTM_DPS_ID; 300227896Sjkim 301227896Sjkim 302227896Sjkim/******************************************************************************* 303227896Sjkim * 304227896Sjkim * FPDT - Firmware Performance Data Table (ACPI 5.0) 305227896Sjkim * Version 1 306227896Sjkim * 307227896Sjkim ******************************************************************************/ 308227896Sjkim 309227896Sjkimtypedef struct acpi_table_fpdt 310227896Sjkim{ 311227896Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 312227896Sjkim 313227896Sjkim} ACPI_TABLE_FPDT; 314227896Sjkim 315227896Sjkim 316298714Sjkim/* FPDT subtable header (Performance Record Structure) */ 317227896Sjkim 318227896Sjkimtypedef struct acpi_fpdt_header 319227896Sjkim{ 320227896Sjkim UINT16 Type; 321227896Sjkim UINT8 Length; 322227896Sjkim UINT8 Revision; 323227896Sjkim 324227896Sjkim} ACPI_FPDT_HEADER; 325227896Sjkim 326227896Sjkim/* Values for Type field above */ 327227896Sjkim 328227896Sjkimenum AcpiFpdtType 329227896Sjkim{ 330227896Sjkim ACPI_FPDT_TYPE_BOOT = 0, 331246849Sjkim ACPI_FPDT_TYPE_S3PERF = 1 332227896Sjkim}; 333227896Sjkim 334227896Sjkim 335227896Sjkim/* 336227896Sjkim * FPDT subtables 337227896Sjkim */ 338227896Sjkim 339227896Sjkim/* 0: Firmware Basic Boot Performance Record */ 340227896Sjkim 341298714Sjkimtypedef struct acpi_fpdt_boot_pointer 342227896Sjkim{ 343227896Sjkim ACPI_FPDT_HEADER Header; 344227896Sjkim UINT8 Reserved[4]; 345298714Sjkim UINT64 Address; 346227896Sjkim 347298714Sjkim} ACPI_FPDT_BOOT_POINTER; 348227896Sjkim 349227896Sjkim 350227896Sjkim/* 1: S3 Performance Table Pointer Record */ 351227896Sjkim 352298714Sjkimtypedef struct acpi_fpdt_s3pt_pointer 353227896Sjkim{ 354227896Sjkim ACPI_FPDT_HEADER Header; 355227896Sjkim UINT8 Reserved[4]; 356227896Sjkim UINT64 Address; 357227896Sjkim 358298714Sjkim} ACPI_FPDT_S3PT_POINTER; 359227896Sjkim 360227896Sjkim 361227896Sjkim/* 362227896Sjkim * S3PT - S3 Performance Table. This table is pointed to by the 363298714Sjkim * S3 Pointer Record above. 364227896Sjkim */ 365227896Sjkimtypedef struct acpi_table_s3pt 366227896Sjkim{ 367227896Sjkim UINT8 Signature[4]; /* "S3PT" */ 368227896Sjkim UINT32 Length; 369227896Sjkim 370227896Sjkim} ACPI_TABLE_S3PT; 371227896Sjkim 372227896Sjkim 373227896Sjkim/* 374298714Sjkim * S3PT Subtables (Not part of the actual FPDT) 375227896Sjkim */ 376227896Sjkim 377298714Sjkim/* Values for Type field in S3PT header */ 378227896Sjkim 379227896Sjkimenum AcpiS3ptType 380227896Sjkim{ 381227896Sjkim ACPI_S3PT_TYPE_RESUME = 0, 382298714Sjkim ACPI_S3PT_TYPE_SUSPEND = 1, 383298714Sjkim ACPI_FPDT_BOOT_PERFORMANCE = 2 384227896Sjkim}; 385227896Sjkim 386227896Sjkimtypedef struct acpi_s3pt_resume 387227896Sjkim{ 388298714Sjkim ACPI_FPDT_HEADER Header; 389227896Sjkim UINT32 ResumeCount; 390227896Sjkim UINT64 FullResume; 391227896Sjkim UINT64 AverageResume; 392227896Sjkim 393227896Sjkim} ACPI_S3PT_RESUME; 394227896Sjkim 395227896Sjkimtypedef struct acpi_s3pt_suspend 396227896Sjkim{ 397298714Sjkim ACPI_FPDT_HEADER Header; 398227896Sjkim UINT64 SuspendStart; 399227896Sjkim UINT64 SuspendEnd; 400227896Sjkim 401227896Sjkim} ACPI_S3PT_SUSPEND; 402227896Sjkim 403227896Sjkim 404298714Sjkim/* 405298714Sjkim * FPDT Boot Performance Record (Not part of the actual FPDT) 406298714Sjkim */ 407298714Sjkimtypedef struct acpi_fpdt_boot 408298714Sjkim{ 409298714Sjkim ACPI_FPDT_HEADER Header; 410298714Sjkim UINT8 Reserved[4]; 411298714Sjkim UINT64 ResetEnd; 412298714Sjkim UINT64 LoadStart; 413298714Sjkim UINT64 StartupStart; 414298714Sjkim UINT64 ExitServicesEntry; 415298714Sjkim UINT64 ExitServicesExit; 416298714Sjkim 417298714Sjkim} ACPI_FPDT_BOOT; 418298714Sjkim 419298714Sjkim 420227896Sjkim/******************************************************************************* 421227896Sjkim * 422272444Sjkim * GTDT - Generic Timer Description Table (ACPI 5.1) 423272444Sjkim * Version 2 424227896Sjkim * 425227896Sjkim ******************************************************************************/ 426227896Sjkim 427227896Sjkimtypedef struct acpi_table_gtdt 428227896Sjkim{ 429227896Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 430272444Sjkim UINT64 CounterBlockAddresss; 431272444Sjkim UINT32 Reserved; 432272444Sjkim UINT32 SecureEl1Interrupt; 433272444Sjkim UINT32 SecureEl1Flags; 434272444Sjkim UINT32 NonSecureEl1Interrupt; 435272444Sjkim UINT32 NonSecureEl1Flags; 436227896Sjkim UINT32 VirtualTimerInterrupt; 437227896Sjkim UINT32 VirtualTimerFlags; 438272444Sjkim UINT32 NonSecureEl2Interrupt; 439272444Sjkim UINT32 NonSecureEl2Flags; 440272444Sjkim UINT64 CounterReadBlockAddress; 441272444Sjkim UINT32 PlatformTimerCount; 442272444Sjkim UINT32 PlatformTimerOffset; 443227896Sjkim 444227896Sjkim} ACPI_TABLE_GTDT; 445227896Sjkim 446272444Sjkim/* Flag Definitions: Timer Block Physical Timers and Virtual timers */ 447227896Sjkim 448272444Sjkim#define ACPI_GTDT_INTERRUPT_MODE (1) 449272444Sjkim#define ACPI_GTDT_INTERRUPT_POLARITY (1<<1) 450272444Sjkim#define ACPI_GTDT_ALWAYS_ON (1<<2) 451227896Sjkim 452227896Sjkim 453272444Sjkim/* Common GTDT subtable header */ 454227896Sjkim 455272444Sjkimtypedef struct acpi_gtdt_header 456272444Sjkim{ 457272444Sjkim UINT8 Type; 458272444Sjkim UINT16 Length; 459227896Sjkim 460272444Sjkim} ACPI_GTDT_HEADER; 461272444Sjkim 462272444Sjkim/* Values for GTDT subtable type above */ 463272444Sjkim 464272444Sjkimenum AcpiGtdtType 465272444Sjkim{ 466272444Sjkim ACPI_GTDT_TYPE_TIMER_BLOCK = 0, 467272444Sjkim ACPI_GTDT_TYPE_WATCHDOG = 1, 468272444Sjkim ACPI_GTDT_TYPE_RESERVED = 2 /* 2 and greater are reserved */ 469272444Sjkim}; 470272444Sjkim 471272444Sjkim 472272444Sjkim/* GTDT Subtables, correspond to Type in acpi_gtdt_header */ 473272444Sjkim 474272444Sjkim/* 0: Generic Timer Block */ 475272444Sjkim 476272444Sjkimtypedef struct acpi_gtdt_timer_block 477272444Sjkim{ 478272444Sjkim ACPI_GTDT_HEADER Header; 479272444Sjkim UINT8 Reserved; 480272444Sjkim UINT64 BlockAddress; 481272444Sjkim UINT32 TimerCount; 482272444Sjkim UINT32 TimerOffset; 483272444Sjkim 484272444Sjkim} ACPI_GTDT_TIMER_BLOCK; 485272444Sjkim 486272444Sjkim/* Timer Sub-Structure, one per timer */ 487272444Sjkim 488272444Sjkimtypedef struct acpi_gtdt_timer_entry 489272444Sjkim{ 490272444Sjkim UINT8 FrameNumber; 491272444Sjkim UINT8 Reserved[3]; 492272444Sjkim UINT64 BaseAddress; 493272444Sjkim UINT64 El0BaseAddress; 494272444Sjkim UINT32 TimerInterrupt; 495272444Sjkim UINT32 TimerFlags; 496272444Sjkim UINT32 VirtualTimerInterrupt; 497272444Sjkim UINT32 VirtualTimerFlags; 498272444Sjkim UINT32 CommonFlags; 499272444Sjkim 500272444Sjkim} ACPI_GTDT_TIMER_ENTRY; 501272444Sjkim 502272444Sjkim/* Flag Definitions: TimerFlags and VirtualTimerFlags above */ 503272444Sjkim 504272444Sjkim#define ACPI_GTDT_GT_IRQ_MODE (1) 505272444Sjkim#define ACPI_GTDT_GT_IRQ_POLARITY (1<<1) 506272444Sjkim 507272444Sjkim/* Flag Definitions: CommonFlags above */ 508272444Sjkim 509272444Sjkim#define ACPI_GTDT_GT_IS_SECURE_TIMER (1) 510272444Sjkim#define ACPI_GTDT_GT_ALWAYS_ON (1<<1) 511272444Sjkim 512272444Sjkim 513272444Sjkim/* 1: SBSA Generic Watchdog Structure */ 514272444Sjkim 515272444Sjkimtypedef struct acpi_gtdt_watchdog 516272444Sjkim{ 517272444Sjkim ACPI_GTDT_HEADER Header; 518272444Sjkim UINT8 Reserved; 519272444Sjkim UINT64 RefreshFrameAddress; 520272444Sjkim UINT64 ControlFrameAddress; 521272444Sjkim UINT32 TimerInterrupt; 522272444Sjkim UINT32 TimerFlags; 523272444Sjkim 524272444Sjkim} ACPI_GTDT_WATCHDOG; 525272444Sjkim 526272444Sjkim/* Flag Definitions: TimerFlags above */ 527272444Sjkim 528272444Sjkim#define ACPI_GTDT_WATCHDOG_IRQ_MODE (1) 529272444Sjkim#define ACPI_GTDT_WATCHDOG_IRQ_POLARITY (1<<1) 530272444Sjkim#define ACPI_GTDT_WATCHDOG_SECURE (1<<2) 531272444Sjkim 532272444Sjkim 533227896Sjkim/******************************************************************************* 534227896Sjkim * 535227896Sjkim * MPST - Memory Power State Table (ACPI 5.0) 536227896Sjkim * Version 1 537227896Sjkim * 538227896Sjkim ******************************************************************************/ 539227896Sjkim 540227896Sjkim#define ACPI_MPST_CHANNEL_INFO \ 541227896Sjkim UINT8 ChannelId; \ 542241973Sjkim UINT8 Reserved1[3]; \ 543241973Sjkim UINT16 PowerNodeCount; \ 544241973Sjkim UINT16 Reserved2; 545227896Sjkim 546227896Sjkim/* Main table */ 547227896Sjkim 548227896Sjkimtypedef struct acpi_table_mpst 549227896Sjkim{ 550227896Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 551227896Sjkim ACPI_MPST_CHANNEL_INFO /* Platform Communication Channel */ 552227896Sjkim 553227896Sjkim} ACPI_TABLE_MPST; 554227896Sjkim 555227896Sjkim 556227896Sjkim/* Memory Platform Communication Channel Info */ 557227896Sjkim 558227896Sjkimtypedef struct acpi_mpst_channel 559227896Sjkim{ 560227896Sjkim ACPI_MPST_CHANNEL_INFO /* Platform Communication Channel */ 561227896Sjkim 562227896Sjkim} ACPI_MPST_CHANNEL; 563227896Sjkim 564227896Sjkim 565227896Sjkim/* Memory Power Node Structure */ 566227896Sjkim 567227896Sjkimtypedef struct acpi_mpst_power_node 568227896Sjkim{ 569227896Sjkim UINT8 Flags; 570227896Sjkim UINT8 Reserved1; 571227896Sjkim UINT16 NodeId; 572227896Sjkim UINT32 Length; 573227896Sjkim UINT64 RangeAddress; 574227896Sjkim UINT64 RangeLength; 575241973Sjkim UINT32 NumPowerStates; 576241973Sjkim UINT32 NumPhysicalComponents; 577227896Sjkim 578227896Sjkim} ACPI_MPST_POWER_NODE; 579227896Sjkim 580227896Sjkim/* Values for Flags field above */ 581227896Sjkim 582227896Sjkim#define ACPI_MPST_ENABLED 1 583227896Sjkim#define ACPI_MPST_POWER_MANAGED 2 584227896Sjkim#define ACPI_MPST_HOT_PLUG_CAPABLE 4 585227896Sjkim 586227896Sjkim 587227896Sjkim/* Memory Power State Structure (follows POWER_NODE above) */ 588227896Sjkim 589227896Sjkimtypedef struct acpi_mpst_power_state 590227896Sjkim{ 591227896Sjkim UINT8 PowerState; 592227896Sjkim UINT8 InfoIndex; 593227896Sjkim 594227896Sjkim} ACPI_MPST_POWER_STATE; 595227896Sjkim 596227896Sjkim 597227896Sjkim/* Physical Component ID Structure (follows POWER_STATE above) */ 598227896Sjkim 599227896Sjkimtypedef struct acpi_mpst_component 600227896Sjkim{ 601227896Sjkim UINT16 ComponentId; 602227896Sjkim 603227896Sjkim} ACPI_MPST_COMPONENT; 604227896Sjkim 605227896Sjkim 606227896Sjkim/* Memory Power State Characteristics Structure (follows all POWER_NODEs) */ 607227896Sjkim 608227896Sjkimtypedef struct acpi_mpst_data_hdr 609227896Sjkim{ 610227896Sjkim UINT16 CharacteristicsCount; 611241973Sjkim UINT16 Reserved; 612227896Sjkim 613227896Sjkim} ACPI_MPST_DATA_HDR; 614227896Sjkim 615227896Sjkimtypedef struct acpi_mpst_power_data 616227896Sjkim{ 617241973Sjkim UINT8 StructureId; 618227896Sjkim UINT8 Flags; 619227896Sjkim UINT16 Reserved1; 620227896Sjkim UINT32 AveragePower; 621227896Sjkim UINT32 PowerSaving; 622227896Sjkim UINT64 ExitLatency; 623227896Sjkim UINT64 Reserved2; 624227896Sjkim 625227896Sjkim} ACPI_MPST_POWER_DATA; 626227896Sjkim 627227896Sjkim/* Values for Flags field above */ 628227896Sjkim 629227896Sjkim#define ACPI_MPST_PRESERVE 1 630227896Sjkim#define ACPI_MPST_AUTOENTRY 2 631227896Sjkim#define ACPI_MPST_AUTOEXIT 4 632227896Sjkim 633227896Sjkim 634227896Sjkim/* Shared Memory Region (not part of an ACPI table) */ 635227896Sjkim 636227896Sjkimtypedef struct acpi_mpst_shared 637227896Sjkim{ 638227896Sjkim UINT32 Signature; 639227896Sjkim UINT16 PccCommand; 640227896Sjkim UINT16 PccStatus; 641241973Sjkim UINT32 CommandRegister; 642241973Sjkim UINT32 StatusRegister; 643241973Sjkim UINT32 PowerStateId; 644241973Sjkim UINT32 PowerNodeId; 645227896Sjkim UINT64 EnergyConsumed; 646227896Sjkim UINT64 AveragePower; 647227896Sjkim 648227896Sjkim} ACPI_MPST_SHARED; 649227896Sjkim 650227896Sjkim 651227896Sjkim/******************************************************************************* 652227896Sjkim * 653227896Sjkim * PCCT - Platform Communications Channel Table (ACPI 5.0) 654227896Sjkim * Version 1 655227896Sjkim * 656227896Sjkim ******************************************************************************/ 657227896Sjkim 658227896Sjkimtypedef struct acpi_table_pcct 659227896Sjkim{ 660227896Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 661227896Sjkim UINT32 Flags; 662272444Sjkim UINT64 Reserved; 663227896Sjkim 664227896Sjkim} ACPI_TABLE_PCCT; 665227896Sjkim 666227896Sjkim/* Values for Flags field above */ 667227896Sjkim 668227896Sjkim#define ACPI_PCCT_DOORBELL 1 669227896Sjkim 670272444Sjkim/* Values for subtable type in ACPI_SUBTABLE_HEADER */ 671272444Sjkim 672272444Sjkimenum AcpiPcctType 673272444Sjkim{ 674298714Sjkim ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0, 675298714Sjkim ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1, 676298714Sjkim ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2, /* ACPI 6.1 */ 677298714Sjkim ACPI_PCCT_TYPE_RESERVED = 3 /* 3 and greater are reserved */ 678272444Sjkim}; 679272444Sjkim 680227896Sjkim/* 681272444Sjkim * PCCT Subtables, correspond to Type in ACPI_SUBTABLE_HEADER 682227896Sjkim */ 683227896Sjkim 684227896Sjkim/* 0: Generic Communications Subspace */ 685227896Sjkim 686227896Sjkimtypedef struct acpi_pcct_subspace 687227896Sjkim{ 688227896Sjkim ACPI_SUBTABLE_HEADER Header; 689227896Sjkim UINT8 Reserved[6]; 690227896Sjkim UINT64 BaseAddress; 691227896Sjkim UINT64 Length; 692227896Sjkim ACPI_GENERIC_ADDRESS DoorbellRegister; 693227896Sjkim UINT64 PreserveMask; 694227896Sjkim UINT64 WriteMask; 695272444Sjkim UINT32 Latency; 696272444Sjkim UINT32 MaxAccessRate; 697272444Sjkim UINT16 MinTurnaroundTime; 698227896Sjkim 699227896Sjkim} ACPI_PCCT_SUBSPACE; 700227896Sjkim 701227896Sjkim 702272444Sjkim/* 1: HW-reduced Communications Subspace (ACPI 5.1) */ 703272444Sjkim 704272444Sjkimtypedef struct acpi_pcct_hw_reduced 705272444Sjkim{ 706272444Sjkim ACPI_SUBTABLE_HEADER Header; 707272444Sjkim UINT32 DoorbellInterrupt; 708272444Sjkim UINT8 Flags; 709272444Sjkim UINT8 Reserved; 710272444Sjkim UINT64 BaseAddress; 711272444Sjkim UINT64 Length; 712272444Sjkim ACPI_GENERIC_ADDRESS DoorbellRegister; 713272444Sjkim UINT64 PreserveMask; 714272444Sjkim UINT64 WriteMask; 715272444Sjkim UINT32 Latency; 716272444Sjkim UINT32 MaxAccessRate; 717272444Sjkim UINT16 MinTurnaroundTime; 718272444Sjkim 719272444Sjkim} ACPI_PCCT_HW_REDUCED; 720272444Sjkim 721298714Sjkim 722298714Sjkim/* 2: HW-reduced Communications Subspace Type 2 (ACPI 6.1) */ 723298714Sjkim 724298714Sjkimtypedef struct acpi_pcct_hw_reduced_type2 725298714Sjkim{ 726298714Sjkim ACPI_SUBTABLE_HEADER Header; 727298714Sjkim UINT32 DoorbellInterrupt; 728298714Sjkim UINT8 Flags; 729298714Sjkim UINT8 Reserved; 730298714Sjkim UINT64 BaseAddress; 731298714Sjkim UINT64 Length; 732298714Sjkim ACPI_GENERIC_ADDRESS DoorbellRegister; 733298714Sjkim UINT64 PreserveMask; 734298714Sjkim UINT64 WriteMask; 735298714Sjkim UINT32 Latency; 736298714Sjkim UINT32 MaxAccessRate; 737298714Sjkim UINT16 MinTurnaroundTime; 738298714Sjkim ACPI_GENERIC_ADDRESS DoorbellAckRegister; 739298714Sjkim UINT64 AckPreserveMask; 740298714Sjkim UINT64 AckWriteMask; 741298714Sjkim 742298714Sjkim} ACPI_PCCT_HW_REDUCED_TYPE2; 743298714Sjkim 744298714Sjkim 745272444Sjkim/* Values for doorbell flags above */ 746272444Sjkim 747272444Sjkim#define ACPI_PCCT_INTERRUPT_POLARITY (1) 748272444Sjkim#define ACPI_PCCT_INTERRUPT_MODE (1<<1) 749272444Sjkim 750272444Sjkim 751227896Sjkim/* 752227896Sjkim * PCC memory structures (not part of the ACPI table) 753227896Sjkim */ 754227896Sjkim 755227896Sjkim/* Shared Memory Region */ 756227896Sjkim 757227896Sjkimtypedef struct acpi_pcct_shared_memory 758227896Sjkim{ 759227896Sjkim UINT32 Signature; 760227896Sjkim UINT16 Command; 761227896Sjkim UINT16 Status; 762227896Sjkim 763227896Sjkim} ACPI_PCCT_SHARED_MEMORY; 764227896Sjkim 765227896Sjkim 766227896Sjkim/******************************************************************************* 767227896Sjkim * 768227896Sjkim * PMTT - Platform Memory Topology Table (ACPI 5.0) 769227896Sjkim * Version 1 770227896Sjkim * 771227896Sjkim ******************************************************************************/ 772227896Sjkim 773227896Sjkimtypedef struct acpi_table_pmtt 774227896Sjkim{ 775227896Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 776227896Sjkim UINT32 Reserved; 777227896Sjkim 778227896Sjkim} ACPI_TABLE_PMTT; 779227896Sjkim 780227896Sjkim 781227896Sjkim/* Common header for PMTT subtables that follow main table */ 782227896Sjkim 783227896Sjkimtypedef struct acpi_pmtt_header 784227896Sjkim{ 785227896Sjkim UINT8 Type; 786227896Sjkim UINT8 Reserved1; 787227896Sjkim UINT16 Length; 788227896Sjkim UINT16 Flags; 789227896Sjkim UINT16 Reserved2; 790227896Sjkim 791227896Sjkim} ACPI_PMTT_HEADER; 792227896Sjkim 793227896Sjkim/* Values for Type field above */ 794227896Sjkim 795227896Sjkim#define ACPI_PMTT_TYPE_SOCKET 0 796227896Sjkim#define ACPI_PMTT_TYPE_CONTROLLER 1 797227896Sjkim#define ACPI_PMTT_TYPE_DIMM 2 798227896Sjkim#define ACPI_PMTT_TYPE_RESERVED 3 /* 0x03-0xFF are reserved */ 799227896Sjkim 800227896Sjkim/* Values for Flags field above */ 801227896Sjkim 802227896Sjkim#define ACPI_PMTT_TOP_LEVEL 0x0001 803227896Sjkim#define ACPI_PMTT_PHYSICAL 0x0002 804227896Sjkim#define ACPI_PMTT_MEMORY_TYPE 0x000C 805227896Sjkim 806227896Sjkim 807227896Sjkim/* 808227896Sjkim * PMTT subtables, correspond to Type in acpi_pmtt_header 809227896Sjkim */ 810227896Sjkim 811227896Sjkim 812227896Sjkim/* 0: Socket Structure */ 813227896Sjkim 814227896Sjkimtypedef struct acpi_pmtt_socket 815227896Sjkim{ 816227896Sjkim ACPI_PMTT_HEADER Header; 817227896Sjkim UINT16 SocketId; 818227896Sjkim UINT16 Reserved; 819227896Sjkim 820227896Sjkim} ACPI_PMTT_SOCKET; 821227896Sjkim 822227896Sjkim 823227896Sjkim/* 1: Memory Controller subtable */ 824227896Sjkim 825227896Sjkimtypedef struct acpi_pmtt_controller 826227896Sjkim{ 827227896Sjkim ACPI_PMTT_HEADER Header; 828227896Sjkim UINT32 ReadLatency; 829227896Sjkim UINT32 WriteLatency; 830227896Sjkim UINT32 ReadBandwidth; 831227896Sjkim UINT32 WriteBandwidth; 832227896Sjkim UINT16 AccessWidth; 833227896Sjkim UINT16 Alignment; 834227896Sjkim UINT16 Reserved; 835227896Sjkim UINT16 DomainCount; 836227896Sjkim 837227896Sjkim} ACPI_PMTT_CONTROLLER; 838227896Sjkim 839227896Sjkim/* 1a: Proximity Domain substructure */ 840227896Sjkim 841227896Sjkimtypedef struct acpi_pmtt_domain 842227896Sjkim{ 843227896Sjkim UINT32 ProximityDomain; 844227896Sjkim 845227896Sjkim} ACPI_PMTT_DOMAIN; 846227896Sjkim 847227896Sjkim 848227896Sjkim/* 2: Physical Component Identifier (DIMM) */ 849227896Sjkim 850227896Sjkimtypedef struct acpi_pmtt_physical_component 851227896Sjkim{ 852227896Sjkim ACPI_PMTT_HEADER Header; 853227896Sjkim UINT16 ComponentId; 854227896Sjkim UINT16 Reserved; 855227896Sjkim UINT32 MemorySize; 856227896Sjkim UINT32 BiosHandle; 857227896Sjkim 858227896Sjkim} ACPI_PMTT_PHYSICAL_COMPONENT; 859227896Sjkim 860227896Sjkim 861227896Sjkim/******************************************************************************* 862227896Sjkim * 863227896Sjkim * RASF - RAS Feature Table (ACPI 5.0) 864227896Sjkim * Version 1 865227896Sjkim * 866227896Sjkim ******************************************************************************/ 867227896Sjkim 868227896Sjkimtypedef struct acpi_table_rasf 869227896Sjkim{ 870227896Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 871227896Sjkim UINT8 ChannelId[12]; 872227896Sjkim 873227896Sjkim} ACPI_TABLE_RASF; 874227896Sjkim 875227896Sjkim/* RASF Platform Communication Channel Shared Memory Region */ 876227896Sjkim 877227896Sjkimtypedef struct acpi_rasf_shared_memory 878227896Sjkim{ 879227896Sjkim UINT32 Signature; 880227896Sjkim UINT16 Command; 881227896Sjkim UINT16 Status; 882246849Sjkim UINT16 Version; 883246849Sjkim UINT8 Capabilities[16]; 884246849Sjkim UINT8 SetCapabilities[16]; 885246849Sjkim UINT16 NumParameterBlocks; 886246849Sjkim UINT32 SetCapabilitiesStatus; 887227896Sjkim 888227896Sjkim} ACPI_RASF_SHARED_MEMORY; 889227896Sjkim 890246849Sjkim/* RASF Parameter Block Structure Header */ 891246849Sjkim 892246849Sjkimtypedef struct acpi_rasf_parameter_block 893246849Sjkim{ 894246849Sjkim UINT16 Type; 895246849Sjkim UINT16 Version; 896246849Sjkim UINT16 Length; 897246849Sjkim 898246849Sjkim} ACPI_RASF_PARAMETER_BLOCK; 899246849Sjkim 900246849Sjkim/* RASF Parameter Block Structure for PATROL_SCRUB */ 901246849Sjkim 902246849Sjkimtypedef struct acpi_rasf_patrol_scrub_parameter 903246849Sjkim{ 904246849Sjkim ACPI_RASF_PARAMETER_BLOCK Header; 905246849Sjkim UINT16 PatrolScrubCommand; 906246849Sjkim UINT64 RequestedAddressRange[2]; 907246849Sjkim UINT64 ActualAddressRange[2]; 908246849Sjkim UINT16 Flags; 909246849Sjkim UINT8 RequestedSpeed; 910246849Sjkim 911246849Sjkim} ACPI_RASF_PATROL_SCRUB_PARAMETER; 912246849Sjkim 913227896Sjkim/* Masks for Flags and Speed fields above */ 914227896Sjkim 915227896Sjkim#define ACPI_RASF_SCRUBBER_RUNNING 1 916227896Sjkim#define ACPI_RASF_SPEED (7<<1) 917246849Sjkim#define ACPI_RASF_SPEED_SLOW (0<<1) 918246849Sjkim#define ACPI_RASF_SPEED_MEDIUM (4<<1) 919246849Sjkim#define ACPI_RASF_SPEED_FAST (7<<1) 920227896Sjkim 921227896Sjkim/* Channel Commands */ 922227896Sjkim 923227896Sjkimenum AcpiRasfCommands 924227896Sjkim{ 925246849Sjkim ACPI_RASF_EXECUTE_RASF_COMMAND = 1 926227896Sjkim}; 927227896Sjkim 928246849Sjkim/* Platform RAS Capabilities */ 929246849Sjkim 930246849Sjkimenum AcpiRasfCapabiliities 931246849Sjkim{ 932246849Sjkim ACPI_HW_PATROL_SCRUB_SUPPORTED = 0, 933246849Sjkim ACPI_SW_PATROL_SCRUB_EXPOSED = 1 934246849Sjkim}; 935246849Sjkim 936246849Sjkim/* Patrol Scrub Commands */ 937246849Sjkim 938246849Sjkimenum AcpiRasfPatrolScrubCommands 939246849Sjkim{ 940246849Sjkim ACPI_RASF_GET_PATROL_PARAMETERS = 1, 941246849Sjkim ACPI_RASF_START_PATROL_SCRUBBER = 2, 942246849Sjkim ACPI_RASF_STOP_PATROL_SCRUBBER = 3 943246849Sjkim}; 944246849Sjkim 945227896Sjkim/* Channel Command flags */ 946227896Sjkim 947227896Sjkim#define ACPI_RASF_GENERATE_SCI (1<<15) 948227896Sjkim 949227896Sjkim/* Status values */ 950227896Sjkim 951227896Sjkimenum AcpiRasfStatus 952227896Sjkim{ 953227896Sjkim ACPI_RASF_SUCCESS = 0, 954227896Sjkim ACPI_RASF_NOT_VALID = 1, 955227896Sjkim ACPI_RASF_NOT_SUPPORTED = 2, 956227896Sjkim ACPI_RASF_BUSY = 3, 957227896Sjkim ACPI_RASF_FAILED = 4, 958227896Sjkim ACPI_RASF_ABORTED = 5, 959227896Sjkim ACPI_RASF_INVALID_DATA = 6 960227896Sjkim}; 961227896Sjkim 962227896Sjkim/* Status flags */ 963227896Sjkim 964227896Sjkim#define ACPI_RASF_COMMAND_COMPLETE (1) 965227896Sjkim#define ACPI_RASF_SCI_DOORBELL (1<<1) 966227896Sjkim#define ACPI_RASF_ERROR (1<<2) 967227896Sjkim#define ACPI_RASF_STATUS (0x1F<<3) 968227896Sjkim 969227896Sjkim 970245582Sjkim/******************************************************************************* 971245582Sjkim * 972283092Sjkim * STAO - Status Override Table (_STA override) - ACPI 6.0 973283092Sjkim * Version 1 974283092Sjkim * 975283092Sjkim * Conforms to "ACPI Specification for Status Override Table" 976283092Sjkim * 6 January 2015 977283092Sjkim * 978283092Sjkim ******************************************************************************/ 979283092Sjkim 980283092Sjkimtypedef struct acpi_table_stao 981283092Sjkim{ 982283092Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 983283092Sjkim UINT8 IgnoreUart; 984283092Sjkim 985283092Sjkim} ACPI_TABLE_STAO; 986283092Sjkim 987283092Sjkim 988283092Sjkim/******************************************************************************* 989283092Sjkim * 990283092Sjkim * WPBT - Windows Platform Environment Table (ACPI 6.0) 991283092Sjkim * Version 1 992283092Sjkim * 993283092Sjkim * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011 994283092Sjkim * 995283092Sjkim ******************************************************************************/ 996283092Sjkim 997283092Sjkimtypedef struct acpi_table_wpbt 998283092Sjkim{ 999283092Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 1000283092Sjkim UINT32 HandoffSize; 1001283092Sjkim UINT64 HandoffAddress; 1002283092Sjkim UINT8 Layout; 1003283092Sjkim UINT8 Type; 1004283092Sjkim UINT16 ArgumentsLength; 1005283092Sjkim 1006283092Sjkim} ACPI_TABLE_WPBT; 1007283092Sjkim 1008283092Sjkim 1009283092Sjkim/******************************************************************************* 1010283092Sjkim * 1011283092Sjkim * XENV - Xen Environment Table (ACPI 6.0) 1012283092Sjkim * Version 1 1013283092Sjkim * 1014283092Sjkim * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015 1015283092Sjkim * 1016283092Sjkim ******************************************************************************/ 1017283092Sjkim 1018283092Sjkimtypedef struct acpi_table_xenv 1019283092Sjkim{ 1020283092Sjkim ACPI_TABLE_HEADER Header; /* Common ACPI table header */ 1021283092Sjkim UINT64 GrantTableAddress; 1022283092Sjkim UINT64 GrantTableSize; 1023283092Sjkim UINT32 EventInterrupt; 1024283092Sjkim UINT8 EventFlags; 1025283092Sjkim 1026283092Sjkim} ACPI_TABLE_XENV; 1027283092Sjkim 1028283092Sjkim 1029227896Sjkim/* Reset to default packing */ 1030227896Sjkim 1031227896Sjkim#pragma pack() 1032227896Sjkim 1033227896Sjkim#endif /* __ACTBL3_H__ */ 1034