Path: blob/main/sys/contrib/dev/acpica/common/dmtbinfo1.c
48378 views
/******************************************************************************1*2* Module Name: dmtbinfo1 - Table info for non-AML tables3*4*****************************************************************************/56/******************************************************************************7*8* 1. Copyright Notice9*10* Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.11* All rights reserved.12*13* 2. License14*15* 2.1. This is your license from Intel Corp. under its intellectual property16* rights. You may have additional license terms from the party that provided17* you this software, covering your right to use that party's intellectual18* property rights.19*20* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a21* copy of the source code appearing in this file ("Covered Code") an22* irrevocable, perpetual, worldwide license under Intel's copyrights in the23* base code distributed originally by Intel ("Original Intel Code") to copy,24* make derivatives, distribute, use and display any portion of the Covered25* Code in any form, with the right to sublicense such rights; and26*27* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent28* license (with the right to sublicense), under only those claims of Intel29* patents that are infringed by the Original Intel Code, to make, use, sell,30* offer to sell, and import the Covered Code and derivative works thereof31* solely to the minimum extent necessary to exercise the above copyright32* license, and in no event shall the patent license extend to any additions33* to or modifications of the Original Intel Code. No other license or right34* is granted directly or by implication, estoppel or otherwise;35*36* The above copyright and patent license is granted only if the following37* conditions are met:38*39* 3. Conditions40*41* 3.1. Redistribution of Source with Rights to Further Distribute Source.42* Redistribution of source code of any substantial portion of the Covered43* Code or modification with rights to further distribute source must include44* the above Copyright Notice, the above License, this list of Conditions,45* and the following Disclaimer and Export Compliance provision. In addition,46* Licensee must cause all Covered Code to which Licensee contributes to47* contain a file documenting the changes Licensee made to create that Covered48* Code and the date of any change. Licensee must include in that file the49* documentation of any changes made by any predecessor Licensee. Licensee50* must include a prominent statement that the modification is derived,51* directly or indirectly, from Original Intel Code.52*53* 3.2. Redistribution of Source with no Rights to Further Distribute Source.54* Redistribution of source code of any substantial portion of the Covered55* Code or modification without rights to further distribute source must56* include the following Disclaimer and Export Compliance provision in the57* documentation and/or other materials provided with distribution. In58* addition, Licensee may not authorize further sublicense of source of any59* portion of the Covered Code, and must include terms to the effect that the60* license from Licensee to its licensee is limited to the intellectual61* property embodied in the software Licensee provides to its licensee, and62* not to intellectual property embodied in modifications its licensee may63* make.64*65* 3.3. Redistribution of Executable. Redistribution in executable form of any66* substantial portion of the Covered Code or modification must reproduce the67* above Copyright Notice, and the following Disclaimer and Export Compliance68* provision in the documentation and/or other materials provided with the69* distribution.70*71* 3.4. Intel retains all right, title, and interest in and to the Original72* Intel Code.73*74* 3.5. Neither the name Intel nor any other trademark owned or controlled by75* Intel shall be used in advertising or otherwise to promote the sale, use or76* other dealings in products derived from or relating to the Covered Code77* without prior written authorization from Intel.78*79* 4. Disclaimer and Export Compliance80*81* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED82* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE83* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,84* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY85* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY86* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A87* PARTICULAR PURPOSE.88*89* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES90* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR91* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,92* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY93* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL94* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS95* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY96* LIMITED REMEDY.97*98* 4.3. Licensee shall not export, either directly or indirectly, any of this99* software or system incorporating such software without first obtaining any100* required license or other approval from the U. S. Department of Commerce or101* any other agency or department of the United States Government. In the102* event Licensee exports any such software from the United States or103* re-exports any such software from a foreign destination, Licensee shall104* ensure that the distribution and export/re-export of the software is in105* compliance with all laws, regulations, orders, or other restrictions of the106* U.S. Export Administration Regulations. Licensee agrees that neither it nor107* any of its subsidiaries will export/re-export any technical data, process,108* software, or service, directly or indirectly, to any country for which the109* United States government or any agency thereof requires an export license,110* other governmental approval, or letter of assurance, without first obtaining111* such license, approval or letter.112*113*****************************************************************************114*115* Alternatively, you may choose to be licensed under the terms of the116* following license:117*118* Redistribution and use in source and binary forms, with or without119* modification, are permitted provided that the following conditions120* are met:121* 1. Redistributions of source code must retain the above copyright122* notice, this list of conditions, and the following disclaimer,123* without modification.124* 2. Redistributions in binary form must reproduce at minimum a disclaimer125* substantially similar to the "NO WARRANTY" disclaimer below126* ("Disclaimer") and any redistribution must be conditioned upon127* including a substantially similar Disclaimer requirement for further128* binary redistribution.129* 3. Neither the names of the above-listed copyright holders nor the names130* of any contributors may be used to endorse or promote products derived131* from this software without specific prior written permission.132*133* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS134* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT135* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR136* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT137* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,138* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT139* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,140* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY141* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT142* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE143* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.144*145* Alternatively, you may choose to be licensed under the terms of the146* GNU General Public License ("GPL") version 2 as published by the Free147* Software Foundation.148*149*****************************************************************************/150151#include <contrib/dev/acpica/include/acpi.h>152#include <contrib/dev/acpica/include/accommon.h>153#include <contrib/dev/acpica/include/acdisasm.h>154#include <contrib/dev/acpica/include/actbinfo.h>155156/* This module used for application-level code only */157158#define _COMPONENT ACPI_CA_DISASSEMBLER159ACPI_MODULE_NAME ("dmtbinfo1")160161/*162* How to add a new table:163*164* - Add the C table definition to the actbl1.h or actbl2.h header.165* - Add ACPI_xxxx_OFFSET macro(s) for the table (and subtables) to list below.166* - Define the table in this file (for the disassembler). If any167* new data types are required (ACPI_DMT_*), see below.168* - Add an external declaration for the new table definition (AcpiDmTableInfo*)169* in acdisam.h170* - Add new table definition to the dispatch table in dmtable.c (AcpiDmTableData)171* If a simple table (with no subtables), no disassembly code is needed.172* Otherwise, create the AcpiDmDump* function for to disassemble the table173* and add it to the dmtbdump.c file.174* - Add an external declaration for the new AcpiDmDump* function in acdisasm.h175* - Add the new AcpiDmDump* function to the dispatch table in dmtable.c176* - Create a template for the new table177* - Add data table compiler support178*179* How to add a new data type (ACPI_DMT_*):180*181* - Add new type at the end of the ACPI_DMT list in acdisasm.h182* - Add length and implementation cases in dmtable.c (disassembler)183* - Add type and length cases in dtutils.c (DT compiler)184*/185186/*187* ACPI Table Information, used to dump formatted ACPI tables188*189* Each entry is of the form: <Field Type, Field Offset, Field Name>190*/191192193/*******************************************************************************194*195* AEST - ARM Error Source table. Conforms to:196* ACPI for the Armv8 RAS Extensions 1.1 Platform Design Document Sep 2020197*198******************************************************************************/199200/* Common Subtable header (one per Subtable) */201202ACPI_DMTABLE_INFO AcpiDmTableInfoAestHdr[] =203{204{ACPI_DMT_AEST, ACPI_AESTH_OFFSET (Type), "Subtable Type", 0},205{ACPI_DMT_UINT16, ACPI_AESTH_OFFSET (Length), "Length", DT_LENGTH},206{ACPI_DMT_UINT8, ACPI_AESTH_OFFSET (Reserved), "Reserved", 0},207{ACPI_DMT_UINT32, ACPI_AESTH_OFFSET (NodeSpecificOffset), "Node Specific Offset", 0},208{ACPI_DMT_UINT32, ACPI_AESTH_OFFSET (NodeInterfaceOffset), "Node Interface Offset", 0},209{ACPI_DMT_UINT32, ACPI_AESTH_OFFSET (NodeInterruptOffset), "Node Interrupt Array Offset", 0},210{ACPI_DMT_UINT32, ACPI_AESTH_OFFSET (NodeInterruptCount), "Node Interrupt Array Count", 0},211{ACPI_DMT_UINT64, ACPI_AESTH_OFFSET (TimestampRate), "Timestamp Rate", 0},212{ACPI_DMT_UINT64, ACPI_AESTH_OFFSET (Reserved1), "Reserved", 0},213{ACPI_DMT_UINT64, ACPI_AESTH_OFFSET (ErrorInjectionRate), "Error Injection Rate", 0},214ACPI_DMT_TERMINATOR215};216217/*218* AEST subtables (nodes)219*/220221/* 0: Processor Error */222223ACPI_DMTABLE_INFO AcpiDmTableInfoAestProcError[] =224{225{ACPI_DMT_UINT32, ACPI_AEST0_OFFSET (ProcessorId), "Processor ID", 0},226{ACPI_DMT_AEST_RES, ACPI_AEST0_OFFSET (ResourceType), "Resource Type", 0},227{ACPI_DMT_UINT8, ACPI_AEST0_OFFSET (Reserved), "Reserved", 0},228{ACPI_DMT_UINT8, ACPI_AEST0_OFFSET (Flags), "Flags (decoded Below)", 0},229{ACPI_DMT_FLAG0, ACPI_AEST0_FLAG_OFFSET (Flags, 0), "Global", 0},230{ACPI_DMT_FLAG1, ACPI_AEST0_FLAG_OFFSET (Flags, 0), "Shared", 0},231{ACPI_DMT_UINT8, ACPI_AEST0_OFFSET (Revision), "Revision", 0},232{ACPI_DMT_UINT64, ACPI_AEST0_OFFSET (ProcessorAffinity), "Processor Affinity Structure", 0},233ACPI_DMT_TERMINATOR234};235236/* 0RT: Processor Cache Resource */237238ACPI_DMTABLE_INFO AcpiDmTableInfoAestCacheRsrc[] =239{240{ACPI_DMT_UINT32, ACPI_AEST0A_OFFSET (CacheReference), "Cache Reference", 0},241{ACPI_DMT_UINT32, ACPI_AEST0A_OFFSET (Reserved), "Reserved", 0},242ACPI_DMT_TERMINATOR243};244245/* 1RT: ProcessorTLB Resource */246247ACPI_DMTABLE_INFO AcpiDmTableInfoAestTlbRsrc[] =248{249{ACPI_DMT_UINT32, ACPI_AEST0B_OFFSET (TlbLevel), "TLB Level", 0},250{ACPI_DMT_UINT32, ACPI_AEST0B_OFFSET (Reserved), "Reserved", 0},251ACPI_DMT_TERMINATOR252};253254/* 2RT: Processor Generic Resource */255256ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[] =257{258{ACPI_DMT_RAW_BUFFER, 0, "Resource", 0},259ACPI_DMT_TERMINATOR260};261262/* 1: Memory Error */263264ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[] =265{266{ACPI_DMT_UINT32, ACPI_AEST1_OFFSET (SratProximityDomain), "Srat Proximity Domain", 0},267ACPI_DMT_TERMINATOR268};269270/* 2: Smmu Error */271272ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[] =273{274{ACPI_DMT_UINT32, ACPI_AEST2_OFFSET (IortNodeReference), "Iort Node Reference", 0},275{ACPI_DMT_UINT32, ACPI_AEST2_OFFSET (SubcomponentReference), "Subcomponent Reference", 0},276ACPI_DMT_TERMINATOR277};278279/* 3: Vendor Defined */280281ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[] =282{283{ACPI_DMT_UINT32, ACPI_AEST3_OFFSET (AcpiHid), "ACPI HID", 0},284{ACPI_DMT_UINT32, ACPI_AEST3_OFFSET (AcpiUid), "ACPI UID", 0},285{ACPI_DMT_BUF16, ACPI_AEST3_OFFSET (VendorSpecificData), "Vendor Specific Data", 0},286ACPI_DMT_TERMINATOR287};288289/* 3: Vendor Defined V2 */290291ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorV2Error[] =292{293{ACPI_DMT_UINT64, ACPI_AEST3A_OFFSET (AcpiHid), "ACPI HID", 0},294{ACPI_DMT_UINT32, ACPI_AEST3A_OFFSET (AcpiUid), "ACPI UID", 0},295{ACPI_DMT_BUF16, ACPI_AEST3A_OFFSET (VendorSpecificData), "Vendor Specific Data", 0},296ACPI_DMT_TERMINATOR297};298299/* 4: Gic Error */300301ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[] =302{303{ACPI_DMT_AEST_GIC, ACPI_AEST4_OFFSET (InterfaceType), "GIC Interface Type", 0},304{ACPI_DMT_UINT32, ACPI_AEST4_OFFSET (InstanceId), "Instance ID", 0},305ACPI_DMT_TERMINATOR306};307308/* 5: PCIe Error */309310ACPI_DMTABLE_INFO AcpiDmTableInfoAestPCIeError[] =311{312{ACPI_DMT_UINT32, ACPI_AEST5_OFFSET (IortNodeReference), "Iort Node Reference", 0},313ACPI_DMT_TERMINATOR314};315316/* 6: Proxy Error */317318ACPI_DMTABLE_INFO AcpiDmTableInfoAestProxyError[] =319{320{ACPI_DMT_UINT64, ACPI_AEST6_OFFSET (NodeAddress), "Proxy Node Address", 0},321ACPI_DMT_TERMINATOR322};323324/* Common AEST structures for subtables */325326#define ACPI_DM_AEST_INTERFACE_COMMON(a) \327{ACPI_DMT_UINT32, ACPI_AEST0D##a##_OFFSET (Common.ErrorNodeDevice), "Arm Error Node Device", 0},\328{ACPI_DMT_UINT32, ACPI_AEST0D##a##_OFFSET (Common.ProcessorAffinity), "Processor Affinity", 0}, \329{ACPI_DMT_UINT64, ACPI_AEST0D##a##_OFFSET (Common.ErrorGroupRegisterBase), "Err-Group Register Addr", 0}, \330{ACPI_DMT_UINT64, ACPI_AEST0D##a##_OFFSET (Common.FaultInjectRegisterBase), "Err-Inject Register Addr", 0}, \331{ACPI_DMT_UINT64, ACPI_AEST0D##a##_OFFSET (Common.InterruptConfigRegisterBase), "IRQ-Config Register Addr", 0},332333/* AestXface: Node Interface Structure */334335ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[] =336{337{ACPI_DMT_AEST_XFACE, ACPI_AEST0D_OFFSET (Type), "Interface Type", 0},338{ACPI_DMT_UINT24, ACPI_AEST0D_OFFSET (Reserved[0]), "Reserved", 0},339{ACPI_DMT_UINT32, ACPI_AEST0D_OFFSET (Flags), "Flags (decoded below)", 0},340{ACPI_DMT_FLAG0, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Shared Interface", 0},341{ACPI_DMT_FLAG1, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Clear MISCx Registers", 0},342{ACPI_DMT_UINT64, ACPI_AEST0D_OFFSET (Address), "Address", 0},343{ACPI_DMT_UINT32, ACPI_AEST0D_OFFSET (ErrorRecordIndex), "Error Record Index", 0},344{ACPI_DMT_UINT32, ACPI_AEST0D_OFFSET (ErrorRecordCount), "Error Record Count", 0},345{ACPI_DMT_UINT64, ACPI_AEST0D_OFFSET (ErrorRecordImplemented),"Error Record Implemented", 0},346{ACPI_DMT_UINT64, ACPI_AEST0D_OFFSET (ErrorStatusReporting), "Error Status Reporting", 0},347{ACPI_DMT_UINT64, ACPI_AEST0D_OFFSET (AddressingMode), "Addressing Mode", 0},348ACPI_DMT_TERMINATOR349};350351/* AestXface: Node Interface Structure V2 Header */352353ACPI_DMTABLE_INFO AcpiDmTableInfoAestXfaceHeader[] =354{355{ACPI_DMT_AEST_XFACE, ACPI_AEST0DH_OFFSET (Type), "Interface Type", 0},356{ACPI_DMT_UINT8, ACPI_AEST0DH_OFFSET (GroupFormat), "Group Format", 0},357{ACPI_DMT_UINT16, ACPI_AEST0DH_OFFSET (Reserved[0]), "Reserved", 0},358{ACPI_DMT_UINT32, ACPI_AEST0DH_OFFSET (Flags), "Flags (decoded below)", 0},359{ACPI_DMT_FLAG0, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Shared Interface", 0},360{ACPI_DMT_FLAG1, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Clear MISCx Registers", 0},361{ACPI_DMT_FLAG2, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Error Node Device Valid", 0},362{ACPI_DMT_FLAG3, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Affinity Type", 0},363{ACPI_DMT_FLAG4, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Error group Address Valid", 0},364{ACPI_DMT_FLAG5, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Fault Injection Address Valid", 0},365{ACPI_DMT_FLAG7, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Interrupt Config Address valid", 0},366{ACPI_DMT_UINT64, ACPI_AEST0DH_OFFSET (Address), "Address", 0},367{ACPI_DMT_UINT32, ACPI_AEST0DH_OFFSET (ErrorRecordIndex), "Error Record Index", 0},368{ACPI_DMT_UINT32, ACPI_AEST0DH_OFFSET (ErrorRecordCount), "Error Record Count", 0},369ACPI_DMT_TERMINATOR370};371372/* AestXface: Node Interface Structure V2 4K Group Format */373374ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface4k[] =375{376{ACPI_DMT_UINT64, ACPI_AEST0D4_OFFSET (ErrorRecordImplemented),"Error Record Implemented", 0},377{ACPI_DMT_UINT64, ACPI_AEST0D4_OFFSET (ErrorStatusReporting), "Error Status Reporting", 0},378{ACPI_DMT_UINT64, ACPI_AEST0D4_OFFSET (AddressingMode), "Addressing Mode", 0},379ACPI_DM_AEST_INTERFACE_COMMON(4)380ACPI_DMT_TERMINATOR381};382383/* AestXface: Node Interface Structure V2 16K Group Format */384385ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface16k[] =386{387{ACPI_DMT_BUF32, ACPI_AEST0D16_OFFSET (ErrorRecordImplemented[0]),"Error Record Implemented", 0},388{ACPI_DMT_BUF32, ACPI_AEST0D16_OFFSET (ErrorStatusReporting[0]), "Error Status Reporting", 0},389{ACPI_DMT_BUF32, ACPI_AEST0D16_OFFSET (AddressingMode[0]), "Addressing Mode", 0},390ACPI_DM_AEST_INTERFACE_COMMON(16)391ACPI_DMT_TERMINATOR392};393394/* AestXface: Node Interface Structure V2 64K Group Format */395396ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface64k[] =397{398{ACPI_DMT_BUF112, ACPI_AEST0D64_OFFSET (ErrorRecordImplemented[0]),"Error Record Implemented", 0},399{ACPI_DMT_BUF112, ACPI_AEST0D64_OFFSET (ErrorStatusReporting[0]), "Error Status Reporting", 0},400{ACPI_DMT_BUF112, ACPI_AEST0D64_OFFSET (AddressingMode[0]), "Addressing Mode", 0},401ACPI_DM_AEST_INTERFACE_COMMON(64)402ACPI_DMT_TERMINATOR403};404405/* AestXrupt: Node Interrupt Structure */406407ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[] =408{409{ACPI_DMT_AEST_XRUPT, ACPI_AEST0E_OFFSET (Type), "Interrupt Type", 0},410{ACPI_DMT_UINT16, ACPI_AEST0E_OFFSET (Reserved), "Reserved", 0},411{ACPI_DMT_UINT8, ACPI_AEST0E_OFFSET (Flags), "Flags (decoded below)", 0},412{ACPI_DMT_FLAG0, ACPI_AEST0E_FLAG_OFFSET (Flags, 0), "Level Triggered", 0},413{ACPI_DMT_UINT32, ACPI_AEST0E_OFFSET (Gsiv), "Gsiv", 0},414{ACPI_DMT_UINT8, ACPI_AEST0E_OFFSET (IortId), "IortId", 0},415{ACPI_DMT_UINT24, ACPI_AEST0E_OFFSET (Reserved1[0]), "Reserved", 0},416ACPI_DMT_TERMINATOR417};418419420/* AestXrupt: Node Interrupt Structure V2 */421422ACPI_DMTABLE_INFO AcpiDmTableInfoAestXruptV2[] =423{424{ACPI_DMT_AEST_XRUPT, ACPI_AEST0EA_OFFSET (Type), "Interrupt Type", 0},425{ACPI_DMT_UINT16, ACPI_AEST0EA_OFFSET (Reserved), "Reserved", 0},426{ACPI_DMT_UINT8, ACPI_AEST0EA_OFFSET (Flags), "Flags (decoded below)", 0},427{ACPI_DMT_FLAG0, ACPI_AEST0EA_FLAG_OFFSET (Flags, 0), "Level Triggered", 0},428{ACPI_DMT_UINT32, ACPI_AEST0EA_OFFSET (Gsiv), "Gsiv", 0},429{ACPI_DMT_UINT32, ACPI_AEST0EA_OFFSET (Reserved1[0]), "Reserved", 0},430ACPI_DMT_TERMINATOR431};432433434/*******************************************************************************435*436* ASF - Alert Standard Format table (Signature "ASF!")437*438******************************************************************************/439440/* Common Subtable header (one per Subtable) */441442ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[] =443{444{ACPI_DMT_ASF, ACPI_ASF0_OFFSET (Header.Type), "Subtable Type", 0},445{ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (Header.Reserved), "Reserved", 0},446{ACPI_DMT_UINT16, ACPI_ASF0_OFFSET (Header.Length), "Length", DT_LENGTH},447ACPI_DMT_TERMINATOR448};449450/* 0: ASF Information */451452ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[] =453{454{ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (MinResetValue), "Minimum Reset Value", 0},455{ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (MinPollInterval), "Minimum Polling Interval", 0},456{ACPI_DMT_UINT16, ACPI_ASF0_OFFSET (SystemId), "System ID", 0},457{ACPI_DMT_UINT32, ACPI_ASF0_OFFSET (MfgId), "Manufacturer ID", 0},458{ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (Flags), "Flags", 0},459{ACPI_DMT_UINT24, ACPI_ASF0_OFFSET (Reserved2[0]), "Reserved", 0},460ACPI_DMT_TERMINATOR461};462463/* 1: ASF Alerts */464465ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[] =466{467{ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (AssertMask), "AssertMask", 0},468{ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (DeassertMask), "DeassertMask", 0},469{ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (Alerts), "Alert Count", 0},470{ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (DataLength), "Alert Data Length", 0},471ACPI_DMT_TERMINATOR472};473474/* 1a: ASF Alert data */475476ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[] =477{478{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Address), "Address", 0},479{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Command), "Command", 0},480{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Mask), "Mask", 0},481{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Value), "Value", 0},482{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SensorType), "SensorType", 0},483{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Type), "Type", 0},484{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Offset), "Offset", 0},485{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SourceType), "SourceType", 0},486{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Severity), "Severity", 0},487{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SensorNumber), "SensorNumber", 0},488{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Entity), "Entity", 0},489{ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Instance), "Instance", 0},490ACPI_DMT_TERMINATOR491};492493/* 2: ASF Remote Control */494495ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[] =496{497{ACPI_DMT_UINT8, ACPI_ASF2_OFFSET (Controls), "Control Count", 0},498{ACPI_DMT_UINT8, ACPI_ASF2_OFFSET (DataLength), "Control Data Length", 0},499{ACPI_DMT_UINT16, ACPI_ASF2_OFFSET (Reserved2), "Reserved", 0},500ACPI_DMT_TERMINATOR501};502503/* 2a: ASF Control data */504505ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[] =506{507{ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Function), "Function", 0},508{ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Address), "Address", 0},509{ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Command), "Command", 0},510{ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Value), "Value", 0},511ACPI_DMT_TERMINATOR512};513514/* 3: ASF RMCP Boot Options */515516ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[] =517{518{ACPI_DMT_BUF7, ACPI_ASF3_OFFSET (Capabilities[0]), "Capabilities", 0},519{ACPI_DMT_UINT8, ACPI_ASF3_OFFSET (CompletionCode), "Completion Code", 0},520{ACPI_DMT_UINT32, ACPI_ASF3_OFFSET (EnterpriseId), "Enterprise ID", 0},521{ACPI_DMT_UINT8, ACPI_ASF3_OFFSET (Command), "Command", 0},522{ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (Parameter), "Parameter", 0},523{ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (BootOptions), "Boot Options", 0},524{ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (OemParameters), "Oem Parameters", 0},525ACPI_DMT_TERMINATOR526};527528/* 4: ASF Address */529530ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[] =531{532{ACPI_DMT_UINT8, ACPI_ASF4_OFFSET (EpromAddress), "Eprom Address", 0},533{ACPI_DMT_UINT8, ACPI_ASF4_OFFSET (Devices), "Device Count", DT_COUNT},534ACPI_DMT_TERMINATOR535};536537538/*******************************************************************************539*540* ASPT - AMD Secure Processor table (Signature "ASPT")541*542******************************************************************************/543544ACPI_DMTABLE_INFO AcpiDmTableInfoAspt[] =545{546{ACPI_DMT_UINT32, ACPI_ASPT_OFFSET(NumEntries), "Number of Subtables", 0},547ACPI_DMT_TERMINATOR548};549550/* Common Subtable header (one per Subtable) */551ACPI_DMTABLE_INFO AcpiDmTableInfoAsptHdr[] =552{553{ACPI_DMT_ASPT, ACPI_ASPTH_OFFSET(Type), "Type", 0},554{ACPI_DMT_UINT16, ACPI_ASPTH_OFFSET(Length), "Length", 0},555ACPI_DMT_TERMINATOR556};557558/* 0: ASPT Global Registers */559ACPI_DMTABLE_INFO AcpiDmTableInfoAspt0[] =560{561{ACPI_DMT_UINT32, ACPI_ASPT0_OFFSET(Reserved), "Reserved", 0},562{ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(FeatureRegAddr), "Feature Register Address", 0},563{ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(IrqEnRegAddr), "Interrupt Enable Register Address", 0},564{ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(IrqStRegAddr), "Interrupt Status Register Address", 0},565ACPI_DMT_TERMINATOR566};567568/* 1: ASPT SEV Mailbox Registers */569ACPI_DMTABLE_INFO AcpiDmTableInfoAspt1[] =570{571{ACPI_DMT_UINT8, ACPI_ASPT1_OFFSET(MboxIrqId), "Mailbox Interrupt ID", 0},572{ACPI_DMT_UINT24, ACPI_ASPT1_OFFSET(Reserved[0]), "Reserved", 0},573{ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdRespRegAddr), "CmdResp Register Address", 0},574{ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdBufLoRegAddr), "CmdBufAddr_Lo Register Address", 0},575{ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdBufHiRegAddr), "CmdBufAddr_Hi Register Address", 0},576ACPI_DMT_TERMINATOR577};578579/* 2: ASPT ACPI Maiblox Registers */580ACPI_DMTABLE_INFO AcpiDmTableInfoAspt2[] =581{582{ACPI_DMT_UINT32, ACPI_ASPT2_OFFSET(Reserved1), "Reserved", 0},583{ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(CmdRespRegAddr), "CmdResp Register Address", 0},584{ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(Reserved2[0]), "Reserved", 0},585{ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(Reserved2[1]), "Reserved", 0},586ACPI_DMT_TERMINATOR587};588589/*******************************************************************************590*591* BDAT - BIOS Data ACPI Table592*593******************************************************************************/594595ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[] =596{597{ACPI_DMT_GAS, ACPI_BDAT_OFFSET (Gas), "BDAT Generic Address", 0},598ACPI_DMT_TERMINATOR599};600601602/*******************************************************************************603*604* BERT - Boot Error Record table605*606******************************************************************************/607608ACPI_DMTABLE_INFO AcpiDmTableInfoBert[] =609{610{ACPI_DMT_UINT32, ACPI_BERT_OFFSET (RegionLength), "Boot Error Region Length", 0},611{ACPI_DMT_UINT64, ACPI_BERT_OFFSET (Address), "Boot Error Region Address", 0},612ACPI_DMT_TERMINATOR613};614615616/*******************************************************************************617*618* BGRT - Boot Graphics Resource Table (ACPI 5.0)619*620******************************************************************************/621622ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[] =623{624{ACPI_DMT_UINT16, ACPI_BGRT_OFFSET (Version), "Version", 0},625{ACPI_DMT_UINT8, ACPI_BGRT_OFFSET (Status), "Status (decoded below)", DT_FLAG},626{ACPI_DMT_FLAG0, ACPI_BGRT_FLAG_OFFSET (Status, 0), "Displayed", 0},627{ACPI_DMT_FLAGS1, ACPI_BGRT_FLAG_OFFSET (Status, 0), "Orientation Offset", 0},628629{ACPI_DMT_UINT8, ACPI_BGRT_OFFSET (ImageType), "Image Type", 0},630{ACPI_DMT_UINT64, ACPI_BGRT_OFFSET (ImageAddress), "Image Address", 0},631{ACPI_DMT_UINT32, ACPI_BGRT_OFFSET (ImageOffsetX), "Image OffsetX", 0},632{ACPI_DMT_UINT32, ACPI_BGRT_OFFSET (ImageOffsetY), "Image OffsetY", 0},633ACPI_DMT_TERMINATOR634};635636637/*******************************************************************************638*639* BOOT - Simple Boot Flag Table640*641******************************************************************************/642643ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[] =644{645{ACPI_DMT_UINT8, ACPI_BOOT_OFFSET (CmosIndex), "Boot Register Index", 0},646{ACPI_DMT_UINT24, ACPI_BOOT_OFFSET (Reserved[0]), "Reserved", 0},647ACPI_DMT_TERMINATOR648};649650/*******************************************************************************651*652* CDAT - Coherent Device Attribute Table653*654******************************************************************************/655656/* Table header (not ACPI-compliant) */657658ACPI_DMTABLE_INFO AcpiDmTableInfoCdatTableHdr[] =659{660{ACPI_DMT_UINT32, ACPI_CDAT_OFFSET (Length), "CDAT Table Length", DT_LENGTH},661{ACPI_DMT_UINT8, ACPI_CDAT_OFFSET (Revision), "Revision", 0},662{ACPI_DMT_UINT8, ACPI_CDAT_OFFSET (Checksum), "Checksum", 0},663{ACPI_DMT_UINT48, ACPI_CDAT_OFFSET (Reserved), "Reserved", 0},664{ACPI_DMT_UINT32, ACPI_CDAT_OFFSET (Sequence), "Sequence", 0},665ACPI_DMT_TERMINATOR666};667668/* Common subtable header */669670ACPI_DMTABLE_INFO AcpiDmTableInfoCdatHeader[] =671{672{ACPI_DMT_CDAT, ACPI_CDATH_OFFSET (Type), "Subtable Type", 0},673{ACPI_DMT_UINT8, ACPI_CDATH_OFFSET (Reserved), "Reserved", 0},674{ACPI_DMT_UINT16, ACPI_CDATH_OFFSET (Length), "Length", DT_LENGTH},675ACPI_DMT_TERMINATOR676};677678/* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */679680ACPI_DMTABLE_INFO AcpiDmTableInfoCdat0[] =681{682{ACPI_DMT_UINT8, ACPI_CDAT0_OFFSET (DsmadHandle), "DSMAD Handle", 0},683{ACPI_DMT_UINT8, ACPI_CDAT0_OFFSET (Flags), "Flags", 0},684{ACPI_DMT_UINT16, ACPI_CDAT0_OFFSET (Reserved), "Reserved", 0},685{ACPI_DMT_UINT64, ACPI_CDAT0_OFFSET (DpaBaseAddress), "DPA Base Address", 0},686{ACPI_DMT_UINT64, ACPI_CDAT0_OFFSET (DpaLength), "DPA Length", 0},687ACPI_DMT_TERMINATOR688};689690/* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */691692ACPI_DMTABLE_INFO AcpiDmTableInfoCdat1[] =693{694{ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Handle), "Handle", 0},695{ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Flags), "Flags", 0},696{ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (DataType), "Data Type", 0},697{ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Reserved), "Reserved", 0},698{ACPI_DMT_UINT64, ACPI_CDAT1_OFFSET (EntryBaseUnit), "Entry Base Unit", 0},699{ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[0]), "Entry0", 0},700{ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[1]), "Entry1", 0},701{ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[2]), "Entry2", 0},702{ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Reserved2), "Reserved", 0},703ACPI_DMT_TERMINATOR704};705706/* Subtable 2: Device Scoped Memory Side Cache Information Structure (DSMSCIS) */707708ACPI_DMTABLE_INFO AcpiDmTableInfoCdat2[] =709{710{ACPI_DMT_UINT8, ACPI_CDAT2_OFFSET (DsmasHandle), "DSMAS Handle", 0},711{ACPI_DMT_UINT24, ACPI_CDAT2_OFFSET (Reserved[3]), "Reserved", 0},712{ACPI_DMT_UINT64, ACPI_CDAT2_OFFSET (SideCacheSize), "Side Cache Size", 0},713{ACPI_DMT_UINT32, ACPI_CDAT2_OFFSET (CacheAttributes), "Cache Attributes", 0},714ACPI_DMT_TERMINATOR715};716717/* Subtable 3: Device Scoped Initiator Structure (DSIS) */718719ACPI_DMTABLE_INFO AcpiDmTableInfoCdat3[] =720{721{ACPI_DMT_UINT8, ACPI_CDAT3_OFFSET (Flags), "Flags", 0},722{ACPI_DMT_UINT8, ACPI_CDAT3_OFFSET (Handle), "Handle", 0},723{ACPI_DMT_UINT16, ACPI_CDAT3_OFFSET (Reserved), "Reserved", 0},724ACPI_DMT_TERMINATOR725};726727/* Subtable 4: Device Scoped EFI Memory Type Structure (DSEMTS) */728729ACPI_DMTABLE_INFO AcpiDmTableInfoCdat4[] =730{731{ACPI_DMT_UINT8, ACPI_CDAT4_OFFSET (DsmasHandle), "DSMAS Handle", 0},732{ACPI_DMT_UINT8, ACPI_CDAT4_OFFSET (MemoryType), "Memory Type", 0},733{ACPI_DMT_UINT16, ACPI_CDAT4_OFFSET (Reserved), "Reserved", 0},734{ACPI_DMT_UINT64, ACPI_CDAT4_OFFSET (DpaOffset), "DPA Offset", 0},735{ACPI_DMT_UINT64, ACPI_CDAT4_OFFSET (RangeLength), "DPA Range Length", 0},736ACPI_DMT_TERMINATOR737};738739/* Subtable 5: Switch Scoped Latency and Bandwidth Information Structure (SSLBIS) */740741ACPI_DMTABLE_INFO AcpiDmTableInfoCdat5[] =742{743{ACPI_DMT_UINT8, ACPI_CDAT5_OFFSET (DataType), "Data Type", 0},744{ACPI_DMT_UINT24, ACPI_CDAT5_OFFSET (Reserved), "Reserved", 0},745{ACPI_DMT_UINT64, ACPI_CDAT5_OFFSET (EntryBaseUnit), "Entry Base Unit", 0},746ACPI_DMT_TERMINATOR747};748749/* Switch Scoped Latency and Bandwidth Entry (SSLBE) (For subtable 5 above) */750751ACPI_DMTABLE_INFO AcpiDmTableInfoCdatEntries[] =752{753{ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (PortxId), "Port X Id", 0},754{ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (PortyId), "Port Y Id", 0},755{ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (LatencyOrBandwidth), "Latency or Bandwidth", 0},756{ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (Reserved), "Reserved", 0},757ACPI_DMT_TERMINATOR758};759760761/*******************************************************************************762*763* CEDT - CXL Early Discovery Table764*765******************************************************************************/766767ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[] =768{769{ACPI_DMT_CEDT, ACPI_CEDT_OFFSET (Type), "Subtable Type", 0},770{ACPI_DMT_UINT8, ACPI_CEDT_OFFSET (Reserved), "Reserved", 0},771{ACPI_DMT_UINT16, ACPI_CEDT_OFFSET (Length), "Length", DT_LENGTH},772ACPI_DMT_TERMINATOR773};774775/* 0: CXL Host Bridge Structure */776777ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[] =778{779{ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (Uid), "Associated host bridge", 0},780{ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (CxlVersion), "Specification version", 0},781{ACPI_DMT_UINT32, ACPI_CEDT0_OFFSET (Reserved), "Reserved", 0},782{ACPI_DMT_UINT64, ACPI_CEDT0_OFFSET (Base), "Register base", 0},783{ACPI_DMT_UINT64, ACPI_CEDT0_OFFSET (Length), "Register length", 0},784ACPI_DMT_TERMINATOR785};786787/* 1: CXL Fixed Memory Window Structure */788789ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[] =790{791{ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (Reserved1), "Reserved", 0},792{ACPI_DMT_UINT64, ACPI_CEDT1_OFFSET (BaseHpa), "Window base address", 0},793{ACPI_DMT_UINT64, ACPI_CEDT1_OFFSET (WindowSize), "Window size", 0},794{ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveWays), "Interleave Members", 0},795{ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveArithmetic), "Interleave Arithmetic", 0},796{ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (Reserved2), "Reserved", 0},797{ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (Granularity), "Granularity", 0},798{ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (Restrictions), "Restrictions", 0},799{ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (QtgId), "QtgId", 0},800{ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (InterleaveTargets), "First Target", 0},801ACPI_DMT_TERMINATOR802};803804ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[] =805{806{ACPI_DMT_UINT32, ACPI_CEDT1_TE_OFFSET (InterleaveTarget), "Next Target", 0},807ACPI_DMT_TERMINATOR808};809810/* 2: CXL XOR Interleave Math Structure */811812ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2[] =813{814{ACPI_DMT_UINT16, ACPI_CEDT2_OFFSET (Reserved1), "Reserved", 0},815{ACPI_DMT_UINT8, ACPI_CEDT2_OFFSET (Hbig), "Interleave Granularity", 0},816{ACPI_DMT_UINT8, ACPI_CEDT2_OFFSET (NrXormaps), "Xormap List Count", 0},817{ACPI_DMT_UINT64, ACPI_CEDT2_OFFSET (XormapList), "First Xormap", 0},818ACPI_DMT_TERMINATOR819};820821ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2_te[] =822{823{ACPI_DMT_UINT64, ACPI_CEDT2_TE_OFFSET (Xormap), "Next Xormap", 0},824ACPI_DMT_TERMINATOR825};826827/*******************************************************************************828*829* CPEP - Corrected Platform Error Polling table830*831******************************************************************************/832833ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[] =834{835{ACPI_DMT_UINT64, ACPI_CPEP_OFFSET (Reserved), "Reserved", 0},836ACPI_DMT_TERMINATOR837};838839ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[] =840{841{ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Header.Type), "Subtable Type", 0},842{ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Header.Length), "Length", DT_LENGTH},843{ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Id), "Processor ID", 0},844{ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Eid), "Processor EID", 0},845{ACPI_DMT_UINT32, ACPI_CPEP0_OFFSET (Interval), "Polling Interval", 0},846ACPI_DMT_TERMINATOR847};848849850/*******************************************************************************851*852* CSRT - Core System Resource Table853*854******************************************************************************/855856/* Main table consists only of the standard ACPI table header */857858/* Resource Group subtable */859860ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[] =861{862{ACPI_DMT_UINT32, ACPI_CSRT0_OFFSET (Length), "Length", DT_LENGTH},863{ACPI_DMT_UINT32, ACPI_CSRT0_OFFSET (VendorId), "Vendor ID", 0},864{ACPI_DMT_UINT32, ACPI_CSRT0_OFFSET (SubvendorId), "Subvendor ID", 0},865{ACPI_DMT_UINT16, ACPI_CSRT0_OFFSET (DeviceId), "Device ID", 0},866{ACPI_DMT_UINT16, ACPI_CSRT0_OFFSET (SubdeviceId), "Subdevice ID", 0},867{ACPI_DMT_UINT16, ACPI_CSRT0_OFFSET (Revision), "Revision", 0},868{ACPI_DMT_UINT16, ACPI_CSRT0_OFFSET (Reserved), "Reserved", 0},869{ACPI_DMT_UINT32, ACPI_CSRT0_OFFSET (SharedInfoLength), "Shared Info Length", 0},870ACPI_DMT_TERMINATOR871};872873/* Shared Info subtable */874875ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[] =876{877{ACPI_DMT_UINT16, ACPI_CSRT1_OFFSET (MajorVersion), "Major Version", 0},878{ACPI_DMT_UINT16, ACPI_CSRT1_OFFSET (MinorVersion), "Minor Version", 0},879{ACPI_DMT_UINT32, ACPI_CSRT1_OFFSET (MmioBaseLow), "MMIO Base Address Low", 0},880{ACPI_DMT_UINT32, ACPI_CSRT1_OFFSET (MmioBaseHigh), "MMIO Base Address High", 0},881{ACPI_DMT_UINT32, ACPI_CSRT1_OFFSET (GsiInterrupt), "GSI Interrupt", 0},882{ACPI_DMT_UINT8, ACPI_CSRT1_OFFSET (InterruptPolarity), "Interrupt Polarity", 0},883{ACPI_DMT_UINT8, ACPI_CSRT1_OFFSET (InterruptMode), "Interrupt Mode", 0},884{ACPI_DMT_UINT8, ACPI_CSRT1_OFFSET (NumChannels), "Num Channels", 0},885{ACPI_DMT_UINT8, ACPI_CSRT1_OFFSET (DmaAddressWidth), "DMA Address Width", 0},886{ACPI_DMT_UINT16, ACPI_CSRT1_OFFSET (BaseRequestLine), "Base Request Line", 0},887{ACPI_DMT_UINT16, ACPI_CSRT1_OFFSET (NumHandshakeSignals), "Num Handshake Signals", 0},888{ACPI_DMT_UINT32, ACPI_CSRT1_OFFSET (MaxBlockSize), "Max Block Size", 0},889ACPI_DMT_TERMINATOR890};891892/* Resource Descriptor subtable */893894ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[] =895{896{ACPI_DMT_UINT32, ACPI_CSRT2_OFFSET (Length), "Length", DT_LENGTH},897{ACPI_DMT_UINT16, ACPI_CSRT2_OFFSET (Type), "Type", 0},898{ACPI_DMT_UINT16, ACPI_CSRT2_OFFSET (Subtype), "Subtype", 0},899{ACPI_DMT_UINT32, ACPI_CSRT2_OFFSET (Uid), "UID", 0},900ACPI_DMT_TERMINATOR901};902903ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2a[] =904{905{ACPI_DMT_RAW_BUFFER, 0, "ResourceInfo", DT_OPTIONAL},906ACPI_DMT_TERMINATOR907};908909910/*******************************************************************************911*912* DBG2 - Debug Port Table 2913*914******************************************************************************/915916ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[] =917{918{ACPI_DMT_UINT32, ACPI_DBG2_OFFSET (InfoOffset), "Info Offset", 0},919{ACPI_DMT_UINT32, ACPI_DBG2_OFFSET (InfoCount), "Info Count", 0},920ACPI_DMT_TERMINATOR921};922923/* Debug Device Information Subtable */924925ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[] =926{927{ACPI_DMT_UINT8, ACPI_DBG20_OFFSET (Revision), "Revision", 0},928{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (Length), "Length", DT_LENGTH},929{ACPI_DMT_UINT8, ACPI_DBG20_OFFSET (RegisterCount), "Register Count", 0},930{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (NamepathLength), "Namepath Length", 0},931{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (NamepathOffset), "Namepath Offset", 0},932{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (OemDataLength), "OEM Data Length", DT_DESCRIBES_OPTIONAL},933{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (OemDataOffset), "OEM Data Offset", DT_DESCRIBES_OPTIONAL},934{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (PortType), "Port Type", 0},935{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (PortSubtype), "Port Subtype", 0},936{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (Reserved), "Reserved", 0},937{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (BaseAddressOffset), "Base Address Offset", 0},938{ACPI_DMT_UINT16, ACPI_DBG20_OFFSET (AddressSizeOffset), "Address Size Offset", 0},939ACPI_DMT_TERMINATOR940};941942/* Variable-length data for the subtable */943944ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[] =945{946{ACPI_DMT_GAS, 0, "Base Address Register", 0},947ACPI_DMT_TERMINATOR948};949950ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[] =951{952{ACPI_DMT_UINT32, 0, "Address Size", 0},953ACPI_DMT_TERMINATOR954};955956ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[] =957{958{ACPI_DMT_STRING, 0, "Namepath", 0},959ACPI_DMT_TERMINATOR960};961962ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2OemData[] =963{964{ACPI_DMT_RAW_BUFFER, 0, "OEM Data", DT_OPTIONAL},965ACPI_DMT_TERMINATOR966};967968969/*******************************************************************************970*971* DBGP - Debug Port972*973******************************************************************************/974975ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[] =976{977{ACPI_DMT_UINT8, ACPI_DBGP_OFFSET (Type), "Interface Type", 0},978{ACPI_DMT_UINT24, ACPI_DBGP_OFFSET (Reserved[0]), "Reserved", 0},979{ACPI_DMT_GAS, ACPI_DBGP_OFFSET (DebugPort), "Debug Port Register", 0},980ACPI_DMT_TERMINATOR981};982983984/*******************************************************************************985*986* DMAR - DMA Remapping table987*988******************************************************************************/989990ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[] =991{992{ACPI_DMT_UINT8, ACPI_DMAR_OFFSET (Width), "Host Address Width", 0},993{ACPI_DMT_UINT8, ACPI_DMAR_OFFSET (Flags), "Flags", 0},994{ACPI_DMT_BUF10, ACPI_DMAR_OFFSET (Reserved[0]), "Reserved", 0},995ACPI_DMT_TERMINATOR996};997998/* Common Subtable header (one per Subtable) */9991000ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[] =1001{1002{ACPI_DMT_DMAR, ACPI_DMAR0_OFFSET (Header.Type), "Subtable Type", 0},1003{ACPI_DMT_UINT16, ACPI_DMAR0_OFFSET (Header.Length), "Length", DT_LENGTH},1004ACPI_DMT_TERMINATOR1005};10061007/* Common device scope entry */10081009ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[] =1010{1011{ACPI_DMT_DMAR_SCOPE, ACPI_DMARS_OFFSET (EntryType), "Device Scope Type", 0},1012{ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Length), "Entry Length", DT_LENGTH},1013{ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Flags), "Flags", 0},1014{ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Reserved), "Reserved", 0},1015{ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (EnumerationId), "Enumeration ID", 0},1016{ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Bus), "PCI Bus Number", 0},1017ACPI_DMT_TERMINATOR1018};10191020/* DMAR Subtables */10211022/* 0: Hardware Unit Definition */10231024ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[] =1025{1026{ACPI_DMT_UINT8, ACPI_DMAR0_OFFSET (Flags), "Flags", 0},1027{ACPI_DMT_UINT8, ACPI_DMAR0_OFFSET (Size), "Size (decoded below)", 0},1028{ACPI_DMT_FLAGS4_0, ACPI_DMAR0_FLAG_OFFSET (Size,0), "Size (pages, log2)", 0},1029{ACPI_DMT_UINT16, ACPI_DMAR0_OFFSET (Segment), "PCI Segment Number", 0},1030{ACPI_DMT_UINT64, ACPI_DMAR0_OFFSET (Address), "Register Base Address", 0},1031ACPI_DMT_TERMINATOR1032};10331034/* 1: Reserved Memory Definition */10351036ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[] =1037{1038{ACPI_DMT_UINT16, ACPI_DMAR1_OFFSET (Reserved), "Reserved", 0},1039{ACPI_DMT_UINT16, ACPI_DMAR1_OFFSET (Segment), "PCI Segment Number", 0},1040{ACPI_DMT_UINT64, ACPI_DMAR1_OFFSET (BaseAddress), "Base Address", 0},1041{ACPI_DMT_UINT64, ACPI_DMAR1_OFFSET (EndAddress), "End Address (limit)", 0},1042ACPI_DMT_TERMINATOR1043};10441045/* 2: Root Port ATS Capability Definition */10461047ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[] =1048{1049{ACPI_DMT_UINT8, ACPI_DMAR2_OFFSET (Flags), "Flags", 0},1050{ACPI_DMT_UINT8, ACPI_DMAR2_OFFSET (Reserved), "Reserved", 0},1051{ACPI_DMT_UINT16, ACPI_DMAR2_OFFSET (Segment), "PCI Segment Number", 0},1052ACPI_DMT_TERMINATOR1053};10541055/* 3: Remapping Hardware Static Affinity Structure */10561057ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[] =1058{1059{ACPI_DMT_UINT32, ACPI_DMAR3_OFFSET (Reserved), "Reserved", 0},1060{ACPI_DMT_UINT64, ACPI_DMAR3_OFFSET (BaseAddress), "Base Address", 0},1061{ACPI_DMT_UINT32, ACPI_DMAR3_OFFSET (ProximityDomain), "Proximity Domain", 0},1062ACPI_DMT_TERMINATOR1063};10641065/* 4: ACPI Namespace Device Declaration Structure */10661067ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[] =1068{1069{ACPI_DMT_UINT24, ACPI_DMAR4_OFFSET (Reserved[0]), "Reserved", 0},1070{ACPI_DMT_UINT8, ACPI_DMAR4_OFFSET (DeviceNumber), "Device Number", 0},1071{ACPI_DMT_STRING, ACPI_DMAR4_OFFSET (DeviceName[0]), "Device Name", 0},1072ACPI_DMT_TERMINATOR1073};10741075/* 5: SoC Integrated Address Translation Cache */10761077ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[] =1078{1079{ACPI_DMT_UINT8, ACPI_DMAR5_OFFSET (Flags), "Flags", 0},1080{ACPI_DMT_UINT8, ACPI_DMAR5_OFFSET (Reserved), "Reserved", 0},1081{ACPI_DMT_UINT16, ACPI_DMAR5_OFFSET (Segment), "PCI Segment Number", 0},1082ACPI_DMT_TERMINATOR1083};10841085/* 6: SoC Integrated Device Property */10861087ACPI_DMTABLE_INFO AcpiDmTableInfoDmar6[] =1088{1089{ACPI_DMT_UINT16, ACPI_DMAR6_OFFSET (Reserved), "Reserved", 0},1090{ACPI_DMT_UINT16, ACPI_DMAR6_OFFSET (Segment), "PCI Segment Number", 0},1091ACPI_DMT_TERMINATOR1092};109310941095/*******************************************************************************1096*1097* DRTM - Dynamic Root of Trust for Measurement table1098*1099******************************************************************************/11001101ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[] =1102{1103{ACPI_DMT_UINT64, ACPI_DRTM_OFFSET (EntryBaseAddress), "Entry Base Address", 0},1104{ACPI_DMT_UINT64, ACPI_DRTM_OFFSET (EntryLength), "Entry Length", 0},1105{ACPI_DMT_UINT32, ACPI_DRTM_OFFSET (EntryAddress32), "Entry 32", 0},1106{ACPI_DMT_UINT64, ACPI_DRTM_OFFSET (EntryAddress64), "Entry 64", 0},1107{ACPI_DMT_UINT64, ACPI_DRTM_OFFSET (ExitAddress), "Exit Address", 0},1108{ACPI_DMT_UINT64, ACPI_DRTM_OFFSET (LogAreaAddress), "Log Area Start", 0},1109{ACPI_DMT_UINT32, ACPI_DRTM_OFFSET (LogAreaLength), "Log Area Length", 0},1110{ACPI_DMT_UINT64, ACPI_DRTM_OFFSET (ArchDependentAddress), "Arch Dependent Address", 0},1111{ACPI_DMT_UINT32, ACPI_DRTM_OFFSET (Flags), "Flags (decoded below)", 0},1112{ACPI_DMT_FLAG0, ACPI_DRTM_FLAG_OFFSET (Flags, 0), "Namespace in TCB", 0},1113{ACPI_DMT_FLAG1, ACPI_DRTM_FLAG_OFFSET (Flags, 0), "Gap Code on S3 Resume", 0},1114{ACPI_DMT_FLAG2, ACPI_DRTM_FLAG_OFFSET (Flags, 0), "Gap Code on DLME_Exit", 0},1115{ACPI_DMT_FLAG3, ACPI_DRTM_FLAG_OFFSET (Flags, 0), "PCR_Authorities Changed", 0},1116ACPI_DMT_TERMINATOR1117};11181119ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[] =1120{1121{ACPI_DMT_UINT32, ACPI_DRTM0_OFFSET (ValidatedTableCount), "Validated Table Count", DT_COUNT},1122ACPI_DMT_TERMINATOR1123};11241125ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[] =1126{1127{ACPI_DMT_UINT64, 0, "Table Address", DT_OPTIONAL},1128ACPI_DMT_TERMINATOR1129};11301131ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1[] =1132{1133{ACPI_DMT_UINT32, ACPI_DRTM1_OFFSET (ResourceCount), "Resource Count", DT_COUNT},1134ACPI_DMT_TERMINATOR1135};11361137ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1a[] =1138{1139{ACPI_DMT_UINT56, ACPI_DRTM1a_OFFSET (Size[0]), "Size", DT_OPTIONAL},1140{ACPI_DMT_UINT8, ACPI_DRTM1a_OFFSET (Type), "Type", 0},1141{ACPI_DMT_FLAG0, ACPI_DRTM1a_FLAG_OFFSET (Type, 0), "Resource Type", 0},1142{ACPI_DMT_FLAG7, ACPI_DRTM1a_FLAG_OFFSET (Type, 0), "Protections", 0},1143{ACPI_DMT_UINT64, ACPI_DRTM1a_OFFSET (Address), "Address", 0},1144ACPI_DMT_TERMINATOR1145};11461147ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[] =1148{1149{ACPI_DMT_UINT32, ACPI_DRTM2_OFFSET (DpsIdLength), "DLME Platform Id Length", DT_COUNT},1150{ACPI_DMT_BUF16, ACPI_DRTM2_OFFSET (DpsId), "DLME Platform Id", DT_COUNT},1151ACPI_DMT_TERMINATOR1152};115311541155/*******************************************************************************1156*1157* ECDT - Embedded Controller Boot Resources Table1158*1159******************************************************************************/11601161ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[] =1162{1163{ACPI_DMT_GAS, ACPI_ECDT_OFFSET (Control), "Command/Status Register", 0},1164{ACPI_DMT_GAS, ACPI_ECDT_OFFSET (Data), "Data Register", 0},1165{ACPI_DMT_UINT32, ACPI_ECDT_OFFSET (Uid), "UID", 0},1166{ACPI_DMT_UINT8, ACPI_ECDT_OFFSET (Gpe), "GPE Number", 0},1167{ACPI_DMT_STRING, ACPI_ECDT_OFFSET (Id[0]), "Namepath", 0},1168ACPI_DMT_TERMINATOR1169};117011711172/*******************************************************************************1173*1174* EINJ - Error Injection table1175*1176******************************************************************************/11771178ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[] =1179{1180{ACPI_DMT_UINT32, ACPI_EINJ_OFFSET (HeaderLength), "Injection Header Length", 0},1181{ACPI_DMT_UINT8, ACPI_EINJ_OFFSET (Flags), "Flags", 0},1182{ACPI_DMT_UINT24, ACPI_EINJ_OFFSET (Reserved[0]), "Reserved", 0},1183{ACPI_DMT_UINT32, ACPI_EINJ_OFFSET (Entries), "Injection Entry Count", 0},1184ACPI_DMT_TERMINATOR1185};11861187ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[] =1188{1189{ACPI_DMT_EINJACT, ACPI_EINJ0_OFFSET (Action), "Action", 0},1190{ACPI_DMT_EINJINST, ACPI_EINJ0_OFFSET (Instruction), "Instruction", 0},1191{ACPI_DMT_UINT8, ACPI_EINJ0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},1192{ACPI_DMT_FLAG0, ACPI_EINJ0_FLAG_OFFSET (Flags,0), "Preserve Register Bits", 0},11931194{ACPI_DMT_UINT8, ACPI_EINJ0_OFFSET (Reserved), "Reserved", 0},1195{ACPI_DMT_GAS, ACPI_EINJ0_OFFSET (RegisterRegion), "Register Region", 0},1196{ACPI_DMT_UINT64, ACPI_EINJ0_OFFSET (Value), "Value", 0},1197{ACPI_DMT_UINT64, ACPI_EINJ0_OFFSET (Mask), "Mask", 0},1198ACPI_DMT_TERMINATOR1199};120012011202/*******************************************************************************1203*1204* ERDT - Enhanced Resource Director Technology table1205*1206******************************************************************************/12071208ACPI_DMTABLE_INFO AcpiDmTableInfoErdt[] =1209{1210{ACPI_DMT_UINT32, ACPI_ERDT_OFFSET (MaxClos), "Maximum supported CLOSID", 0},1211{ACPI_DMT_BUF24, ACPI_ERDT_OFFSET (Reserved), "Reserved", 0},1212ACPI_DMT_TERMINATOR1213};121412151216/*******************************************************************************1217*1218* ERDT - Common Subtable Header1219*1220******************************************************************************/12211222ACPI_DMTABLE_INFO AcpiDmTableInfoErdtHdr[] =1223{1224{ACPI_DMT_ERDT, ACPI_ERDT_HDR_OFFSET (Type), "Type", 0},1225{ACPI_DMT_UINT16, ACPI_ERDT_HDR_OFFSET (Length), "Length", DT_LENGTH},1226ACPI_DMT_TERMINATOR1227};122812291230/*******************************************************************************1231*1232* RMDD - ERDT Resource Management Domain Description subtable1233*1234******************************************************************************/12351236ACPI_DMTABLE_INFO AcpiDmTableInfoErdtRmdd[] =1237{1238{ACPI_DMT_UINT16, ACPI_ERDT_RMDD_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},1239{ACPI_DMT_FLAG0, ACPI_ERDT_RMDD_FLAG_OFFSET (Flags,0), "L3 Domain", 0},1240{ACPI_DMT_FLAG1, ACPI_ERDT_RMDD_FLAG_OFFSET (Flags,0), "I/O L3 Domain", 0},1241{ACPI_DMT_UINT16, ACPI_ERDT_RMDD_OFFSET (IO_l3_Slices), "I/O L3 Slices", 0},1242{ACPI_DMT_UINT8, ACPI_ERDT_RMDD_OFFSET (IO_l3_Sets), "I/O L3 Sets", 0},1243{ACPI_DMT_UINT8, ACPI_ERDT_RMDD_OFFSET (IO_l3_Ways), "I/O L3 Ways", 0},1244{ACPI_DMT_UINT64, ACPI_ERDT_RMDD_OFFSET (Reserved), "Reserved", 0},1245{ACPI_DMT_UINT16, ACPI_ERDT_RMDD_OFFSET (DomainId), "Domain ID", 0},1246{ACPI_DMT_UINT32, ACPI_ERDT_RMDD_OFFSET (MaxRmid), "Maximum supported RMID", 0},1247{ACPI_DMT_UINT64, ACPI_ERDT_RMDD_OFFSET (CregBase), "Control Register Base Address", 0},1248{ACPI_DMT_UINT16, ACPI_ERDT_RMDD_OFFSET (CregSize), "Control Register Base Size", 0},1249ACPI_DMT_TERMINATOR1250};125112521253/*******************************************************************************1254*1255* RMDD - CACD CPU Agent Collection Description subtable1256*1257******************************************************************************/12581259ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCacd[] =1260{1261{ACPI_DMT_UINT16, ACPI_ERDT_CACD_OFFSET (Reserved), "Reserved", 0},1262{ACPI_DMT_UINT16, ACPI_ERDT_CACD_OFFSET (DomainId), "Domain ID", 0},1263ACPI_DMT_TERMINATOR1264};12651266ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCacdX2apic[] =1267{1268{ACPI_DMT_UINT32, 0, "X2ApicID", DT_OPTIONAL},1269ACPI_DMT_TERMINATOR1270};127112721273/*******************************************************************************1274*1275* RMDD - DACD Device Agent Collection Description subtable1276*1277******************************************************************************/12781279ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacd[] =1280{1281{ACPI_DMT_UINT16, ACPI_ERDT_DACD_OFFSET (Reserved), "Reserved", 0},1282{ACPI_DMT_UINT16, ACPI_ERDT_DACD_OFFSET (DomainId), "Domain ID", 0},1283ACPI_DMT_TERMINATOR1284};12851286ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacdScope[] =1287{1288{ACPI_DMT_UINT8, ACPI_ERDT_DACD_PATH_OFFSET (Header.Type), "PCIType", DT_OPTIONAL},1289{ACPI_DMT_UINT8, ACPI_ERDT_DACD_PATH_OFFSET (Header.Length), "Length", DT_OPTIONAL},1290{ACPI_DMT_UINT16, ACPI_ERDT_DACD_PATH_OFFSET (Segment), "Segment", DT_OPTIONAL},1291{ACPI_DMT_UINT8, ACPI_ERDT_DACD_PATH_OFFSET (Reserved), "Reserved", DT_OPTIONAL},1292{ACPI_DMT_UINT8, ACPI_ERDT_DACD_PATH_OFFSET (StartBus), "StartBus", DT_OPTIONAL},1293ACPI_DMT_TERMINATOR1294};12951296ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacdPath[] =1297{1298{ACPI_DMT_UINT8, 0, "Path", DT_OPTIONAL},1299ACPI_DMT_TERMINATOR1300};130113021303/*******************************************************************************1304*1305* RMDD - Cache Monitoring Registers for CPU Agents subtable1306*1307******************************************************************************/13081309ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCmrc[] =1310{1311{ACPI_DMT_UINT32, ACPI_ERDT_CMRC_OFFSET (Reserved1), "Reserved", 0},1312{ACPI_DMT_UINT32, ACPI_ERDT_CMRC_OFFSET (Flags), "Flags", 0},1313{ACPI_DMT_UINT8, ACPI_ERDT_CMRC_OFFSET (IndexFn), "Register Index Function", 0},1314{ACPI_DMT_BUF11, ACPI_ERDT_CMRC_OFFSET (Reserved2), "Reserved", 0},1315{ACPI_DMT_UINT64, ACPI_ERDT_CMRC_OFFSET (CmtRegBase), "CMT Register Base Address", 0},1316{ACPI_DMT_UINT32, ACPI_ERDT_CMRC_OFFSET (CmtRegSize), "CMT Register Size", 0},1317{ACPI_DMT_UINT16, ACPI_ERDT_CMRC_OFFSET (ClumpSize), "Clump Size", 0},1318{ACPI_DMT_UINT16, ACPI_ERDT_CMRC_OFFSET (ClumpStride), "Clump Stride", 0},1319{ACPI_DMT_UINT64, ACPI_ERDT_CMRC_OFFSET (UpScale), "Upscale factor", 0},1320ACPI_DMT_TERMINATOR1321};132213231324/*******************************************************************************1325*1326* RMDD - Memory-bandwidth Monitoring Registers for CPU agents subtable1327*1328******************************************************************************/13291330ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMmrc[] =1331{1332{ACPI_DMT_UINT32, ACPI_ERDT_MMRC_OFFSET (Reserved1), "Reserved", 0},1333{ACPI_DMT_UINT32, ACPI_ERDT_MMRC_OFFSET (Flags), "Flags", 0},1334{ACPI_DMT_UINT8, ACPI_ERDT_MMRC_OFFSET (IndexFn), "Register Index Function", 0},1335{ACPI_DMT_BUF11, ACPI_ERDT_MMRC_OFFSET (Reserved2), "Reserved", 0},1336{ACPI_DMT_UINT64, ACPI_ERDT_MMRC_OFFSET (RegBase), "MBM Register Base Address", 0},1337{ACPI_DMT_UINT32, ACPI_ERDT_MMRC_OFFSET (RegSize), "MBM Register Size", 0},1338{ACPI_DMT_UINT8, ACPI_ERDT_MMRC_OFFSET (CounterWidth), "MBM Counter Width", 0},1339{ACPI_DMT_UINT64, ACPI_ERDT_MMRC_OFFSET (UpScale), "Upscale factor", 0},1340{ACPI_DMT_UINT56, ACPI_ERDT_MMRC_OFFSET (Reserved3), "Reserved", 0},1341{ACPI_DMT_UINT32, ACPI_ERDT_MMRC_OFFSET (CorrFactorListLen), "Corr Factor List Length", 0},1342ACPI_DMT_TERMINATOR1343};13441345ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMmrcCorrFactor[] =1346{1347{ACPI_DMT_UINT32, 0, "CorrFactor", DT_OPTIONAL},1348ACPI_DMT_TERMINATOR1349};135013511352/*******************************************************************************1353*1354* RMDD - Memory-bandwidth Allocation Registers for CPU agents subtable1355*1356******************************************************************************/13571358ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMarc[] =1359{1360{ACPI_DMT_UINT16, ACPI_ERDT_MARC_OFFSET (Reserved1), "Reserved", 0},1361{ACPI_DMT_UINT16, ACPI_ERDT_MARC_OFFSET (Flags), "Flags", 0},1362{ACPI_DMT_UINT8, ACPI_ERDT_MARC_OFFSET (IndexFn), "Register Index Function", 0},1363{ACPI_DMT_UINT56, ACPI_ERDT_MARC_OFFSET (Reserved2), "Reserved", 0},1364{ACPI_DMT_UINT64, ACPI_ERDT_MARC_OFFSET (RegBaseOpt), "MBA Register Opt Base Address", 0},1365{ACPI_DMT_UINT64, ACPI_ERDT_MARC_OFFSET (RegBaseMin), "MBA Register Min Base Address", 0},1366{ACPI_DMT_UINT64, ACPI_ERDT_MARC_OFFSET (RegBaseMax), "MBA Register Max Base Address", 0},1367{ACPI_DMT_UINT32, ACPI_ERDT_MARC_OFFSET (MbaRegSize), "MBA Register Size", 0},1368{ACPI_DMT_UINT32, ACPI_ERDT_MARC_OFFSET (MbaCtrlRange), "MBA Control Range", 0},1369ACPI_DMT_TERMINATOR1370};137113721373/*******************************************************************************1374*1375* RMDD - Cache Allocation Registers for CPU Agents subtable1376*1377******************************************************************************/13781379ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCarc[] =1380{1381ACPI_DMT_TERMINATOR1382};138313841385/*******************************************************************************1386*1387* RMDD - Cache Monitoring Registers for Device Agents subtable1388*1389******************************************************************************/13901391ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCmrd[] =1392{1393{ACPI_DMT_UINT32, ACPI_ERDT_CMRD_OFFSET (Reserved1), "Reserved", 0},1394{ACPI_DMT_UINT32, ACPI_ERDT_CMRD_OFFSET (Flags), "Flags", 0},1395{ACPI_DMT_UINT8, ACPI_ERDT_CMRD_OFFSET (IndexFn), "Register Index Function", 0},1396{ACPI_DMT_BUF11, ACPI_ERDT_CMRD_OFFSET (Reserved2), "Reserved", 0},1397{ACPI_DMT_UINT64, ACPI_ERDT_CMRD_OFFSET (RegBase), "CMRD Register Base Address", 0},1398{ACPI_DMT_UINT32, ACPI_ERDT_CMRD_OFFSET (RegSize), "CMRD Register Size", 0},1399{ACPI_DMT_UINT16, ACPI_ERDT_CMRD_OFFSET (CmtRegOff), "Register Offset", 0},1400{ACPI_DMT_UINT16, ACPI_ERDT_CMRD_OFFSET (CmtClumpSize), "Clump Size", 0},1401{ACPI_DMT_UINT64, ACPI_ERDT_CMRD_OFFSET (UpScale), "Upscale factor", 0},1402ACPI_DMT_TERMINATOR1403};140414051406/*******************************************************************************1407*1408* RMDD - O Bandwidth Monitoring Registers for Device Agents subtable1409*1410******************************************************************************/14111412ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbrd[] =1413{1414{ACPI_DMT_UINT32, ACPI_ERDT_IBRD_OFFSET (Reserved1), "Reserved", 0},1415{ACPI_DMT_UINT32, ACPI_ERDT_IBRD_OFFSET (Flags), "Flags", 0},1416{ACPI_DMT_UINT8, ACPI_ERDT_IBRD_OFFSET (IndexFn), "Register Index Function", 0},1417{ACPI_DMT_BUF11, ACPI_ERDT_IBRD_OFFSET (Reserved2), "Reserved", 0},1418{ACPI_DMT_UINT64, ACPI_ERDT_IBRD_OFFSET (RegBase), "IBRD Register Base Address", 0},1419{ACPI_DMT_UINT32, ACPI_ERDT_IBRD_OFFSET (RegSize), "IBRD Register Size", 0},1420{ACPI_DMT_UINT16, ACPI_ERDT_IBRD_OFFSET (TotalBwOffset), "TotalBw Offset", 0},1421{ACPI_DMT_UINT16, ACPI_ERDT_IBRD_OFFSET (IOMissBwOffset), "IO Miss Offset", 0},1422{ACPI_DMT_UINT16, ACPI_ERDT_IBRD_OFFSET (TotalBwClump), "TotalBw Clump", 0},1423{ACPI_DMT_UINT16, ACPI_ERDT_IBRD_OFFSET (IOMissBwClump), "IO Miss Clump", 0},1424{ACPI_DMT_UINT56, ACPI_ERDT_IBRD_OFFSET (Reserved3), "Reserved", 0},1425{ACPI_DMT_UINT8, ACPI_ERDT_IBRD_OFFSET (CounterWidth), "Counter Width", 0},1426{ACPI_DMT_UINT64, ACPI_ERDT_IBRD_OFFSET (UpScale), "Upscale factor", 0},1427{ACPI_DMT_UINT32, ACPI_ERDT_IBRD_OFFSET (CorrFactorListLen), "Corr Factor List Length", 0},1428ACPI_DMT_TERMINATOR1429};14301431ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbrdCorrFactor[] =1432{1433{ACPI_DMT_UINT32, 0, "CorrFactor", DT_OPTIONAL},1434ACPI_DMT_TERMINATOR1435};143614371438/*******************************************************************************1439*1440* RMDD - O bandwidth Allocation Registers for Device Agents subtable1441*1442******************************************************************************/14431444ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbad[] =1445{1446ACPI_DMT_TERMINATOR1447};144814491450/*******************************************************************************1451*1452* RMDD - Cache Allocation Registers for Device Agents subtable1453*1454******************************************************************************/14551456ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCard[] =1457{1458{ACPI_DMT_UINT32, ACPI_ERDT_CARD_OFFSET (Reserved1), "Reserved", 0},1459{ACPI_DMT_UINT32, ACPI_ERDT_CARD_OFFSET (Flags), "Flags", 0},1460{ACPI_DMT_UINT32, ACPI_ERDT_CARD_OFFSET (ContentionMask), "ContentionMask", 0},1461{ACPI_DMT_UINT8, ACPI_ERDT_CARD_OFFSET (IndexFn), "Register Index Function", 0},1462{ACPI_DMT_UINT56, ACPI_ERDT_CARD_OFFSET (Reserved2), "Register Index Function", 0},1463{ACPI_DMT_UINT64, ACPI_ERDT_CARD_OFFSET (RegBase), "CARD Register Base Address", 0},1464{ACPI_DMT_UINT32, ACPI_ERDT_CARD_OFFSET (RegSize), "CARD Register Size", 0},1465{ACPI_DMT_UINT16, ACPI_ERDT_CARD_OFFSET (CatRegOffset), "CARD Register Offset", 0},1466{ACPI_DMT_UINT16, ACPI_ERDT_CARD_OFFSET (CatRegBlockSize), "CARD Register Block Size", 0},14671468ACPI_DMT_TERMINATOR1469};147014711472/*******************************************************************************1473*1474* ERST - Error Record Serialization table1475*1476******************************************************************************/14771478ACPI_DMTABLE_INFO AcpiDmTableInfoErst[] =1479{1480{ACPI_DMT_UINT32, ACPI_ERST_OFFSET (HeaderLength), "Serialization Header Length", 0},1481{ACPI_DMT_UINT32, ACPI_ERST_OFFSET (Reserved), "Reserved", 0},1482{ACPI_DMT_UINT32, ACPI_ERST_OFFSET (Entries), "Instruction Entry Count", 0},1483ACPI_DMT_TERMINATOR1484};14851486ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[] =1487{1488{ACPI_DMT_ERSTACT, ACPI_ERST0_OFFSET (Action), "Action", 0},1489{ACPI_DMT_ERSTINST, ACPI_ERST0_OFFSET (Instruction), "Instruction", 0},1490{ACPI_DMT_UINT8, ACPI_ERST0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},1491{ACPI_DMT_FLAG0, ACPI_ERST0_FLAG_OFFSET (Flags,0), "Preserve Register Bits", 0},14921493{ACPI_DMT_UINT8, ACPI_ERST0_OFFSET (Reserved), "Reserved", 0},1494{ACPI_DMT_GAS, ACPI_ERST0_OFFSET (RegisterRegion), "Register Region", 0},1495{ACPI_DMT_UINT64, ACPI_ERST0_OFFSET (Value), "Value", 0},1496{ACPI_DMT_UINT64, ACPI_ERST0_OFFSET (Mask), "Mask", 0},1497ACPI_DMT_TERMINATOR1498};149915001501/*******************************************************************************1502*1503* FPDT - Firmware Performance Data Table (ACPI 5.0)1504*1505******************************************************************************/15061507/* Main table consists of only the standard ACPI header - subtables follow */15081509/* FPDT subtable header */15101511ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[] =1512{1513{ACPI_DMT_UINT16, ACPI_FPDTH_OFFSET (Type), "Subtable Type", 0},1514{ACPI_DMT_UINT8, ACPI_FPDTH_OFFSET (Length), "Length", DT_LENGTH},1515{ACPI_DMT_UINT8, ACPI_FPDTH_OFFSET (Revision), "Revision", 0},1516ACPI_DMT_TERMINATOR1517};15181519/* 0: Firmware Basic Boot Performance Record */15201521ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[] =1522{1523{ACPI_DMT_UINT32, ACPI_FPDT0_OFFSET (Reserved), "Reserved", 0},1524{ACPI_DMT_UINT64, ACPI_FPDT1_OFFSET (Address), "FPDT Boot Record Address", 0},1525ACPI_DMT_TERMINATOR1526};15271528/* 1: S3 Performance Table Pointer Record */15291530ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[] =1531{1532{ACPI_DMT_UINT32, ACPI_FPDT1_OFFSET (Reserved), "Reserved", 0},1533{ACPI_DMT_UINT64, ACPI_FPDT1_OFFSET (Address), "S3PT Record Address", 0},1534ACPI_DMT_TERMINATOR1535};15361537#if 01538/* Boot Performance Record, not supported at this time. */1539{ACPI_DMT_UINT64, ACPI_FPDT0_OFFSET (ResetEnd), "Reset End", 0},1540{ACPI_DMT_UINT64, ACPI_FPDT0_OFFSET (LoadStart), "Load Image Start", 0},1541{ACPI_DMT_UINT64, ACPI_FPDT0_OFFSET (StartupStart), "Start Image Start", 0},1542{ACPI_DMT_UINT64, ACPI_FPDT0_OFFSET (ExitServicesEntry), "Exit Services Entry", 0},1543{ACPI_DMT_UINT64, ACPI_FPDT0_OFFSET (ExitServicesExit), "Exit Services Exit", 0},1544#endif154515461547/*******************************************************************************1548*1549* GTDT - Generic Timer Description Table1550*1551******************************************************************************/15521553ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[] =1554{1555{ACPI_DMT_UINT64, ACPI_GTDT_OFFSET (CounterBlockAddresss), "Counter Block Address", 0},1556{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (Reserved), "Reserved", 0},1557ACPI_DMT_NEW_LINE,1558{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (SecureEl1Interrupt), "Secure EL1 Interrupt", 0},1559{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (SecureEl1Flags), "EL1 Flags (decoded below)", DT_FLAG},1560{ACPI_DMT_FLAG0, ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0), "Trigger Mode", 0},1561{ACPI_DMT_FLAG1, ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0), "Polarity", 0},1562{ACPI_DMT_FLAG2, ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0), "Always On", 0},1563ACPI_DMT_NEW_LINE,1564{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (NonSecureEl1Interrupt), "Non-Secure EL1 Interrupt", 0},1565{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (NonSecureEl1Flags), "NEL1 Flags (decoded below)", DT_FLAG},1566{ACPI_DMT_FLAG0, ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Trigger Mode", 0},1567{ACPI_DMT_FLAG1, ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Polarity", 0},1568{ACPI_DMT_FLAG2, ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Always On", 0},1569ACPI_DMT_NEW_LINE,1570{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (VirtualTimerInterrupt), "Virtual Timer Interrupt", 0},1571{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (VirtualTimerFlags), "VT Flags (decoded below)", DT_FLAG},1572{ACPI_DMT_FLAG0, ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Trigger Mode", 0},1573{ACPI_DMT_FLAG1, ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Polarity", 0},1574{ACPI_DMT_FLAG2, ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Always On", 0},1575ACPI_DMT_NEW_LINE,1576{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (NonSecureEl2Interrupt), "Non-Secure EL2 Interrupt", 0},1577{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (NonSecureEl2Flags), "NEL2 Flags (decoded below)", DT_FLAG},1578{ACPI_DMT_FLAG0, ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Trigger Mode", 0},1579{ACPI_DMT_FLAG1, ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Polarity", 0},1580{ACPI_DMT_FLAG2, ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Always On", 0},1581{ACPI_DMT_UINT64, ACPI_GTDT_OFFSET (CounterReadBlockAddress), "Counter Read Block Address", 0},1582ACPI_DMT_NEW_LINE,1583{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (PlatformTimerCount), "Platform Timer Count", 0},1584{ACPI_DMT_UINT32, ACPI_GTDT_OFFSET (PlatformTimerOffset), "Platform Timer Offset", 0},1585ACPI_DMT_TERMINATOR1586};15871588/* GDTD EL2 timer info. This table is appended to AcpiDmTableInfoGtdt for rev 3 and later */15891590ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[] =1591{1592{ACPI_DMT_UINT32, ACPI_GTDT_EL2_OFFSET (VirtualEL2TimerGsiv), "Virtual EL2 Timer GSIV", 0},1593{ACPI_DMT_UINT32, ACPI_GTDT_EL2_OFFSET (VirtualEL2TimerFlags), "Virtual EL2 Timer Flags", 0},1594ACPI_DMT_TERMINATOR1595};15961597/* GTDT Subtable header (one per Subtable) */15981599ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[] =1600{1601{ACPI_DMT_GTDT, ACPI_GTDTH_OFFSET (Type), "Subtable Type", 0},1602{ACPI_DMT_UINT16, ACPI_GTDTH_OFFSET (Length), "Length", DT_LENGTH},1603ACPI_DMT_TERMINATOR1604};16051606/* GTDT Subtables */16071608ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[] =1609{1610{ACPI_DMT_UINT8, ACPI_GTDT0_OFFSET (Reserved), "Reserved", 0},1611{ACPI_DMT_UINT64, ACPI_GTDT0_OFFSET (BlockAddress), "Block Address", 0},1612{ACPI_DMT_UINT32, ACPI_GTDT0_OFFSET (TimerCount), "Timer Count", 0},1613{ACPI_DMT_UINT32, ACPI_GTDT0_OFFSET (TimerOffset), "Timer Offset", 0},1614ACPI_DMT_TERMINATOR1615};16161617ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[] =1618{1619{ACPI_DMT_UINT8 , ACPI_GTDT0a_OFFSET (FrameNumber), "Frame Number", 0},1620{ACPI_DMT_UINT24, ACPI_GTDT0a_OFFSET (Reserved[0]), "Reserved", 0},1621{ACPI_DMT_UINT64, ACPI_GTDT0a_OFFSET (BaseAddress), "Base Address", 0},1622{ACPI_DMT_UINT64, ACPI_GTDT0a_OFFSET (El0BaseAddress), "EL0 Base Address", 0},1623{ACPI_DMT_UINT32, ACPI_GTDT0a_OFFSET (TimerInterrupt), "Timer Interrupt", 0},1624{ACPI_DMT_UINT32, ACPI_GTDT0a_OFFSET (TimerFlags), "Timer Flags (decoded below)", 0},1625{ACPI_DMT_FLAG0, ACPI_GTDT0a_FLAG_OFFSET (TimerFlags,0), "Trigger Mode", 0},1626{ACPI_DMT_FLAG1, ACPI_GTDT0a_FLAG_OFFSET (TimerFlags,0), "Polarity", 0},1627{ACPI_DMT_UINT32, ACPI_GTDT0a_OFFSET (VirtualTimerInterrupt), "Virtual Timer Interrupt", 0},1628{ACPI_DMT_UINT32, ACPI_GTDT0a_OFFSET (VirtualTimerFlags), "Virtual Timer Flags (decoded below)", 0},1629{ACPI_DMT_FLAG0, ACPI_GTDT0a_FLAG_OFFSET (VirtualTimerFlags,0), "Trigger Mode", 0},1630{ACPI_DMT_FLAG1, ACPI_GTDT0a_FLAG_OFFSET (VirtualTimerFlags,0), "Polarity", 0},1631{ACPI_DMT_UINT32, ACPI_GTDT0a_OFFSET (CommonFlags), "Common Flags (decoded below)", 0},1632{ACPI_DMT_FLAG0, ACPI_GTDT0a_FLAG_OFFSET (CommonFlags,0), "Secure", 0},1633{ACPI_DMT_FLAG1, ACPI_GTDT0a_FLAG_OFFSET (CommonFlags,0), "Always On", 0},1634ACPI_DMT_TERMINATOR1635};16361637ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[] =1638{1639{ACPI_DMT_UINT8, ACPI_GTDT1_OFFSET (Reserved), "Reserved", 0},1640{ACPI_DMT_UINT64, ACPI_GTDT1_OFFSET (RefreshFrameAddress), "Refresh Frame Address", 0},1641{ACPI_DMT_UINT64, ACPI_GTDT1_OFFSET (ControlFrameAddress), "Control Frame Address", 0},1642{ACPI_DMT_UINT32, ACPI_GTDT1_OFFSET (TimerInterrupt), "Timer Interrupt", 0},1643{ACPI_DMT_UINT32, ACPI_GTDT1_OFFSET (TimerFlags), "Timer Flags (decoded below)", DT_FLAG},1644{ACPI_DMT_FLAG0, ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0), "Trigger Mode", 0},1645{ACPI_DMT_FLAG1, ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0), "Polarity", 0},1646{ACPI_DMT_FLAG2, ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0), "Security", 0},1647ACPI_DMT_TERMINATOR1648};164916501651/*******************************************************************************1652*1653* HEST - Hardware Error Source table1654*1655******************************************************************************/16561657ACPI_DMTABLE_INFO AcpiDmTableInfoHest[] =1658{1659{ACPI_DMT_UINT32, ACPI_HEST_OFFSET (ErrorSourceCount), "Error Source Count", 0},1660ACPI_DMT_TERMINATOR1661};16621663/* Common HEST structures for subtables */16641665#define ACPI_DM_HEST_HEADER \1666{ACPI_DMT_HEST, ACPI_HEST0_OFFSET (Header.Type), "Subtable Type", 0}, \1667{ACPI_DMT_UINT16, ACPI_HEST0_OFFSET (Header.SourceId), "Source Id", 0}16681669#define ACPI_DM_HEST_AER \1670{ACPI_DMT_UINT16, ACPI_HEST6_OFFSET (Aer.Reserved1), "Reserved", 0}, \1671{ACPI_DMT_UINT8, ACPI_HEST6_OFFSET (Aer.Flags), "Flags (decoded below)", DT_FLAG}, \1672{ACPI_DMT_FLAG0, ACPI_HEST6_FLAG_OFFSET (Aer.Flags,0), "Firmware First", 0}, \1673{ACPI_DMT_FLAG0, ACPI_HEST6_FLAG_OFFSET (Aer.Flags,0), "Global", 0}, \1674{ACPI_DMT_UINT8, ACPI_HEST6_OFFSET (Aer.Enabled), "Enabled", 0}, \1675{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.RecordsToPreallocate), "Records To Preallocate", 0}, \1676{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.MaxSectionsPerRecord), "Max Sections Per Record", 0}, \1677{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.Bus), "Bus", 0}, \1678{ACPI_DMT_UINT16, ACPI_HEST6_OFFSET (Aer.Device), "Device", 0}, \1679{ACPI_DMT_UINT16, ACPI_HEST6_OFFSET (Aer.Function), "Function", 0}, \1680{ACPI_DMT_UINT16, ACPI_HEST6_OFFSET (Aer.DeviceControl), "DeviceControl", 0}, \1681{ACPI_DMT_UINT16, ACPI_HEST6_OFFSET (Aer.Reserved2), "Reserved", 0}, \1682{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.UncorrectableMask), "Uncorrectable Mask", 0}, \1683{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.UncorrectableSeverity), "Uncorrectable Severity", 0}, \1684{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.CorrectableMask), "Correctable Mask", 0}, \1685{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (Aer.AdvancedCapabilities), "Advanced Capabilities", 0}168616871688/* HEST Subtables */16891690/* 0: IA32 Machine Check Exception */16911692ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[] =1693{1694ACPI_DM_HEST_HEADER,1695{ACPI_DMT_UINT16, ACPI_HEST0_OFFSET (Reserved1), "Reserved1", 0},1696{ACPI_DMT_UINT8, ACPI_HEST0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},1697{ACPI_DMT_FLAG0, ACPI_HEST0_FLAG_OFFSET (Flags,0), "Firmware First", 0},1698{ACPI_DMT_FLAG2, ACPI_HEST0_FLAG_OFFSET (Flags,0), "GHES Assist", 0},16991700{ACPI_DMT_UINT8, ACPI_HEST0_OFFSET (Enabled), "Enabled", 0},1701{ACPI_DMT_UINT32, ACPI_HEST0_OFFSET (RecordsToPreallocate), "Records To Preallocate", 0},1702{ACPI_DMT_UINT32, ACPI_HEST0_OFFSET (MaxSectionsPerRecord), "Max Sections Per Record", 0},1703{ACPI_DMT_UINT64, ACPI_HEST0_OFFSET (GlobalCapabilityData), "Global Capability Data", 0},1704{ACPI_DMT_UINT64, ACPI_HEST0_OFFSET (GlobalControlData), "Global Control Data", 0},1705{ACPI_DMT_UINT8, ACPI_HEST0_OFFSET (NumHardwareBanks), "Num Hardware Banks", 0},1706{ACPI_DMT_UINT56, ACPI_HEST0_OFFSET (Reserved3[0]), "Reserved2", 0},1707ACPI_DMT_TERMINATOR1708};17091710/* 1: IA32 Corrected Machine Check */17111712ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[] =1713{1714ACPI_DM_HEST_HEADER,1715{ACPI_DMT_UINT16, ACPI_HEST1_OFFSET (Reserved1), "Reserved1", 0},1716{ACPI_DMT_UINT8, ACPI_HEST1_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},1717{ACPI_DMT_FLAG0, ACPI_HEST1_FLAG_OFFSET (Flags,0), "Firmware First", 0},1718{ACPI_DMT_FLAG2, ACPI_HEST1_FLAG_OFFSET (Flags,0), "GHES Assist", 0},17191720{ACPI_DMT_UINT8, ACPI_HEST1_OFFSET (Enabled), "Enabled", 0},1721{ACPI_DMT_UINT32, ACPI_HEST1_OFFSET (RecordsToPreallocate), "Records To Preallocate", 0},1722{ACPI_DMT_UINT32, ACPI_HEST1_OFFSET (MaxSectionsPerRecord), "Max Sections Per Record", 0},1723{ACPI_DMT_HESTNTFY, ACPI_HEST1_OFFSET (Notify), "Notify", 0},1724{ACPI_DMT_UINT8, ACPI_HEST1_OFFSET (NumHardwareBanks), "Num Hardware Banks", 0},1725{ACPI_DMT_UINT24, ACPI_HEST1_OFFSET (Reserved2[0]), "Reserved2", 0},1726ACPI_DMT_TERMINATOR1727};17281729/* 2: IA32 Non-Maskable Interrupt */17301731ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[] =1732{1733ACPI_DM_HEST_HEADER,1734{ACPI_DMT_UINT32, ACPI_HEST2_OFFSET (Reserved), "Reserved", 0},1735{ACPI_DMT_UINT32, ACPI_HEST2_OFFSET (RecordsToPreallocate), "Records To Preallocate", 0},1736{ACPI_DMT_UINT32, ACPI_HEST2_OFFSET (MaxSectionsPerRecord), "Max Sections Per Record", 0},1737{ACPI_DMT_UINT32, ACPI_HEST2_OFFSET (MaxRawDataLength), "Max Raw Data Length", 0},1738ACPI_DMT_TERMINATOR1739};17401741/* 6: PCI Express Root Port AER */17421743ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[] =1744{1745ACPI_DM_HEST_HEADER,1746ACPI_DM_HEST_AER,1747{ACPI_DMT_UINT32, ACPI_HEST6_OFFSET (RootErrorCommand), "Root Error Command", 0},1748ACPI_DMT_TERMINATOR1749};17501751/* 7: PCI Express AER (AER Endpoint) */17521753ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[] =1754{1755ACPI_DM_HEST_HEADER,1756ACPI_DM_HEST_AER,1757ACPI_DMT_TERMINATOR1758};17591760/* 8: PCI Express/PCI-X Bridge AER */17611762ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[] =1763{1764ACPI_DM_HEST_HEADER,1765ACPI_DM_HEST_AER,1766{ACPI_DMT_UINT32, ACPI_HEST8_OFFSET (UncorrectableMask2), "2nd Uncorrectable Mask", 0},1767{ACPI_DMT_UINT32, ACPI_HEST8_OFFSET (UncorrectableSeverity2), "2nd Uncorrectable Severity", 0},1768{ACPI_DMT_UINT32, ACPI_HEST8_OFFSET (AdvancedCapabilities2), "2nd Advanced Capabilities", 0},1769ACPI_DMT_TERMINATOR1770};17711772/* 9: Generic Hardware Error Source */17731774ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[] =1775{1776ACPI_DM_HEST_HEADER,1777{ACPI_DMT_UINT16, ACPI_HEST9_OFFSET (RelatedSourceId), "Related Source Id", 0},1778{ACPI_DMT_UINT8, ACPI_HEST9_OFFSET (Reserved), "Reserved", 0},1779{ACPI_DMT_UINT8, ACPI_HEST9_OFFSET (Enabled), "Enabled", 0},1780{ACPI_DMT_UINT32, ACPI_HEST9_OFFSET (RecordsToPreallocate), "Records To Preallocate", 0},1781{ACPI_DMT_UINT32, ACPI_HEST9_OFFSET (MaxSectionsPerRecord), "Max Sections Per Record", 0},1782{ACPI_DMT_UINT32, ACPI_HEST9_OFFSET (MaxRawDataLength), "Max Raw Data Length", 0},1783{ACPI_DMT_GAS, ACPI_HEST9_OFFSET (ErrorStatusAddress), "Error Status Address", 0},1784{ACPI_DMT_HESTNTFY, ACPI_HEST9_OFFSET (Notify), "Notify", 0},1785{ACPI_DMT_UINT32, ACPI_HEST9_OFFSET (ErrorBlockLength), "Error Status Block Length", 0},1786ACPI_DMT_TERMINATOR1787};17881789/* 10: Generic Hardware Error Source - Version 2 */17901791ACPI_DMTABLE_INFO AcpiDmTableInfoHest10[] =1792{1793ACPI_DM_HEST_HEADER,1794{ACPI_DMT_UINT16, ACPI_HEST10_OFFSET (RelatedSourceId), "Related Source Id", 0},1795{ACPI_DMT_UINT8, ACPI_HEST10_OFFSET (Reserved), "Reserved", 0},1796{ACPI_DMT_UINT8, ACPI_HEST10_OFFSET (Enabled), "Enabled", 0},1797{ACPI_DMT_UINT32, ACPI_HEST10_OFFSET (RecordsToPreallocate), "Records To Preallocate", 0},1798{ACPI_DMT_UINT32, ACPI_HEST10_OFFSET (MaxSectionsPerRecord), "Max Sections Per Record", 0},1799{ACPI_DMT_UINT32, ACPI_HEST10_OFFSET (MaxRawDataLength), "Max Raw Data Length", 0},1800{ACPI_DMT_GAS, ACPI_HEST10_OFFSET (ErrorStatusAddress), "Error Status Address", 0},1801{ACPI_DMT_HESTNTFY, ACPI_HEST10_OFFSET (Notify), "Notify", 0},1802{ACPI_DMT_UINT32, ACPI_HEST10_OFFSET (ErrorBlockLength), "Error Status Block Length", 0},1803{ACPI_DMT_GAS, ACPI_HEST10_OFFSET (ReadAckRegister), "Read Ack Register", 0},1804{ACPI_DMT_UINT64, ACPI_HEST10_OFFSET (ReadAckPreserve), "Read Ack Preserve", 0},1805{ACPI_DMT_UINT64, ACPI_HEST10_OFFSET (ReadAckWrite), "Read Ack Write", 0},1806ACPI_DMT_TERMINATOR1807};18081809/* 11: IA32 Deferred Machine Check */18101811ACPI_DMTABLE_INFO AcpiDmTableInfoHest11[] =1812{1813ACPI_DM_HEST_HEADER,1814{ACPI_DMT_UINT16, ACPI_HEST11_OFFSET (Reserved1), "Reserved1", 0},1815{ACPI_DMT_UINT8, ACPI_HEST11_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},1816{ACPI_DMT_FLAG0, ACPI_HEST11_FLAG_OFFSET (Flags,0), "Firmware First", 0},1817{ACPI_DMT_FLAG2, ACPI_HEST11_FLAG_OFFSET (Flags,0), "GHES Assist", 0},18181819{ACPI_DMT_UINT8, ACPI_HEST11_OFFSET (Enabled), "Enabled", 0},1820{ACPI_DMT_UINT32, ACPI_HEST11_OFFSET (RecordsToPreallocate), "Records To Preallocate", 0},1821{ACPI_DMT_UINT32, ACPI_HEST11_OFFSET (MaxSectionsPerRecord), "Max Sections Per Record", 0},1822{ACPI_DMT_HESTNTFY, ACPI_HEST11_OFFSET (Notify), "Notify", 0},1823{ACPI_DMT_UINT8, ACPI_HEST11_OFFSET (NumHardwareBanks), "Num Hardware Banks", 0},1824{ACPI_DMT_UINT24, ACPI_HEST11_OFFSET (Reserved2[0]), "Reserved2", 0},1825ACPI_DMT_TERMINATOR1826};18271828/* Notification Structure */18291830ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[] =1831{1832{ACPI_DMT_HESTNTYP, ACPI_HESTN_OFFSET (Type), "Notify Type", 0},1833{ACPI_DMT_UINT8, ACPI_HESTN_OFFSET (Length), "Notify Length", DT_LENGTH},1834{ACPI_DMT_UINT16, ACPI_HESTN_OFFSET (ConfigWriteEnable), "Configuration Write Enable", 0},1835{ACPI_DMT_UINT32, ACPI_HESTN_OFFSET (PollInterval), "PollInterval", 0},1836{ACPI_DMT_UINT32, ACPI_HESTN_OFFSET (Vector), "Vector", 0},1837{ACPI_DMT_UINT32, ACPI_HESTN_OFFSET (PollingThresholdValue), "Polling Threshold Value", 0},1838{ACPI_DMT_UINT32, ACPI_HESTN_OFFSET (PollingThresholdWindow), "Polling Threshold Window", 0},1839{ACPI_DMT_UINT32, ACPI_HESTN_OFFSET (ErrorThresholdValue), "Error Threshold Value", 0},1840{ACPI_DMT_UINT32, ACPI_HESTN_OFFSET (ErrorThresholdWindow), "Error Threshold Window", 0},1841ACPI_DMT_TERMINATOR1842};184318441845/*1846* IA32 Error Bank(s) - Follows the ACPI_HEST_IA_MACHINE_CHECK and1847* ACPI_HEST_IA_CORRECTED structures.1848*/1849ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[] =1850{1851{ACPI_DMT_UINT8, ACPI_HESTB_OFFSET (BankNumber), "Bank Number", 0},1852{ACPI_DMT_UINT8, ACPI_HESTB_OFFSET (ClearStatusOnInit), "Clear Status On Init", 0},1853{ACPI_DMT_UINT8, ACPI_HESTB_OFFSET (StatusFormat), "Status Format", 0},1854{ACPI_DMT_UINT8, ACPI_HESTB_OFFSET (Reserved), "Reserved", 0},1855{ACPI_DMT_UINT32, ACPI_HESTB_OFFSET (ControlRegister), "Control Register", 0},1856{ACPI_DMT_UINT64, ACPI_HESTB_OFFSET (ControlData), "Control Data", 0},1857{ACPI_DMT_UINT32, ACPI_HESTB_OFFSET (StatusRegister), "Status Register", 0},1858{ACPI_DMT_UINT32, ACPI_HESTB_OFFSET (AddressRegister), "Address Register", 0},1859{ACPI_DMT_UINT32, ACPI_HESTB_OFFSET (MiscRegister), "Misc Register", 0},1860ACPI_DMT_TERMINATOR1861};186218631864/*******************************************************************************1865*1866* HMAT - Heterogeneous Memory Attributes Table1867*1868******************************************************************************/18691870ACPI_DMTABLE_INFO AcpiDmTableInfoHmat[] =1871{1872{ACPI_DMT_UINT32, ACPI_HMAT_OFFSET (Reserved), "Reserved", 0},1873ACPI_DMT_TERMINATOR1874};18751876/* Common HMAT structure header (one per Subtable) */18771878ACPI_DMTABLE_INFO AcpiDmTableInfoHmatHdr[] =1879{1880{ACPI_DMT_HMAT, ACPI_HMATH_OFFSET (Type), "Structure Type", 0},1881{ACPI_DMT_UINT16, ACPI_HMATH_OFFSET (Reserved), "Reserved", 0},1882{ACPI_DMT_UINT32, ACPI_HMATH_OFFSET (Length), "Length", 0},1883ACPI_DMT_TERMINATOR1884};18851886/* HMAT subtables */18871888/* 0x00: Memory proximity domain attributes */18891890ACPI_DMTABLE_INFO AcpiDmTableInfoHmat0[] =1891{1892{ACPI_DMT_UINT16, ACPI_HMAT0_OFFSET (Flags), "Flags (decoded below)", 0},1893{ACPI_DMT_FLAG0, ACPI_HMAT0_FLAG_OFFSET (Flags,0), "Processor Proximity Domain Valid", 0},1894{ACPI_DMT_UINT16, ACPI_HMAT0_OFFSET (Reserved1), "Reserved1", 0},1895{ACPI_DMT_UINT32, ACPI_HMAT0_OFFSET (InitiatorPD), "Attached Initiator Proximity Domain", 0},1896{ACPI_DMT_UINT32, ACPI_HMAT0_OFFSET (MemoryPD), "Memory Proximity Domain", 0},1897{ACPI_DMT_UINT32, ACPI_HMAT0_OFFSET (Reserved2), "Reserved2", 0},1898{ACPI_DMT_UINT64, ACPI_HMAT0_OFFSET (Reserved3), "Reserved3", 0},1899{ACPI_DMT_UINT64, ACPI_HMAT0_OFFSET (Reserved4), "Reserved4", 0},1900ACPI_DMT_TERMINATOR1901};19021903/* 0x01: System Locality Latency and Bandwidth Information */19041905ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1[] =1906{1907{ACPI_DMT_UINT8, ACPI_HMAT1_OFFSET (Flags), "Flags (decoded below)", 0},1908{ACPI_DMT_FLAGS4_0, ACPI_HMAT1_FLAG_OFFSET (Flags,0), "Memory Hierarchy", 0}, /* First 4 bits */1909{ACPI_DMT_FLAG4, ACPI_HMAT1_FLAG_OFFSET (Flags,0), "Use Minimum Transfer Size", 0},1910{ACPI_DMT_FLAG5, ACPI_HMAT1_FLAG_OFFSET (Flags,0), "Non-sequential Transfers", 0},1911{ACPI_DMT_UINT8, ACPI_HMAT1_OFFSET (DataType), "Data Type", 0},1912{ACPI_DMT_UINT8, ACPI_HMAT1_OFFSET (MinTransferSize), "Minimum Transfer Size", 0},1913{ACPI_DMT_UINT8, ACPI_HMAT1_OFFSET (Reserved1), "Reserved1", 0},1914{ACPI_DMT_UINT32, ACPI_HMAT1_OFFSET (NumberOfInitiatorPDs), "Initiator Proximity Domains #", 0},1915{ACPI_DMT_UINT32, ACPI_HMAT1_OFFSET (NumberOfTargetPDs), "Target Proximity Domains #", 0},1916{ACPI_DMT_UINT32, ACPI_HMAT1_OFFSET (Reserved2), "Reserved2", 0},1917{ACPI_DMT_UINT64, ACPI_HMAT1_OFFSET (EntryBaseUnit), "Entry Base Unit", 0},1918ACPI_DMT_TERMINATOR1919};19201921ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1a[] =1922{1923{ACPI_DMT_UINT32, 0, "Initiator Proximity Domain List", DT_OPTIONAL},1924ACPI_DMT_TERMINATOR1925};19261927ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1b[] =1928{1929{ACPI_DMT_UINT32, 0, "Target Proximity Domain List", DT_OPTIONAL},1930ACPI_DMT_TERMINATOR1931};19321933ACPI_DMTABLE_INFO AcpiDmTableInfoHmat1c[] =1934{1935{ACPI_DMT_UINT16, 0, "Entry", DT_OPTIONAL},1936ACPI_DMT_TERMINATOR1937};19381939/* 0x02: Memory Side Cache Information */19401941ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2[] =1942{1943{ACPI_DMT_UINT32, ACPI_HMAT2_OFFSET (MemoryPD), "Memory Proximity Domain", 0},1944{ACPI_DMT_UINT32, ACPI_HMAT2_OFFSET (Reserved1), "Reserved1", 0},1945{ACPI_DMT_UINT64, ACPI_HMAT2_OFFSET (CacheSize), "Memory Side Cache Size", 0},1946{ACPI_DMT_UINT32, ACPI_HMAT2_OFFSET (CacheAttributes), "Cache Attributes (decoded below)", 0},1947{ACPI_DMT_FLAGS4_0, ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Total Cache Levels", 0},1948{ACPI_DMT_FLAGS4_4, ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Level", 0},1949{ACPI_DMT_FLAGS4_8, ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Associativity", 0},1950{ACPI_DMT_FLAGS4_12, ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Write Policy", 0},1951{ACPI_DMT_FLAGS16_16, ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Line Size", 0},1952{ACPI_DMT_UINT16, ACPI_HMAT2_OFFSET (AddressMode), "Address Mode", 0},1953{ACPI_DMT_UINT16, ACPI_HMAT2_OFFSET (NumberOfSMBIOSHandles), "SMBIOS Handle #", 0},1954ACPI_DMT_TERMINATOR1955};19561957ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2a[] =1958{1959{ACPI_DMT_UINT16, 0, "SMBIOS Handle", DT_OPTIONAL},1960ACPI_DMT_TERMINATOR1961};196219631964/*******************************************************************************1965*1966* HPET - High Precision Event Timer table1967*1968******************************************************************************/19691970ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[] =1971{1972{ACPI_DMT_UINT32, ACPI_HPET_OFFSET (Id), "Hardware Block ID", 0},1973{ACPI_DMT_GAS, ACPI_HPET_OFFSET (Address), "Timer Block Register", 0},1974{ACPI_DMT_UINT8, ACPI_HPET_OFFSET (Sequence), "Sequence Number", 0},1975{ACPI_DMT_UINT16, ACPI_HPET_OFFSET (MinimumTick), "Minimum Clock Ticks", 0},1976{ACPI_DMT_UINT8, ACPI_HPET_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},1977{ACPI_DMT_FLAG0, ACPI_HPET_FLAG_OFFSET (Flags,0), "4K Page Protect", 0},1978{ACPI_DMT_FLAG1, ACPI_HPET_FLAG_OFFSET (Flags,0), "64K Page Protect", 0},1979ACPI_DMT_TERMINATOR1980};1981/*! [End] no source code translation !*/198219831984