1062782b3Schristos /****************************************************************************** 2062782b3Schristos * 3062782b3Schristos * Module Name: dmtbinfo2 - Table info for non-AML tables 4062782b3Schristos * 5062782b3Schristos *****************************************************************************/ 6062782b3Schristos 7062782b3Schristos /* 8046a2985Schristos * Copyright (C) 2000 - 2023, Intel Corp. 9062782b3Schristos * All rights reserved. 10062782b3Schristos * 11062782b3Schristos * Redistribution and use in source and binary forms, with or without 12062782b3Schristos * modification, are permitted provided that the following conditions 13062782b3Schristos * are met: 14062782b3Schristos * 1. Redistributions of source code must retain the above copyright 15062782b3Schristos * notice, this list of conditions, and the following disclaimer, 16062782b3Schristos * without modification. 17062782b3Schristos * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18062782b3Schristos * substantially similar to the "NO WARRANTY" disclaimer below 19062782b3Schristos * ("Disclaimer") and any redistribution must be conditioned upon 20062782b3Schristos * including a substantially similar Disclaimer requirement for further 21062782b3Schristos * binary redistribution. 22062782b3Schristos * 3. Neither the names of the above-listed copyright holders nor the names 23062782b3Schristos * of any contributors may be used to endorse or promote products derived 24062782b3Schristos * from this software without specific prior written permission. 25062782b3Schristos * 26062782b3Schristos * Alternatively, this software may be distributed under the terms of the 27062782b3Schristos * GNU General Public License ("GPL") version 2 as published by the Free 28062782b3Schristos * Software Foundation. 29062782b3Schristos * 30062782b3Schristos * NO WARRANTY 31062782b3Schristos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32062782b3Schristos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3346a330b4Schristos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 34062782b3Schristos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35062782b3Schristos * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36062782b3Schristos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37062782b3Schristos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38062782b3Schristos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39062782b3Schristos * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40062782b3Schristos * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41062782b3Schristos * POSSIBILITY OF SUCH DAMAGES. 42062782b3Schristos */ 43062782b3Schristos 44062782b3Schristos #include "acpi.h" 45062782b3Schristos #include "accommon.h" 46062782b3Schristos #include "acdisasm.h" 47062782b3Schristos #include "actbinfo.h" 48062782b3Schristos 49062782b3Schristos /* This module used for application-level code only */ 50062782b3Schristos 51062782b3Schristos #define _COMPONENT ACPI_CA_DISASSEMBLER 52062782b3Schristos ACPI_MODULE_NAME ("dmtbinfo2") 53062782b3Schristos 54062782b3Schristos /* 55062782b3Schristos * How to add a new table: 56062782b3Schristos * 57062782b3Schristos * - Add the C table definition to the actbl1.h or actbl2.h header. 58062782b3Schristos * - Add ACPI_xxxx_OFFSET macro(s) for the table (and subtables) to list below. 59062782b3Schristos * - Define the table in this file (for the disassembler). If any 60062782b3Schristos * new data types are required (ACPI_DMT_*), see below. 61062782b3Schristos * - Add an external declaration for the new table definition (AcpiDmTableInfo*) 62062782b3Schristos * in acdisam.h 63062782b3Schristos * - Add new table definition to the dispatch table in dmtable.c (AcpiDmTableData) 64062782b3Schristos * If a simple table (with no subtables), no disassembly code is needed. 65062782b3Schristos * Otherwise, create the AcpiDmDump* function for to disassemble the table 66062782b3Schristos * and add it to the dmtbdump.c file. 67062782b3Schristos * - Add an external declaration for the new AcpiDmDump* function in acdisasm.h 68062782b3Schristos * - Add the new AcpiDmDump* function to the dispatch table in dmtable.c 69062782b3Schristos * - Create a template for the new table 70062782b3Schristos * - Add data table compiler support 71062782b3Schristos * 72062782b3Schristos * How to add a new data type (ACPI_DMT_*): 73062782b3Schristos * 74062782b3Schristos * - Add new type at the end of the ACPI_DMT list in acdisasm.h 75062782b3Schristos * - Add length and implementation cases in dmtable.c (disassembler) 76062782b3Schristos * - Add type and length cases in dtutils.c (DT compiler) 77062782b3Schristos */ 78062782b3Schristos 79062782b3Schristos /* 80062782b3Schristos * Remaining tables are not consumed directly by the ACPICA subsystem 81062782b3Schristos */ 82062782b3Schristos 838a8be6c4Schristos /******************************************************************************* 848a8be6c4Schristos * 858a8be6c4Schristos * AGDI - Arm Generic Diagnostic Dump and Reset Device Interface 868a8be6c4Schristos * 878a8be6c4Schristos * Conforms to "ACPI for Arm Components 1.1, Platform Design Document" 888a8be6c4Schristos * ARM DEN0093 v1.1 898a8be6c4Schristos * 908a8be6c4Schristos ******************************************************************************/ 918a8be6c4Schristos 928a8be6c4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[] = 938a8be6c4Schristos { 948a8be6c4Schristos {ACPI_DMT_UINT8, ACPI_AGDI_OFFSET (Flags), "Flags (decoded below)", 0}, 958a8be6c4Schristos {ACPI_DMT_FLAG0, ACPI_AGDI_FLAG_OFFSET (Flags, 0), "Signalling mode", 0}, 968a8be6c4Schristos {ACPI_DMT_UINT24, ACPI_AGDI_OFFSET (Reserved[0]), "Reserved", 0}, 978a8be6c4Schristos {ACPI_DMT_UINT32, ACPI_AGDI_OFFSET (SdeiEvent), "SdeiEvent", 0}, 988a8be6c4Schristos {ACPI_DMT_UINT32, ACPI_AGDI_OFFSET (Gsiv), "Gsiv", 0}, 998a8be6c4Schristos ACPI_DMT_TERMINATOR 1008a8be6c4Schristos }; 1018a8be6c4Schristos 102062782b3Schristos 103062782b3Schristos /******************************************************************************* 104062782b3Schristos * 1055b139df6Schristos * APMT - ARM Performance Monitoring Unit Table 1065b139df6Schristos * 1075b139df6Schristos * Conforms to: 1085b139df6Schristos * ARM Performance Monitoring Unit Architecture 1.0 Platform Design Document 1095b139df6Schristos * ARM DEN0117 v1.0 November 25, 2021 1105b139df6Schristos * 1115b139df6Schristos ******************************************************************************/ 1125b139df6Schristos 1135b139df6Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[] = 1145b139df6Schristos { 1155b139df6Schristos {ACPI_DMT_UINT16, ACPI_APMTN_OFFSET (Length), "Length of APMT Node", 0}, 1165b139df6Schristos {ACPI_DMT_UINT8, ACPI_APMTN_OFFSET (Flags), "Node Flags", 0}, 1175b139df6Schristos {ACPI_DMT_FLAG0, ACPI_APMTN_FLAG_OFFSET (Flags, 0), "Dual Page Extension", 0}, 1185b139df6Schristos {ACPI_DMT_FLAG1, ACPI_APMTN_FLAG_OFFSET (Flags, 0), "Processor Affinity Type", 0}, 1195b139df6Schristos {ACPI_DMT_FLAG2, ACPI_APMTN_FLAG_OFFSET (Flags, 0), "64-bit Atomic Support", 0}, 1205b139df6Schristos {ACPI_DMT_UINT8, ACPI_APMTN_OFFSET (Type), "Node Type", 0}, 1215b139df6Schristos {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (Id), "Unique Node Identifier", 0}, 1225b139df6Schristos {ACPI_DMT_UINT64, ACPI_APMTN_OFFSET (InstPrimary), "Primary Node Instance", 0}, 1235b139df6Schristos {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (InstSecondary), "Secondary Node Instance", 0}, 1245b139df6Schristos {ACPI_DMT_UINT64, ACPI_APMTN_OFFSET (BaseAddress0), "Page 0 Base Address", 0}, 1255b139df6Schristos {ACPI_DMT_UINT64, ACPI_APMTN_OFFSET (BaseAddress1), "Page 1 Base Address", 0}, 1265b139df6Schristos {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (OvflwIrq), "Overflow Interrupt ID", 0}, 1275b139df6Schristos {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (Reserved), "Reserved", 0}, 1285b139df6Schristos {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (OvflwIrqFlags), "Overflow Interrupt Flags", 0}, 1295b139df6Schristos {ACPI_DMT_FLAG0, ACPI_APMTN_FLAG_OFFSET (OvflwIrqFlags, 0), "Interrupt Mode", 0}, 1305b139df6Schristos {ACPI_DMT_FLAG1, ACPI_APMTN_FLAG_OFFSET (OvflwIrqFlags, 0), "Interrupt Type", 0}, 1315b139df6Schristos {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (ProcAffinity), "Processor Affinity", 0}, 1325b139df6Schristos {ACPI_DMT_UINT32, ACPI_APMTN_OFFSET (ImplId), "Implementation ID", 0}, 1335b139df6Schristos ACPI_DMT_TERMINATOR 1345b139df6Schristos }; 1355b139df6Schristos 1365b139df6Schristos 1375b139df6Schristos /******************************************************************************* 1385b139df6Schristos * 139062782b3Schristos * IORT - IO Remapping Table 140062782b3Schristos * 141062782b3Schristos ******************************************************************************/ 142062782b3Schristos 143062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort[] = 144062782b3Schristos { 145062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT_OFFSET (NodeCount), "Node Count", 0}, 146062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT_OFFSET (NodeOffset), "Node Offset", 0}, 147062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT_OFFSET (Reserved), "Reserved", 0}, 148062782b3Schristos ACPI_DMT_TERMINATOR 149062782b3Schristos }; 150062782b3Schristos 151062782b3Schristos /* Optional padding field */ 152062782b3Schristos 153062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[] = 154062782b3Schristos { 155062782b3Schristos {ACPI_DMT_RAW_BUFFER, 0, "Optional Padding", DT_OPTIONAL}, 156062782b3Schristos ACPI_DMT_TERMINATOR 157062782b3Schristos }; 158062782b3Schristos 159062782b3Schristos /* Common Subtable header (one per Subtable) */ 160062782b3Schristos 161062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[] = 162062782b3Schristos { 163062782b3Schristos {ACPI_DMT_UINT8, ACPI_IORTH_OFFSET (Type), "Type", 0}, 164062782b3Schristos {ACPI_DMT_UINT16, ACPI_IORTH_OFFSET (Length), "Length", DT_LENGTH}, 165062782b3Schristos {ACPI_DMT_UINT8, ACPI_IORTH_OFFSET (Revision), "Revision", 0}, 16646a330b4Schristos {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (Identifier), "Reserved", 0}, 16746a330b4Schristos {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (MappingCount), "Mapping Count", 0}, 16846a330b4Schristos {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (MappingOffset), "Mapping Offset", 0}, 16946a330b4Schristos ACPI_DMT_TERMINATOR 17046a330b4Schristos }; 17146a330b4Schristos 17246a330b4Schristos /* Common Subtable header (one per Subtable)- Revision 3 */ 17346a330b4Schristos 17446a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr3[] = 17546a330b4Schristos { 17646a330b4Schristos {ACPI_DMT_UINT8, ACPI_IORTH_OFFSET (Type), "Type", 0}, 17746a330b4Schristos {ACPI_DMT_UINT16, ACPI_IORTH_OFFSET (Length), "Length", DT_LENGTH}, 17846a330b4Schristos {ACPI_DMT_UINT8, ACPI_IORTH_OFFSET (Revision), "Revision", 0}, 17946a330b4Schristos {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (Identifier), "Identifier", 0}, 180062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (MappingCount), "Mapping Count", 0}, 181062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORTH_OFFSET (MappingOffset), "Mapping Offset", 0}, 182062782b3Schristos ACPI_DMT_TERMINATOR 183062782b3Schristos }; 184062782b3Schristos 185062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[] = 186062782b3Schristos { 187062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORTM_OFFSET (InputBase), "Input base", DT_OPTIONAL}, 188062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORTM_OFFSET (IdCount), "ID Count", 0}, 189062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORTM_OFFSET (OutputBase), "Output Base", 0}, 190062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORTM_OFFSET (OutputReference), "Output Reference", 0}, 191062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORTM_OFFSET (Flags), "Flags (decoded below)", 0}, 192062782b3Schristos {ACPI_DMT_FLAG0, ACPI_IORTM_FLAG_OFFSET (Flags, 0), "Single Mapping", 0}, 193062782b3Schristos ACPI_DMT_TERMINATOR 194062782b3Schristos }; 195062782b3Schristos 196062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[] = 197062782b3Schristos { 198062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORTA_OFFSET (CacheCoherency), "Cache Coherency", 0}, 199062782b3Schristos {ACPI_DMT_UINT8, ACPI_IORTA_OFFSET (Hints), "Hints (decoded below)", 0}, 200062782b3Schristos {ACPI_DMT_FLAG0, ACPI_IORTA_FLAG_OFFSET (Hints, 0), "Transient", 0}, 201062782b3Schristos {ACPI_DMT_FLAG1, ACPI_IORTA_FLAG_OFFSET (Hints, 0), "Write Allocate", 0}, 202062782b3Schristos {ACPI_DMT_FLAG2, ACPI_IORTA_FLAG_OFFSET (Hints, 0), "Read Allocate", 0}, 203062782b3Schristos {ACPI_DMT_FLAG3, ACPI_IORTA_FLAG_OFFSET (Hints, 0), "Override", 0}, 204062782b3Schristos {ACPI_DMT_UINT16, ACPI_IORTA_OFFSET (Reserved), "Reserved", 0}, 205062782b3Schristos {ACPI_DMT_UINT8, ACPI_IORTA_OFFSET (MemoryFlags), "Memory Flags (decoded below)", 0}, 206062782b3Schristos {ACPI_DMT_FLAG0, ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0), "Coherency", 0}, 207062782b3Schristos {ACPI_DMT_FLAG1, ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0), "Device Attribute", 0}, 208*c7960b37Schristos {ACPI_DMT_FLAG2, ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0), "Ensured Coherency of Accesses", 0}, 209062782b3Schristos ACPI_DMT_TERMINATOR 210062782b3Schristos }; 211062782b3Schristos 212062782b3Schristos /* IORT subtables */ 213062782b3Schristos 214062782b3Schristos /* 0x00: ITS Group */ 215062782b3Schristos 216062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort0[] = 217062782b3Schristos { 218062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT0_OFFSET (ItsCount), "ItsCount", 0}, 219062782b3Schristos ACPI_DMT_TERMINATOR 220062782b3Schristos }; 221062782b3Schristos 222062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort0a[] = 223062782b3Schristos { 224062782b3Schristos {ACPI_DMT_UINT32, 0, "Identifiers", DT_OPTIONAL}, 225062782b3Schristos ACPI_DMT_TERMINATOR 226062782b3Schristos }; 227062782b3Schristos 228062782b3Schristos /* 0x01: Named Component */ 229062782b3Schristos 230062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort1[] = 231062782b3Schristos { 232062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT1_OFFSET (NodeFlags), "Node Flags", 0}, 233062782b3Schristos {ACPI_DMT_IORTMEM, ACPI_IORT1_OFFSET (MemoryProperties), "Memory Properties", 0}, 234062782b3Schristos {ACPI_DMT_UINT8, ACPI_IORT1_OFFSET (MemoryAddressLimit), "Memory Size Limit", 0}, 235062782b3Schristos {ACPI_DMT_STRING, ACPI_IORT1_OFFSET (DeviceName[0]), "Device Name", 0}, 236062782b3Schristos ACPI_DMT_TERMINATOR 237062782b3Schristos }; 238062782b3Schristos 239062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort1a[] = 240062782b3Schristos { 241062782b3Schristos {ACPI_DMT_RAW_BUFFER, 0, "Padding", DT_OPTIONAL}, 242062782b3Schristos ACPI_DMT_TERMINATOR 243062782b3Schristos }; 244062782b3Schristos 245062782b3Schristos /* 0x02: PCI Root Complex */ 246062782b3Schristos 247062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort2[] = 248062782b3Schristos { 249062782b3Schristos {ACPI_DMT_IORTMEM, ACPI_IORT2_OFFSET (MemoryProperties), "Memory Properties", 0}, 250062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT2_OFFSET (AtsAttribute), "ATS Attribute", 0}, 251062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT2_OFFSET (PciSegmentNumber), "PCI Segment Number", 0}, 25247315524Schristos {ACPI_DMT_UINT8, ACPI_IORT2_OFFSET (MemoryAddressLimit), "Memory Size Limit", 0}, 2535b139df6Schristos {ACPI_DMT_UINT16, ACPI_IORT2_OFFSET (PasidCapabilities), "PASID Capabilities", 0}, 2545b139df6Schristos {ACPI_DMT_UINT8, ACPI_IORT2_OFFSET (Reserved[0]), "Reserved", 0}, 255062782b3Schristos ACPI_DMT_TERMINATOR 256062782b3Schristos }; 257062782b3Schristos 258062782b3Schristos /* 0x03: SMMUv1/2 */ 259062782b3Schristos 260062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort3[] = 261062782b3Schristos { 262062782b3Schristos {ACPI_DMT_UINT64, ACPI_IORT3_OFFSET (BaseAddress), "Base Address", 0}, 263062782b3Schristos {ACPI_DMT_UINT64, ACPI_IORT3_OFFSET (Span), "Span", 0}, 264062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3_OFFSET (Model), "Model", 0}, 265062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3_OFFSET (Flags), "Flags (decoded below)", 0}, 266062782b3Schristos {ACPI_DMT_FLAG0, ACPI_IORT3_FLAG_OFFSET (Flags, 0), "DVM Supported", 0}, 267062782b3Schristos {ACPI_DMT_FLAG1, ACPI_IORT3_FLAG_OFFSET (Flags, 0), "Coherent Walk", 0}, 268062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3_OFFSET (GlobalInterruptOffset), "Global Interrupt Offset", 0}, 269062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3_OFFSET (ContextInterruptCount), "Context Interrupt Count", 0}, 270062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3_OFFSET (ContextInterruptOffset), "Context Interrupt Offset", 0}, 271062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3_OFFSET (PmuInterruptCount), "PMU Interrupt Count", 0}, 272062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3_OFFSET (PmuInterruptOffset), "PMU Interrupt Offset", 0}, 273062782b3Schristos ACPI_DMT_TERMINATOR 274062782b3Schristos }; 275062782b3Schristos 276062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort3a[] = 277062782b3Schristos { 278062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3A_OFFSET (NSgIrpt), "NSgIrpt", 0}, 279062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3A_OFFSET (NSgIrptFlags), "NSgIrpt Flags (decoded below)", 0}, 280062782b3Schristos {ACPI_DMT_FLAG0, ACPI_IORT3a_FLAG_OFFSET (NSgIrptFlags, 0), "Edge Triggered", 0}, 281062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3A_OFFSET (NSgCfgIrpt), "NSgCfgIrpt", 0}, 282062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT3A_OFFSET (NSgCfgIrptFlags), "NSgCfgIrpt Flags (decoded below)", 0}, 283062782b3Schristos {ACPI_DMT_FLAG0, ACPI_IORT3a_FLAG_OFFSET (NSgCfgIrptFlags, 0), "Edge Triggered", 0}, 284062782b3Schristos ACPI_DMT_TERMINATOR 285062782b3Schristos }; 286062782b3Schristos 287062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort3b[] = 288062782b3Schristos { 289062782b3Schristos {ACPI_DMT_UINT64, 0, "Context Interrupt", DT_OPTIONAL}, 290062782b3Schristos ACPI_DMT_TERMINATOR 291062782b3Schristos }; 292062782b3Schristos 293062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort3c[] = 294062782b3Schristos { 295062782b3Schristos {ACPI_DMT_UINT64, 0, "PMU Interrupt", DT_OPTIONAL}, 296062782b3Schristos ACPI_DMT_TERMINATOR 297062782b3Schristos }; 298062782b3Schristos 299062782b3Schristos /* 0x04: SMMUv3 */ 300062782b3Schristos 301062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort4[] = 302062782b3Schristos { 303062782b3Schristos {ACPI_DMT_UINT64, ACPI_IORT4_OFFSET (BaseAddress), "Base Address", 0}, 304062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (Flags), "Flags (decoded below)", 0}, 305062782b3Schristos {ACPI_DMT_FLAG0, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "COHACC Override", 0}, 306062782b3Schristos {ACPI_DMT_FLAG1, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "HTTU Override", 0}, 307062782b3Schristos {ACPI_DMT_FLAG3, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "Proximity Domain Valid", 0}, 30882065f3bSchristos {ACPI_DMT_FLAG4, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "DeviceID Valid", 0}, 309062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (Reserved), "Reserved", 0}, 310062782b3Schristos {ACPI_DMT_UINT64, ACPI_IORT4_OFFSET (VatosAddress), "VATOS Address", 0}, 311062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (Model), "Model", 0}, 312062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (EventGsiv), "Event GSIV", 0}, 313062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (PriGsiv), "PRI GSIV", 0}, 314062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (GerrGsiv), "GERR GSIV", 0}, 315062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (SyncGsiv), "Sync GSIV", 0}, 31647315524Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (Pxm), "Proximity Domain", 0}, 317062782b3Schristos {ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (IdMappingIndex), "Device ID Mapping Index", 0}, 318062782b3Schristos ACPI_DMT_TERMINATOR 319062782b3Schristos }; 320062782b3Schristos 32147315524Schristos /* 0x05: PMCG */ 32247315524Schristos 32347315524Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort5[] = 32447315524Schristos { 32547315524Schristos {ACPI_DMT_UINT64, ACPI_IORT5_OFFSET (Page0BaseAddress), "Page 0 Base Address", 0}, 32647315524Schristos {ACPI_DMT_UINT32, ACPI_IORT5_OFFSET (OverflowGsiv), "Overflow Interrupt GSIV", 0}, 32747315524Schristos {ACPI_DMT_UINT32, ACPI_IORT5_OFFSET (NodeReference), "Node Reference", 0}, 32847315524Schristos {ACPI_DMT_UINT64, ACPI_IORT5_OFFSET (Page1BaseAddress), "Page 1 Base Address", 0}, 32947315524Schristos ACPI_DMT_TERMINATOR 33047315524Schristos }; 33147315524Schristos 332062782b3Schristos 33346a330b4Schristos /* 0x06: RMR */ 33446a330b4Schristos 33546a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort6[] = 33646a330b4Schristos { 33746a330b4Schristos {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (Flags), "Flags (decoded below)", 0}, 33846a330b4Schristos {ACPI_DMT_FLAG0, ACPI_IORT6_FLAG_OFFSET (Flags, 0), "Remapping Permitted", 0}, 3395b139df6Schristos {ACPI_DMT_FLAG1, ACPI_IORT6_FLAG_OFFSET (Flags, 0), "Access Privileged", 0}, 3405b139df6Schristos {ACPI_DMT_FLAGS8_2, ACPI_IORT6_FLAG_OFFSET (Flags, 0), "Access Attributes", 0}, 34146a330b4Schristos {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (RmrCount), "Number of RMR Descriptors", 0}, 34246a330b4Schristos {ACPI_DMT_UINT32, ACPI_IORT6_OFFSET (RmrOffset), "RMR Descriptor Offset", 0}, 34346a330b4Schristos ACPI_DMT_TERMINATOR 34446a330b4Schristos }; 34546a330b4Schristos 34646a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIort6a[] = 34746a330b4Schristos { 34846a330b4Schristos {ACPI_DMT_UINT64, ACPI_IORT6A_OFFSET (BaseAddress), "Base Address of RMR", DT_OPTIONAL}, 34946a330b4Schristos {ACPI_DMT_UINT64, ACPI_IORT6A_OFFSET (Length), "Length of RMR", 0}, 35046a330b4Schristos {ACPI_DMT_UINT32, ACPI_IORT6A_OFFSET (Reserved), "Reserved", 0}, 35146a330b4Schristos ACPI_DMT_TERMINATOR 35246a330b4Schristos }; 35346a330b4Schristos 354062782b3Schristos /******************************************************************************* 355062782b3Schristos * 356062782b3Schristos * IVRS - I/O Virtualization Reporting Structure 357062782b3Schristos * 358062782b3Schristos ******************************************************************************/ 359062782b3Schristos 360062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[] = 361062782b3Schristos { 362062782b3Schristos {ACPI_DMT_UINT32, ACPI_IVRS_OFFSET (Info), "Virtualization Info", 0}, 363062782b3Schristos {ACPI_DMT_UINT64, ACPI_IVRS_OFFSET (Reserved), "Reserved", 0}, 364062782b3Schristos ACPI_DMT_TERMINATOR 365062782b3Schristos }; 366062782b3Schristos 367062782b3Schristos /* IVRS subtables */ 368062782b3Schristos 369062782b3Schristos /* 0x10: I/O Virtualization Hardware Definition (IVHD) Block */ 370062782b3Schristos 3713e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware1[] = 372062782b3Schristos { 3733e9809d7Schristos {ACPI_DMT_IVRS, ACPI_IVRSH_OFFSET (Type), "Subtable Type", 0}, 3743e9809d7Schristos {ACPI_DMT_UINT8, ACPI_IVRSH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 3753e9809d7Schristos {ACPI_DMT_FLAG0, ACPI_IVRS_FLAG_OFFSET (Flags,0), "HtTunEn", 0}, 3763e9809d7Schristos {ACPI_DMT_FLAG1, ACPI_IVRS_FLAG_OFFSET (Flags,0), "PassPW", 0}, 3773e9809d7Schristos {ACPI_DMT_FLAG2, ACPI_IVRS_FLAG_OFFSET (Flags,0), "ResPassPW", 0}, 3783e9809d7Schristos {ACPI_DMT_FLAG3, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Isoc Control", 0}, 3793e9809d7Schristos {ACPI_DMT_FLAG4, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Iotlb Support", 0}, 3803e9809d7Schristos {ACPI_DMT_FLAG5, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Coherent", 0}, 3813e9809d7Schristos {ACPI_DMT_FLAG6, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Prefetch Support", 0}, 3823e9809d7Schristos {ACPI_DMT_FLAG7, ACPI_IVRS_FLAG_OFFSET (Flags,0), "PPR Support", 0}, 3833e9809d7Schristos {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (Length), "Length", DT_LENGTH}, 3843e9809d7Schristos {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (DeviceId), "DeviceId", 0}, 385062782b3Schristos {ACPI_DMT_UINT16, ACPI_IVRS0_OFFSET (CapabilityOffset), "Capability Offset", 0}, 386062782b3Schristos {ACPI_DMT_UINT64, ACPI_IVRS0_OFFSET (BaseAddress), "Base Address", 0}, 387062782b3Schristos {ACPI_DMT_UINT16, ACPI_IVRS0_OFFSET (PciSegmentGroup), "PCI Segment Group", 0}, 388062782b3Schristos {ACPI_DMT_UINT16, ACPI_IVRS0_OFFSET (Info), "Virtualization Info", 0}, 3893fd31de5Schristos {ACPI_DMT_UINT32, ACPI_IVRS0_OFFSET (FeatureReporting), "Feature Reporting", 0}, 3903fd31de5Schristos ACPI_DMT_TERMINATOR 3913fd31de5Schristos }; 3923fd31de5Schristos 3933e9809d7Schristos /* 0x11, 0x40: I/O Virtualization Hardware Definition (IVHD) Block */ 3943fd31de5Schristos 3953e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware23[] = 3963fd31de5Schristos { 3973e9809d7Schristos {ACPI_DMT_IVRS, ACPI_IVRSH_OFFSET (Type), "Subtable Type", 0}, 3983e9809d7Schristos {ACPI_DMT_UINT8, ACPI_IVRSH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 3993e9809d7Schristos {ACPI_DMT_FLAG0, ACPI_IVRS_FLAG_OFFSET (Flags,0), "HtTunEn", 0}, 4003e9809d7Schristos {ACPI_DMT_FLAG1, ACPI_IVRS_FLAG_OFFSET (Flags,0), "PassPW", 0}, 4013e9809d7Schristos {ACPI_DMT_FLAG2, ACPI_IVRS_FLAG_OFFSET (Flags,0), "ResPassPW", 0}, 4023e9809d7Schristos {ACPI_DMT_FLAG3, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Isoc Control", 0}, 4033e9809d7Schristos {ACPI_DMT_FLAG4, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Iotlb Support", 0}, 4043e9809d7Schristos {ACPI_DMT_FLAG5, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Coherent", 0}, 4053e9809d7Schristos {ACPI_DMT_FLAG6, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Prefetch Support", 0}, 4063e9809d7Schristos {ACPI_DMT_FLAG7, ACPI_IVRS_FLAG_OFFSET (Flags,0), "PPR Support", 0}, 4073e9809d7Schristos {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (Header.Length), "Length", DT_LENGTH}, 4083e9809d7Schristos {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (Header.DeviceId), "DeviceId", 0}, 4093fd31de5Schristos {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (CapabilityOffset), "Capability Offset", 0}, 4103fd31de5Schristos {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (BaseAddress), "Base Address", 0}, 4113fd31de5Schristos {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (PciSegmentGroup), "PCI Segment Group", 0}, 4123fd31de5Schristos {ACPI_DMT_UINT16, ACPI_IVRS01_OFFSET (Info), "Virtualization Info", 0}, 4133fd31de5Schristos {ACPI_DMT_UINT32, ACPI_IVRS01_OFFSET (Attributes), "Attributes", 0}, 4143fd31de5Schristos {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (EfrRegisterImage), "EFR Image", 0}, 4153fd31de5Schristos {ACPI_DMT_UINT64, ACPI_IVRS01_OFFSET (Reserved), "Reserved", 0}, 416062782b3Schristos ACPI_DMT_TERMINATOR 417062782b3Schristos }; 418062782b3Schristos 4193e9809d7Schristos /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition (IVMD) Device Entry Block */ 420062782b3Schristos 4213e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsMemory[] = 422062782b3Schristos { 4233e9809d7Schristos {ACPI_DMT_IVRS, ACPI_IVRSH_OFFSET (Type), "Subtable Type", 0}, 4243e9809d7Schristos {ACPI_DMT_UINT8, ACPI_IVRSH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 4253e9809d7Schristos {ACPI_DMT_FLAG0, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Unity", 0}, 4263e9809d7Schristos {ACPI_DMT_FLAG1, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Readable", 0}, 4273e9809d7Schristos {ACPI_DMT_FLAG2, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Writeable", 0}, 4283e9809d7Schristos {ACPI_DMT_FLAG3, ACPI_IVRS_FLAG_OFFSET (Flags,0), "Exclusion Range", 0}, 4293e9809d7Schristos {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (Length), "Length", DT_LENGTH}, 4303e9809d7Schristos {ACPI_DMT_UINT16, ACPI_IVRSH_OFFSET (DeviceId), "DeviceId", 0}, 431062782b3Schristos {ACPI_DMT_UINT16, ACPI_IVRS1_OFFSET (AuxData), "Auxiliary Data", 0}, 432062782b3Schristos {ACPI_DMT_UINT64, ACPI_IVRS1_OFFSET (Reserved), "Reserved", 0}, 433062782b3Schristos {ACPI_DMT_UINT64, ACPI_IVRS1_OFFSET (StartAddress), "Start Address", 0}, 434062782b3Schristos {ACPI_DMT_UINT64, ACPI_IVRS1_OFFSET (MemoryLength), "Memory Length", 0}, 435062782b3Schristos ACPI_DMT_TERMINATOR 436062782b3Schristos }; 437062782b3Schristos 438062782b3Schristos /* Device entry header for IVHD block */ 439062782b3Schristos 440062782b3Schristos #define ACPI_DMT_IVRS_DE_HEADER \ 4413e9809d7Schristos {ACPI_DMT_IVRS_DE, ACPI_IVRSD_OFFSET (Type), "Subtable Type", 0}, \ 442062782b3Schristos {ACPI_DMT_UINT16, ACPI_IVRSD_OFFSET (Id), "Device ID", 0}, \ 4433e9809d7Schristos {ACPI_DMT_UINT8, ACPI_IVRSD_OFFSET (DataSetting), "Data Setting (decoded below)", 0}, \ 4443e9809d7Schristos {ACPI_DMT_FLAG0, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "INITPass", 0}, \ 4453e9809d7Schristos {ACPI_DMT_FLAG1, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "EIntPass", 0}, \ 4463e9809d7Schristos {ACPI_DMT_FLAG2, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "NMIPass", 0}, \ 4473e9809d7Schristos {ACPI_DMT_FLAG3, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "Reserved", 0}, \ 4483e9809d7Schristos {ACPI_DMT_FLAGS4, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "System MGMT", 0}, \ 4493e9809d7Schristos {ACPI_DMT_FLAG6, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "LINT0 Pass", 0}, \ 4503e9809d7Schristos {ACPI_DMT_FLAG7, ACPI_IVRSDE_FLAG_OFFSET (DataSetting, 0), "LINT1 Pass", 0} 451062782b3Schristos 4523e9809d7Schristos /* 4-byte device entry (Types 1,2,3,4) */ 453062782b3Schristos 454062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[] = 455062782b3Schristos { 456062782b3Schristos ACPI_DMT_IVRS_DE_HEADER, 4573e9809d7Schristos ACPI_DMT_TERMINATOR 458062782b3Schristos }; 459062782b3Schristos 4603e9809d7Schristos /* 8-byte device entry (Type Alias Select, Alias Start of Range) */ 461062782b3Schristos 462062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[] = 463062782b3Schristos { 464062782b3Schristos ACPI_DMT_IVRS_DE_HEADER, 465062782b3Schristos {ACPI_DMT_UINT8, ACPI_IVRS8A_OFFSET (Reserved1), "Reserved", 0}, 466062782b3Schristos {ACPI_DMT_UINT16, ACPI_IVRS8A_OFFSET (UsedId), "Source Used Device ID", 0}, 467062782b3Schristos {ACPI_DMT_UINT8, ACPI_IVRS8A_OFFSET (Reserved2), "Reserved", 0}, 468062782b3Schristos ACPI_DMT_TERMINATOR 469062782b3Schristos }; 470062782b3Schristos 4713e9809d7Schristos /* 8-byte device entry (Type Extended Select, Extended Start of Range) */ 472062782b3Schristos 473062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[] = 474062782b3Schristos { 475062782b3Schristos ACPI_DMT_IVRS_DE_HEADER, 476062782b3Schristos {ACPI_DMT_UINT32, ACPI_IVRS8B_OFFSET (ExtendedData), "Extended Data", 0}, 477062782b3Schristos ACPI_DMT_TERMINATOR 478062782b3Schristos }; 479062782b3Schristos 4803e9809d7Schristos /* 8-byte device entry (Type Special Device) */ 481062782b3Schristos 482062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[] = 483062782b3Schristos { 484062782b3Schristos ACPI_DMT_IVRS_DE_HEADER, 485062782b3Schristos {ACPI_DMT_UINT8, ACPI_IVRS8C_OFFSET (Handle), "Handle", 0}, 486062782b3Schristos {ACPI_DMT_UINT16, ACPI_IVRS8C_OFFSET (UsedId), "Source Used Device ID", 0}, 487062782b3Schristos {ACPI_DMT_UINT8, ACPI_IVRS8C_OFFSET (Variety), "Variety", 0}, 488062782b3Schristos ACPI_DMT_TERMINATOR 489062782b3Schristos }; 490062782b3Schristos 4913e9809d7Schristos /* Variable-length Device Entry Type 0xF0 */ 49246a330b4Schristos 49346a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[] = 49446a330b4Schristos { 49546a330b4Schristos ACPI_DMT_IVRS_DE_HEADER, 49646a330b4Schristos ACPI_DMT_TERMINATOR 49746a330b4Schristos }; 49846a330b4Schristos 4993e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidString[] = 50046a330b4Schristos { 5013e9809d7Schristos {ACPI_DMT_UINT8, 0, "UID Format", DT_DESCRIBES_OPTIONAL}, 5023e9809d7Schristos {ACPI_DMT_UINT8, 1, "UID Length", DT_DESCRIBES_OPTIONAL}, 5033e9809d7Schristos {ACPI_DMT_IVRS_UNTERMINATED_STRING, 2, "UID", DT_OPTIONAL}, 5043e9809d7Schristos ACPI_DMT_TERMINATOR 5053e9809d7Schristos }; 5063e9809d7Schristos 5073e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidInteger[] = 5083e9809d7Schristos { 5093e9809d7Schristos {ACPI_DMT_UINT8, 0, "UID Format", DT_DESCRIBES_OPTIONAL}, 5103e9809d7Schristos {ACPI_DMT_UINT8, 1, "UID Length", DT_DESCRIBES_OPTIONAL}, 5113e9809d7Schristos {ACPI_DMT_UINT64, 2, "UID", DT_OPTIONAL}, 5123e9809d7Schristos ACPI_DMT_TERMINATOR 5133e9809d7Schristos }; 5143e9809d7Schristos 5153e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidString[] = 5163e9809d7Schristos { 5173e9809d7Schristos {ACPI_DMT_NAME8, 0, "ACPI HID", 0}, 5183e9809d7Schristos ACPI_DMT_TERMINATOR 5193e9809d7Schristos }; 5203e9809d7Schristos 5213e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidInteger[] = 5223e9809d7Schristos { 5233e9809d7Schristos {ACPI_DMT_UINT64, 0, "ACPI HID", 0}, 5243e9809d7Schristos ACPI_DMT_TERMINATOR 5253e9809d7Schristos }; 5263e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidString[] = 5273e9809d7Schristos { 5283e9809d7Schristos {ACPI_DMT_NAME8, 0, "ACPI CID", 0}, 5293e9809d7Schristos ACPI_DMT_TERMINATOR 5303e9809d7Schristos }; 5313e9809d7Schristos 5323e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidInteger[] = 5333e9809d7Schristos { 5343e9809d7Schristos {ACPI_DMT_UINT64, 0, "ACPI CID", 0}, 53546a330b4Schristos ACPI_DMT_TERMINATOR 53646a330b4Schristos }; 53746a330b4Schristos 538062782b3Schristos 539062782b3Schristos /******************************************************************************* 540062782b3Schristos * 541062782b3Schristos * LPIT - Low Power Idle Table 542062782b3Schristos * 543062782b3Schristos ******************************************************************************/ 544062782b3Schristos 545062782b3Schristos /* Main table consists only of the standard ACPI table header */ 546062782b3Schristos 547062782b3Schristos /* Common Subtable header (one per Subtable) */ 548062782b3Schristos 549062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoLpitHdr[] = 550062782b3Schristos { 551062782b3Schristos {ACPI_DMT_LPIT, ACPI_LPITH_OFFSET (Type), "Subtable Type", 0}, 552062782b3Schristos {ACPI_DMT_UINT32, ACPI_LPITH_OFFSET (Length), "Length", DT_LENGTH}, 553062782b3Schristos {ACPI_DMT_UINT16, ACPI_LPITH_OFFSET (UniqueId), "Unique ID", 0}, 554062782b3Schristos {ACPI_DMT_UINT16, ACPI_LPITH_OFFSET (Reserved), "Reserved", 0}, 555062782b3Schristos {ACPI_DMT_UINT32, ACPI_LPITH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 556062782b3Schristos {ACPI_DMT_FLAG0, ACPI_LPITH_FLAG_OFFSET (Flags, 0), "State Disabled", 0}, 557062782b3Schristos {ACPI_DMT_FLAG1, ACPI_LPITH_FLAG_OFFSET (Flags, 0), "No Counter", 0}, 558062782b3Schristos ACPI_DMT_TERMINATOR 559062782b3Schristos }; 560062782b3Schristos 561062782b3Schristos /* LPIT Subtables */ 562062782b3Schristos 563062782b3Schristos /* 0: Native C-state */ 564062782b3Schristos 565062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[] = 566062782b3Schristos { 567062782b3Schristos {ACPI_DMT_GAS, ACPI_LPIT0_OFFSET (EntryTrigger), "Entry Trigger", 0}, 568062782b3Schristos {ACPI_DMT_UINT32, ACPI_LPIT0_OFFSET (Residency), "Residency", 0}, 569062782b3Schristos {ACPI_DMT_UINT32, ACPI_LPIT0_OFFSET (Latency), "Latency", 0}, 570062782b3Schristos {ACPI_DMT_GAS, ACPI_LPIT0_OFFSET (ResidencyCounter), "Residency Counter", 0}, 571062782b3Schristos {ACPI_DMT_UINT64, ACPI_LPIT0_OFFSET (CounterFrequency), "Counter Frequency", 0}, 572062782b3Schristos ACPI_DMT_TERMINATOR 573062782b3Schristos }; 574062782b3Schristos /******************************************************************************* 575062782b3Schristos * 576062782b3Schristos * MADT - Multiple APIC Description Table and subtables 577062782b3Schristos * 578062782b3Schristos ******************************************************************************/ 579062782b3Schristos 580062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[] = 581062782b3Schristos { 582062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT_OFFSET (Address), "Local Apic Address", 0}, 583062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 584062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MADT_FLAG_OFFSET (Flags,0), "PC-AT Compatibility", 0}, 585062782b3Schristos ACPI_DMT_TERMINATOR 586062782b3Schristos }; 587062782b3Schristos 588062782b3Schristos /* Common Subtable header (one per Subtable) */ 589062782b3Schristos 590062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[] = 591062782b3Schristos { 592062782b3Schristos {ACPI_DMT_MADT, ACPI_MADTH_OFFSET (Type), "Subtable Type", 0}, 593062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADTH_OFFSET (Length), "Length", DT_LENGTH}, 594062782b3Schristos ACPI_DMT_TERMINATOR 595062782b3Schristos }; 596062782b3Schristos 597062782b3Schristos /* MADT Subtables */ 598062782b3Schristos 599062782b3Schristos /* 0: processor APIC */ 600062782b3Schristos 601062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[] = 602062782b3Schristos { 603062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT0_OFFSET (ProcessorId), "Processor ID", 0}, 604062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT0_OFFSET (Id), "Local Apic ID", 0}, 605062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT0_OFFSET (LapicFlags), "Flags (decoded below)", DT_FLAG}, 606062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MADT0_FLAG_OFFSET (LapicFlags,0), "Processor Enabled", 0}, 60794783addSchristos {ACPI_DMT_FLAG1, ACPI_MADT0_FLAG_OFFSET (LapicFlags,0), "Runtime Online Capable", 0}, 608062782b3Schristos ACPI_DMT_TERMINATOR 609062782b3Schristos }; 610062782b3Schristos 611062782b3Schristos /* 1: IO APIC */ 612062782b3Schristos 613062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[] = 614062782b3Schristos { 615062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT1_OFFSET (Id), "I/O Apic ID", 0}, 616062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT1_OFFSET (Reserved), "Reserved", 0}, 617062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT1_OFFSET (Address), "Address", 0}, 618062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT1_OFFSET (GlobalIrqBase), "Interrupt", 0}, 619062782b3Schristos ACPI_DMT_TERMINATOR 620062782b3Schristos }; 621062782b3Schristos 622062782b3Schristos /* 2: Interrupt Override */ 623062782b3Schristos 624062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[] = 625062782b3Schristos { 626062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT2_OFFSET (Bus), "Bus", 0}, 627062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT2_OFFSET (SourceIrq), "Source", 0}, 628062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT2_OFFSET (GlobalIrq), "Interrupt", 0}, 629062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT2_OFFSET (IntiFlags), "Flags (decoded below)", DT_FLAG}, 630062782b3Schristos {ACPI_DMT_FLAGS0, ACPI_MADT2_FLAG_OFFSET (IntiFlags,0), "Polarity", 0}, 631062782b3Schristos {ACPI_DMT_FLAGS2, ACPI_MADT2_FLAG_OFFSET (IntiFlags,0), "Trigger Mode", 0}, 632062782b3Schristos ACPI_DMT_TERMINATOR 633062782b3Schristos }; 634062782b3Schristos 635062782b3Schristos /* 3: NMI Sources */ 636062782b3Schristos 637062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[] = 638062782b3Schristos { 639062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT3_OFFSET (IntiFlags), "Flags (decoded below)", DT_FLAG}, 640062782b3Schristos {ACPI_DMT_FLAGS0, ACPI_MADT3_FLAG_OFFSET (IntiFlags,0), "Polarity", 0}, 641062782b3Schristos {ACPI_DMT_FLAGS2, ACPI_MADT3_FLAG_OFFSET (IntiFlags,0), "Trigger Mode", 0}, 642062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT3_OFFSET (GlobalIrq), "Interrupt", 0}, 643062782b3Schristos ACPI_DMT_TERMINATOR 644062782b3Schristos }; 645062782b3Schristos 646062782b3Schristos /* 4: Local APIC NMI */ 647062782b3Schristos 648062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[] = 649062782b3Schristos { 650062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT4_OFFSET (ProcessorId), "Processor ID", 0}, 651062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT4_OFFSET (IntiFlags), "Flags (decoded below)", DT_FLAG}, 652062782b3Schristos {ACPI_DMT_FLAGS0, ACPI_MADT4_FLAG_OFFSET (IntiFlags,0), "Polarity", 0}, 653062782b3Schristos {ACPI_DMT_FLAGS2, ACPI_MADT4_FLAG_OFFSET (IntiFlags,0), "Trigger Mode", 0}, 654062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT4_OFFSET (Lint), "Interrupt Input LINT", 0}, 655062782b3Schristos ACPI_DMT_TERMINATOR 656062782b3Schristos }; 657062782b3Schristos 658062782b3Schristos /* 5: Address Override */ 659062782b3Schristos 660062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[] = 661062782b3Schristos { 662062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT5_OFFSET (Reserved), "Reserved", 0}, 663062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT5_OFFSET (Address), "APIC Address", 0}, 664062782b3Schristos ACPI_DMT_TERMINATOR 665062782b3Schristos }; 666062782b3Schristos 667062782b3Schristos /* 6: I/O Sapic */ 668062782b3Schristos 669062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[] = 670062782b3Schristos { 671062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT6_OFFSET (Id), "I/O Sapic ID", 0}, 672062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT6_OFFSET (Reserved), "Reserved", 0}, 673062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT6_OFFSET (GlobalIrqBase), "Interrupt Base", 0}, 674062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT6_OFFSET (Address), "Address", 0}, 675062782b3Schristos ACPI_DMT_TERMINATOR 676062782b3Schristos }; 677062782b3Schristos 678062782b3Schristos /* 7: Local Sapic */ 679062782b3Schristos 680062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[] = 681062782b3Schristos { 682062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (ProcessorId), "Processor ID", 0}, 683062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (Id), "Local Sapic ID", 0}, 684062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (Eid), "Local Sapic EID", 0}, 685062782b3Schristos {ACPI_DMT_UINT24, ACPI_MADT7_OFFSET (Reserved[0]), "Reserved", 0}, 686062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT7_OFFSET (LapicFlags), "Flags (decoded below)", DT_FLAG}, 687062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MADT7_FLAG_OFFSET (LapicFlags,0), "Processor Enabled", 0}, 688062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT7_OFFSET (Uid), "Processor UID", 0}, 689062782b3Schristos {ACPI_DMT_STRING, ACPI_MADT7_OFFSET (UidString[0]), "Processor UID String", 0}, 690062782b3Schristos ACPI_DMT_TERMINATOR 691062782b3Schristos }; 692062782b3Schristos 693062782b3Schristos /* 8: Platform Interrupt Source */ 694062782b3Schristos 695062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[] = 696062782b3Schristos { 697062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT8_OFFSET (IntiFlags), "Flags (decoded below)", DT_FLAG}, 698062782b3Schristos {ACPI_DMT_FLAGS0, ACPI_MADT8_FLAG_OFFSET (IntiFlags,0), "Polarity", 0}, 699062782b3Schristos {ACPI_DMT_FLAGS2, ACPI_MADT8_FLAG_OFFSET (IntiFlags,0), "Trigger Mode", 0}, 700062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Type), "InterruptType", 0}, 701062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Id), "Processor ID", 0}, 702062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Eid), "Processor EID", 0}, 703062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (IoSapicVector), "I/O Sapic Vector", 0}, 704062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT8_OFFSET (GlobalIrq), "Interrupt", 0}, 705062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT8_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 706062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MADT8_OFFSET (Flags), "CPEI Override", 0}, 707062782b3Schristos ACPI_DMT_TERMINATOR 708062782b3Schristos }; 709062782b3Schristos 710062782b3Schristos /* 9: Processor Local X2_APIC (ACPI 4.0) */ 711062782b3Schristos 712062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[] = 713062782b3Schristos { 714062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT9_OFFSET (Reserved), "Reserved", 0}, 715062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT9_OFFSET (LocalApicId), "Processor x2Apic ID", 0}, 716062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT9_OFFSET (LapicFlags), "Flags (decoded below)", DT_FLAG}, 717062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MADT9_FLAG_OFFSET (LapicFlags,0), "Processor Enabled", 0}, 718062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT9_OFFSET (Uid), "Processor UID", 0}, 719062782b3Schristos ACPI_DMT_TERMINATOR 720062782b3Schristos }; 721062782b3Schristos 722062782b3Schristos /* 10: Local X2_APIC NMI (ACPI 4.0) */ 723062782b3Schristos 724062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[] = 725062782b3Schristos { 726062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT10_OFFSET (IntiFlags), "Flags (decoded below)", DT_FLAG}, 727062782b3Schristos {ACPI_DMT_FLAGS0, ACPI_MADT10_FLAG_OFFSET (IntiFlags,0), "Polarity", 0}, 728062782b3Schristos {ACPI_DMT_FLAGS2, ACPI_MADT10_FLAG_OFFSET (IntiFlags,0), "Trigger Mode", 0}, 729062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT10_OFFSET (Uid), "Processor UID", 0}, 730062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT10_OFFSET (Lint), "Interrupt Input LINT", 0}, 731062782b3Schristos {ACPI_DMT_UINT24, ACPI_MADT10_OFFSET (Reserved[0]), "Reserved", 0}, 732062782b3Schristos ACPI_DMT_TERMINATOR 733062782b3Schristos }; 734062782b3Schristos 735062782b3Schristos /* 11: Generic Interrupt Controller (ACPI 5.0) */ 736062782b3Schristos 737062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[] = 738062782b3Schristos { 739062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (Reserved), "Reserved", 0}, 740062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (CpuInterfaceNumber), "CPU Interface Number", 0}, 741062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Uid), "Processor UID", 0}, 742062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 743062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Processor Enabled", 0}, 744062782b3Schristos {ACPI_DMT_FLAG1, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Performance Interrupt Trigger Mode", 0}, 745062782b3Schristos {ACPI_DMT_FLAG2, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Virtual GIC Interrupt Trigger Mode", 0}, 746062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (ParkingVersion), "Parking Protocol Version", 0}, 747062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (PerformanceInterrupt), "Performance Interrupt", 0}, 748062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ParkedAddress), "Parked Address", 0}, 749062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (BaseAddress), "Base Address", 0}, 750062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicvBaseAddress), "Virtual GIC Base Address", 0}, 751062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GichBaseAddress), "Hypervisor GIC Base Address", 0}, 752062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (VgicInterrupt), "Virtual GIC Interrupt", 0}, 753062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicrBaseAddress), "Redistributor Base Address", 0}, 754062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ArmMpidr), "ARM MPIDR", 0}, 755062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0}, 75694783addSchristos {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0}, 75794783addSchristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0}, 758046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (TrbeInterrupt), "TRBE Interrupt", 0}, 759062782b3Schristos ACPI_DMT_TERMINATOR 760062782b3Schristos }; 761062782b3Schristos 762*c7960b37Schristos /* 11: Generic Interrupt Controller (ACPI 5.0) - MADT revision 6 */ 763*c7960b37Schristos 764*c7960b37Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11a[] = 765*c7960b37Schristos { 766*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (Reserved), "Reserved", 0}, 767*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (CpuInterfaceNumber), "CPU Interface Number", 0}, 768*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Uid), "Processor UID", 0}, 769*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 770*c7960b37Schristos {ACPI_DMT_FLAG0, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Processor Enabled", 0}, 771*c7960b37Schristos {ACPI_DMT_FLAG1, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Performance Interrupt Trigger Mode", 0}, 772*c7960b37Schristos {ACPI_DMT_FLAG2, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Virtual GIC Interrupt Trigger Mode", 0}, 773*c7960b37Schristos {ACPI_DMT_FLAG3, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Online Capable", 0}, 774*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (ParkingVersion), "Parking Protocol Version", 0}, 775*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (PerformanceInterrupt), "Performance Interrupt", 0}, 776*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ParkedAddress), "Parked Address", 0}, 777*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (BaseAddress), "Base Address", 0}, 778*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicvBaseAddress), "Virtual GIC Base Address", 0}, 779*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GichBaseAddress), "Hypervisor GIC Base Address", 0}, 780*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (VgicInterrupt), "Virtual GIC Interrupt", 0}, 781*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicrBaseAddress), "Redistributor Base Address", 0}, 782*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ArmMpidr), "ARM MPIDR", 0}, 783*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0}, 784*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0}, 785*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0}, 786*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (TrbeInterrupt), "TRBE Interrupt", 0}, 787*c7960b37Schristos ACPI_DMT_TERMINATOR 788*c7960b37Schristos }; 789*c7960b37Schristos 790*c7960b37Schristos /* 11: Generic Interrupt Controller (ACPI 5.0) - MADT revision 7 */ 791*c7960b37Schristos 792*c7960b37Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11b[] = 793*c7960b37Schristos { 794*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (Reserved), "Reserved", 0}, 795*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (CpuInterfaceNumber), "CPU Interface Number", 0}, 796*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Uid), "Processor UID", 0}, 797*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 798*c7960b37Schristos {ACPI_DMT_FLAG0, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Processor Enabled", 0}, 799*c7960b37Schristos {ACPI_DMT_FLAG1, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Performance Interrupt Trigger Mode", 0}, 800*c7960b37Schristos {ACPI_DMT_FLAG2, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Virtual GIC Interrupt Trigger Mode", 0}, 801*c7960b37Schristos {ACPI_DMT_FLAG3, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Online Capable", 0}, 802*c7960b37Schristos {ACPI_DMT_FLAG4, ACPI_MADT11_FLAG_OFFSET (Flags,0), "GICR non-coherent", 0}, 803*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (ParkingVersion), "Parking Protocol Version", 0}, 804*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (PerformanceInterrupt), "Performance Interrupt", 0}, 805*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ParkedAddress), "Parked Address", 0}, 806*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (BaseAddress), "Base Address", 0}, 807*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicvBaseAddress), "Virtual GIC Base Address", 0}, 808*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GichBaseAddress), "Hypervisor GIC Base Address", 0}, 809*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (VgicInterrupt), "Virtual GIC Interrupt", 0}, 810*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicrBaseAddress), "Redistributor Base Address", 0}, 811*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ArmMpidr), "ARM MPIDR", 0}, 812*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0}, 813*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0}, 814*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0}, 815*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (TrbeInterrupt), "TRBE Interrupt", 0}, 816*c7960b37Schristos ACPI_DMT_TERMINATOR 817*c7960b37Schristos }; 818*c7960b37Schristos 819062782b3Schristos /* 12: Generic Interrupt Distributor (ACPI 5.0) */ 820062782b3Schristos 821062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[] = 822062782b3Schristos { 823062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT12_OFFSET (Reserved), "Reserved", 0}, 824062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT12_OFFSET (GicId), "Local GIC Hardware ID", 0}, 825062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT12_OFFSET (BaseAddress), "Base Address", 0}, 826062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT12_OFFSET (GlobalIrqBase), "Interrupt Base", 0}, 827062782b3Schristos {ACPI_DMT_UINT8, ACPI_MADT12_OFFSET (Version), "Version", 0}, 828062782b3Schristos {ACPI_DMT_UINT24, ACPI_MADT12_OFFSET (Reserved2[0]), "Reserved", 0}, 829062782b3Schristos ACPI_DMT_TERMINATOR 830062782b3Schristos }; 831062782b3Schristos 832062782b3Schristos /* 13: Generic MSI Frame (ACPI 5.1) */ 833062782b3Schristos 834062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[] = 835062782b3Schristos { 836062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT13_OFFSET (Reserved), "Reserved", 0}, 837062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT13_OFFSET (MsiFrameId), "MSI Frame ID", 0}, 838062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT13_OFFSET (BaseAddress), "Base Address", 0}, 839062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT13_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 840062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MADT13_FLAG_OFFSET (Flags,0), "Select SPI", 0}, 841062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT13_OFFSET (SpiCount), "SPI Count", 0}, 842062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT13_OFFSET (SpiBase), "SPI Base", 0}, 843062782b3Schristos ACPI_DMT_TERMINATOR 844062782b3Schristos }; 845062782b3Schristos 846062782b3Schristos /* 14: Generic Redistributor (ACPI 5.1) */ 847062782b3Schristos 848062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[] = 849062782b3Schristos { 850062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT14_OFFSET (Reserved), "Reserved", 0}, 851062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT14_OFFSET (BaseAddress), "Base Address", 0}, 852062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT14_OFFSET (Length), "Length", 0}, 853062782b3Schristos ACPI_DMT_TERMINATOR 854062782b3Schristos }; 855062782b3Schristos 856*c7960b37Schristos /* 14: Generic Redistributor (ACPI 5.1) */ 857*c7960b37Schristos 858*c7960b37Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14a[] = 859*c7960b37Schristos { 860*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_MADT14_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 861*c7960b37Schristos {ACPI_DMT_FLAG0, ACPI_MADT14_FLAG_OFFSET (Flags,0), "GICR non-coherent", 0}, 862*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_MADT14_OFFSET (Reserved), "Reserved", 0}, 863*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT14_OFFSET (BaseAddress), "Base Address", 0}, 864*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT14_OFFSET (Length), "Length", 0}, 865*c7960b37Schristos ACPI_DMT_TERMINATOR 866*c7960b37Schristos }; 867*c7960b37Schristos 868062782b3Schristos /* 15: Generic Translator (ACPI 6.0) */ 869062782b3Schristos 870062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[] = 871062782b3Schristos { 872062782b3Schristos {ACPI_DMT_UINT16, ACPI_MADT15_OFFSET (Reserved), "Reserved", 0}, 873062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT15_OFFSET (TranslationId), "Translation ID", 0}, 874062782b3Schristos {ACPI_DMT_UINT64, ACPI_MADT15_OFFSET (BaseAddress), "Base Address", 0}, 875062782b3Schristos {ACPI_DMT_UINT32, ACPI_MADT15_OFFSET (Reserved2), "Reserved", 0}, 876062782b3Schristos ACPI_DMT_TERMINATOR 877062782b3Schristos }; 878062782b3Schristos 879*c7960b37Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15a[] = 880*c7960b37Schristos { 881*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_MADT15_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 882*c7960b37Schristos {ACPI_DMT_FLAG0, ACPI_MADT15_FLAG_OFFSET (Flags,0), "GIC ITS non-coherent", 0}, 883*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_MADT15_OFFSET (Reserved), "Reserved", 0}, 884*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT15_OFFSET (TranslationId), "Translation ID", 0}, 885*c7960b37Schristos {ACPI_DMT_UINT64, ACPI_MADT15_OFFSET (BaseAddress), "Base Address", 0}, 886*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MADT15_OFFSET (Reserved2), "Reserved", 0}, 887*c7960b37Schristos ACPI_DMT_TERMINATOR 888*c7960b37Schristos }; 889*c7960b37Schristos 89046a330b4Schristos /* 16: Multiprocessor wakeup structure (ACPI 6.4) */ 89146a330b4Schristos 89246a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[] = 89346a330b4Schristos { 89446a330b4Schristos {ACPI_DMT_UINT16, ACPI_MADT16_OFFSET (MailboxVersion), "Mailbox Version", 0}, 89546a330b4Schristos {ACPI_DMT_UINT32, ACPI_MADT16_OFFSET (Reserved), "Reserved", 0}, 89646a330b4Schristos {ACPI_DMT_UINT64, ACPI_MADT16_OFFSET (BaseAddress), "Mailbox Address", 0}, 89746a330b4Schristos ACPI_DMT_TERMINATOR 89846a330b4Schristos }; 89946a330b4Schristos 900046a2985Schristos /* 17: core interrupt controller */ 9015b139df6Schristos 9025b139df6Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[] = 9035b139df6Schristos { 904046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT17_OFFSET (Version), "Version", 0}, 905046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (ProcessorId), "ProcessorId", 0}, 906046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (CoreId), "CoreId", 0}, 907046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (Flags), "Flags", 0}, 908046a2985Schristos ACPI_DMT_TERMINATOR 909046a2985Schristos }; 910046a2985Schristos 911046a2985Schristos /* 18: Legacy I/O interrupt controller */ 912046a2985Schristos 913046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[] = 914046a2985Schristos { 915046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT18_OFFSET (Version), "Version", 0}, 916046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (Address), "Address", 0}, 917046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Size), "Size", 0}, 918046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Cascade), "Cascade", 0}, 919046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (CascadeMap), "CascadeMap", 0}, 920046a2985Schristos ACPI_DMT_TERMINATOR 921046a2985Schristos }; 922046a2985Schristos 923046a2985Schristos /* 19: HT interrupt controller */ 924046a2985Schristos 925046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[] = 926046a2985Schristos { 927046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT19_OFFSET (Version), "Version", 0}, 928046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Address), "Address", 0}, 929046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT19_OFFSET (Size), "Size", 0}, 930046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Cascade), "Cascade", 0}, 931046a2985Schristos ACPI_DMT_TERMINATOR 932046a2985Schristos }; 933046a2985Schristos 934046a2985Schristos /* 20: Extend I/O interrupt controller */ 935046a2985Schristos 936046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[] = 937046a2985Schristos { 938046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Version), "Version", 0}, 939046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Cascade), "Cascade", 0}, 940046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Node), "Node", 0}, 941046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT20_OFFSET (NodeMap), "NodeMap", 0}, 942046a2985Schristos ACPI_DMT_TERMINATOR 943046a2985Schristos }; 944046a2985Schristos 945046a2985Schristos /* 21: MSI controller */ 946046a2985Schristos 947046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[] = 948046a2985Schristos { 949046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT21_OFFSET (Version), "Version", 0}, 950046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT21_OFFSET (MsgAddress), "MsgAddress", 0}, 951046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Start), "Start", 0}, 952046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Count), "Count", 0}, 953046a2985Schristos ACPI_DMT_TERMINATOR 954046a2985Schristos }; 955046a2985Schristos 956046a2985Schristos /* 22: BIO interrupt controller */ 957046a2985Schristos 958046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[] = 959046a2985Schristos { 960046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT22_OFFSET (Version), "Version", 0}, 961046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT22_OFFSET (Address), "Address", 0}, 962046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Size), "Size", 0}, 963046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Id), "Id", 0}, 964046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (GsiBase), "GsiBase", 0}, 965046a2985Schristos ACPI_DMT_TERMINATOR 966046a2985Schristos }; 967046a2985Schristos 968046a2985Schristos /* 23: LPC interrupt controller */ 969046a2985Schristos 970046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[] = 971046a2985Schristos { 972046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Version), "Version", 0}, 973046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT23_OFFSET (Address), "Address", 0}, 974046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT23_OFFSET (Size), "Size", 0}, 975046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Cascade), "Cascade", 0}, 976046a2985Schristos ACPI_DMT_TERMINATOR 977046a2985Schristos }; 978046a2985Schristos 979046a2985Schristos /* 24: RINTC interrupt controller */ 980046a2985Schristos 981046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[] = 982046a2985Schristos { 983046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Version), "Version", 0}, 984046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Reserved), "Reserved", 0}, 985046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Flags), "Flags", 0}, 986046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (HartId), "HartId", 0}, 987046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Uid), "Uid", 0}, 988046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ExtIntcId), "ExtIntcId", 0}, 989046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (ImsicAddr), "ImsicAddr", 0}, 990046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ImsicSize), "ImsicSize", 0}, 991046a2985Schristos ACPI_DMT_TERMINATOR 992046a2985Schristos }; 993046a2985Schristos 994046a2985Schristos /* 25: RISC-V IMSIC interrupt controller */ 995046a2985Schristos 996046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[] = 997046a2985Schristos { 998046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Version), "Version", 0}, 999046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Reserved), "Reserved", 0}, 1000046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT25_OFFSET (Flags), "Flags", 0}, 1001046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumIds), "NumIds", 0}, 1002046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumGuestIds), "NumGuestIds", 0}, 1003046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GuestIndexBits), "GuestIndexBits", 0}, 1004046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (HartIndexBits), "HartIndexBits", 0}, 1005046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexBits), "GroupIndexBits", 0}, 1006046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexShift), "GroupIndexShift", 0}, 1007046a2985Schristos ACPI_DMT_TERMINATOR 1008046a2985Schristos }; 1009046a2985Schristos 1010046a2985Schristos /* 26: RISC-V APLIC interrupt controller */ 1011046a2985Schristos 1012046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[] = 1013046a2985Schristos { 1014046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Version), "Version", 0}, 1015046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Id), "Id", 0}, 1016046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Flags), "Flags", 0}, 1017046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (HwId), "HwId", 0}, 1018046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumIdcs), "NumIdcs", 0}, 1019046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumSources), "NumSources", 0}, 1020046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (GsiBase), "GsiBase", 0}, 1021046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (BaseAddr), "BaseAddr", 0}, 1022046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Size), "Size", 0}, 1023046a2985Schristos ACPI_DMT_TERMINATOR 1024046a2985Schristos }; 1025046a2985Schristos 1026046a2985Schristos /* 27: RISC-V PLIC interrupt controller */ 1027046a2985Schristos 1028046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[] = 1029046a2985Schristos { 1030046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Version), "Version", 0}, 1031046a2985Schristos {ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Id), "Id", 0}, 1032046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (HwId), "HwId", 0}, 1033046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (NumIrqs), "NumIrqs", 0}, 1034046a2985Schristos {ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (MaxPrio), "MaxPrio", 0}, 1035046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Flags), "Flags", 0}, 1036046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Size), "Size", 0}, 1037046a2985Schristos {ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (BaseAddr), "BaseAddr", 0}, 1038046a2985Schristos {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (GsiBase), "GsiBase", 0}, 1039046a2985Schristos ACPI_DMT_TERMINATOR 1040046a2985Schristos }; 1041046a2985Schristos 1042046a2985Schristos /* 128: OEM data structure */ 1043046a2985Schristos 1044046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[] = 1045046a2985Schristos { 10465b139df6Schristos {ACPI_DMT_RAW_BUFFER, 0, "OEM Data", 0}, 10475b139df6Schristos ACPI_DMT_TERMINATOR 10485b139df6Schristos }; 1049062782b3Schristos 1050062782b3Schristos /******************************************************************************* 1051062782b3Schristos * 1052062782b3Schristos * MCFG - PCI Memory Mapped Configuration table and Subtable 1053062782b3Schristos * 1054062782b3Schristos ******************************************************************************/ 1055062782b3Schristos 1056062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[] = 1057062782b3Schristos { 1058062782b3Schristos {ACPI_DMT_UINT64, ACPI_MCFG_OFFSET (Reserved[0]), "Reserved", 0}, 1059062782b3Schristos ACPI_DMT_TERMINATOR 1060062782b3Schristos }; 1061062782b3Schristos 1062062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[] = 1063062782b3Schristos { 1064062782b3Schristos {ACPI_DMT_UINT64, ACPI_MCFG0_OFFSET (Address), "Base Address", 0}, 1065062782b3Schristos {ACPI_DMT_UINT16, ACPI_MCFG0_OFFSET (PciSegment), "Segment Group Number", 0}, 1066062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCFG0_OFFSET (StartBusNumber), "Start Bus Number", 0}, 1067062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCFG0_OFFSET (EndBusNumber), "End Bus Number", 0}, 1068062782b3Schristos {ACPI_DMT_UINT32, ACPI_MCFG0_OFFSET (Reserved), "Reserved", 0}, 1069062782b3Schristos ACPI_DMT_TERMINATOR 1070062782b3Schristos }; 1071062782b3Schristos 1072062782b3Schristos 1073062782b3Schristos /******************************************************************************* 1074062782b3Schristos * 1075062782b3Schristos * MCHI - Management Controller Host Interface table 1076062782b3Schristos * 1077062782b3Schristos ******************************************************************************/ 1078062782b3Schristos 1079062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[] = 1080062782b3Schristos { 1081062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (InterfaceType), "Interface Type", 0}, 1082062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (Protocol), "Protocol", 0}, 1083062782b3Schristos {ACPI_DMT_UINT64, ACPI_MCHI_OFFSET (ProtocolData), "Protocol Data", 0}, 1084062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (InterruptType), "Interrupt Type", 0}, 1085062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (Gpe), "Gpe", 0}, 1086062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (PciDeviceFlag), "Pci Device Flag", 0}, 1087062782b3Schristos {ACPI_DMT_UINT32, ACPI_MCHI_OFFSET (GlobalInterrupt), "Global Interrupt", 0}, 1088062782b3Schristos {ACPI_DMT_GAS, ACPI_MCHI_OFFSET (ControlRegister), "Control Register", 0}, 1089062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (PciSegment), "Pci Segment", 0}, 1090062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (PciBus), "Pci Bus", 0}, 1091062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (PciDevice), "Pci Device", 0}, 1092062782b3Schristos {ACPI_DMT_UINT8, ACPI_MCHI_OFFSET (PciFunction), "Pci Function", 0}, 1093062782b3Schristos ACPI_DMT_TERMINATOR 1094062782b3Schristos }; 1095062782b3Schristos 1096046a2985Schristos /******************************************************************************* 1097046a2985Schristos * 1098046a2985Schristos * MPAM - Memory System Resource Partitioning and Monitoring Tables 1099046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. December 2022. 1100046a2985Schristos ******************************************************************************/ 1101046a2985Schristos 1102046a2985Schristos /* MPAM subtables */ 1103046a2985Schristos 1104046a2985Schristos /* 0: MPAM Resource Node Structure - A root MSC table. 1105046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 4: MPAM MSC node body. 1106046a2985Schristos */ 1107046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam0[] = 1108046a2985Schristos { 1109046a2985Schristos {ACPI_DMT_UINT16, ACPI_MPAM0_OFFSET (Length), "Length", 0}, 1110046a2985Schristos {ACPI_DMT_UINT8, ACPI_MPAM0_OFFSET (InterfaceType), "Interface type", 0}, 1111046a2985Schristos {ACPI_DMT_UINT8, ACPI_MPAM0_OFFSET (Reserved), "Reserved", 0}, 1112046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Identifier), "Identifier", 0}, 1113046a2985Schristos {ACPI_DMT_UINT64, ACPI_MPAM0_OFFSET (BaseAddress), "Base address", 0}, 1114046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (MMIOSize), "MMIO size", 0}, 1115046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterrupt), "Overflow interrupt", 0}, 1116046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterruptFlags), "Overflow interrupt flags", 0}, 1117046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Reserved1), "Reserved1", 0}, 1118046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterruptAffinity), "Overflow interrupt affinity", 0}, 1119046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterrupt), "Error interrupt", 0}, 1120046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterruptFlags), "Error interrupt flags", 0}, 1121046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Reserved2), "Reserved2", 0}, 1122046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterruptAffinity), "Error interrupt affinity", 0}, 1123046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (MaxNrdyUsec), "MAX_NRDY_USEC", 0}, 1124046a2985Schristos {ACPI_DMT_NAME8, ACPI_MPAM0_OFFSET (HardwareIdLinkedDevice), "Hardware ID of linked device", 0}, 1125046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (InstanceIdLinkedDevice), "Instance ID of linked device", 0}, 1126*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (NumResourceNodes), "Number of resource nodes", 0}, 1127046a2985Schristos 1128046a2985Schristos ACPI_DMT_TERMINATOR 1129046a2985Schristos }; 1130046a2985Schristos 1131046a2985Schristos /* 1: MPAM Resource (RIS) Node Structure - A subtable of MSC Nodes. 1132046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 9: Resource node. 1133046a2985Schristos */ 1134046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1[] = 1135046a2985Schristos { 1136046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM1_OFFSET (Identifier), "Identifier", 0}, 1137046a2985Schristos {ACPI_DMT_UINT8, ACPI_MPAM1_OFFSET (RISIndex), "RIS Index", 0}, 1138046a2985Schristos {ACPI_DMT_UINT16, ACPI_MPAM1_OFFSET (Reserved1), "Reserved1", 0}, 1139046a2985Schristos {ACPI_DMT_MPAM_LOCATOR, ACPI_MPAM1_OFFSET (LocatorType), "Locator type", 0}, 1140046a2985Schristos ACPI_DMT_TERMINATOR 1141046a2985Schristos }; 1142046a2985Schristos 1143046a2985Schristos /* An RIS field part of the RIS subtable */ 1144046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1Deps[] = 1145046a2985Schristos { 1146046a2985Schristos {ACPI_DMT_UINT32, 0, "Number of functional dependencies", 0}, 1147046a2985Schristos ACPI_DMT_TERMINATOR 1148046a2985Schristos }; 1149046a2985Schristos 1150046a2985Schristos /* 1A: MPAM Processor cache locator descriptor. A subtable of RIS. 1151046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 13. 1152046a2985Schristos */ 1153046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1A[] = 1154046a2985Schristos { 1155046a2985Schristos {ACPI_DMT_UINT64, ACPI_MPAM1A_OFFSET (CacheReference), "Cache reference", 0}, 1156046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM1A_OFFSET (Reserved), "Reserved", 0}, 1157*c7960b37Schristos ACPI_DMT_TERMINATOR 1158046a2985Schristos }; 1159046a2985Schristos 1160046a2985Schristos /* 1B: MPAM Memory locator descriptor. A subtable of RIS. 1161046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 14. 1162046a2985Schristos */ 1163046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1B[] = 1164046a2985Schristos { 1165046a2985Schristos {ACPI_DMT_UINT64, ACPI_MPAM1B_OFFSET (ProximityDomain), "Proximity domain", 0}, 1166046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM1B_OFFSET (Reserved), "Reserved", 0}, 1167*c7960b37Schristos ACPI_DMT_TERMINATOR 1168046a2985Schristos }; 1169046a2985Schristos 1170046a2985Schristos /* 1C: MPAM SMMU locator descriptor. A subtable of RIS. 1171046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 15. 1172046a2985Schristos */ 1173046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1C[] = 1174046a2985Schristos { 1175046a2985Schristos {ACPI_DMT_UINT64, ACPI_MPAM1C_OFFSET (SmmuInterface), "SMMU Interface", 0}, 1176046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM1C_OFFSET (Reserved), "Reserved", 0}, 1177*c7960b37Schristos ACPI_DMT_TERMINATOR 1178046a2985Schristos }; 1179046a2985Schristos 1180046a2985Schristos /* 1D: MPAM Memory-side cache locator descriptor. A subtable of RIS. 1181046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 16. 1182046a2985Schristos */ 1183046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1D[] = 1184046a2985Schristos { 1185*c7960b37Schristos {ACPI_DMT_UINT56, ACPI_MPAM1D_OFFSET (Reserved), "Reserved", 0}, 1186046a2985Schristos {ACPI_DMT_UINT8, ACPI_MPAM1D_OFFSET (Level), "Level", 0}, 1187046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM1D_OFFSET (Reference), "Reference", 0}, 1188*c7960b37Schristos ACPI_DMT_TERMINATOR 1189046a2985Schristos }; 1190046a2985Schristos 1191046a2985Schristos /* 1E: MPAM ACPI device locator descriptor. A subtable of RIS. 1192046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 17. 1193046a2985Schristos */ 1194046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1E[] = 1195046a2985Schristos { 1196046a2985Schristos {ACPI_DMT_UINT64, ACPI_MPAM1E_OFFSET (AcpiHwId), "ACPI Hardware ID", 0}, 1197046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM1E_OFFSET (AcpiUniqueId), "ACPI Unique ID", 0}, 1198*c7960b37Schristos ACPI_DMT_TERMINATOR 1199046a2985Schristos }; 1200046a2985Schristos 1201046a2985Schristos /* 1F: MPAM Interconnect locator descriptor. A subtable of RIS. 1202046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 18. 1203046a2985Schristos */ 1204046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1F[] = 1205046a2985Schristos { 1206046a2985Schristos {ACPI_DMT_UINT64, ACPI_MPAM1F_OFFSET (InterConnectDescTblOff), "Interconnect descriptor table offset", 0}, 1207046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM1F_OFFSET (Reserved), "Reserved", 0}, 1208*c7960b37Schristos ACPI_DMT_TERMINATOR 1209046a2985Schristos }; 1210046a2985Schristos 1211046a2985Schristos /* 1G: MPAM Locator structure. 1212046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 12. 1213046a2985Schristos */ 1214046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1G[] = 1215046a2985Schristos { 1216046a2985Schristos {ACPI_DMT_UINT64, ACPI_MPAM1G_OFFSET (Descriptor1), "Descriptor1", 0}, 1217046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM1G_OFFSET (Descriptor2), "Descriptor2", 0}, 1218*c7960b37Schristos ACPI_DMT_TERMINATOR 1219046a2985Schristos }; 1220046a2985Schristos 1221046a2985Schristos /* 2: MPAM Functional dependency descriptor. 1222046a2985Schristos * Arm's DEN0065 MPAM ACPI 2.0. Table 10. 1223046a2985Schristos */ 1224046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpam2[] = 1225046a2985Schristos { 1226046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM2_OFFSET (Producer), "Producer", 0}, 1227046a2985Schristos {ACPI_DMT_UINT32, ACPI_MPAM2_OFFSET (Reserved), "Reserved", 0}, 1228*c7960b37Schristos ACPI_DMT_TERMINATOR 1229046a2985Schristos }; 1230046a2985Schristos 1231062782b3Schristos 1232062782b3Schristos /******************************************************************************* 1233062782b3Schristos * 1234062782b3Schristos * MPST - Memory Power State Table 1235062782b3Schristos * 1236062782b3Schristos ******************************************************************************/ 1237062782b3Schristos 1238062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[] = 1239062782b3Schristos { 1240062782b3Schristos {ACPI_DMT_UINT8, ACPI_MPST_OFFSET (ChannelId), "Channel ID", 0}, 1241062782b3Schristos {ACPI_DMT_UINT24, ACPI_MPST_OFFSET (Reserved1[0]), "Reserved", 0}, 1242062782b3Schristos {ACPI_DMT_UINT16, ACPI_MPST_OFFSET (PowerNodeCount), "Power Node Count", 0}, 1243062782b3Schristos {ACPI_DMT_UINT16, ACPI_MPST_OFFSET (Reserved2), "Reserved", 0}, 1244062782b3Schristos ACPI_DMT_TERMINATOR 1245062782b3Schristos }; 1246062782b3Schristos 1247062782b3Schristos /* MPST subtables */ 1248062782b3Schristos 1249062782b3Schristos /* 0: Memory Power Node Structure */ 1250062782b3Schristos 1251062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[] = 1252062782b3Schristos { 1253062782b3Schristos {ACPI_DMT_UINT8, ACPI_MPST0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 1254062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MPST0_FLAG_OFFSET (Flags,0), "Node Enabled", 0}, 1255062782b3Schristos {ACPI_DMT_FLAG1, ACPI_MPST0_FLAG_OFFSET (Flags,0), "Power Managed", 0}, 1256062782b3Schristos {ACPI_DMT_FLAG2, ACPI_MPST0_FLAG_OFFSET (Flags,0), "Hot Plug Capable", 0}, 1257062782b3Schristos 1258062782b3Schristos {ACPI_DMT_UINT8, ACPI_MPST0_OFFSET (Reserved1), "Reserved", 0}, 1259062782b3Schristos {ACPI_DMT_UINT16, ACPI_MPST0_OFFSET (NodeId), "Node ID", 0}, 1260062782b3Schristos {ACPI_DMT_UINT32, ACPI_MPST0_OFFSET (Length), "Length", 0}, 1261062782b3Schristos {ACPI_DMT_UINT64, ACPI_MPST0_OFFSET (RangeAddress), "Range Address", 0}, 1262062782b3Schristos {ACPI_DMT_UINT64, ACPI_MPST0_OFFSET (RangeLength), "Range Length", 0}, 1263062782b3Schristos {ACPI_DMT_UINT32, ACPI_MPST0_OFFSET (NumPowerStates), "Num Power States", 0}, 1264062782b3Schristos {ACPI_DMT_UINT32, ACPI_MPST0_OFFSET (NumPhysicalComponents), "Num Physical Components", 0}, 1265062782b3Schristos ACPI_DMT_TERMINATOR 1266062782b3Schristos }; 1267062782b3Schristos 1268062782b3Schristos /* 0A: Sub-subtable - Memory Power State Structure (follows Memory Power Node above) */ 1269062782b3Schristos 1270062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[] = 1271062782b3Schristos { 1272062782b3Schristos {ACPI_DMT_UINT8, ACPI_MPST0A_OFFSET (PowerState), "Power State", 0}, 1273062782b3Schristos {ACPI_DMT_UINT8, ACPI_MPST0A_OFFSET (InfoIndex), "InfoIndex", 0}, 1274062782b3Schristos ACPI_DMT_TERMINATOR 1275062782b3Schristos }; 1276062782b3Schristos 1277062782b3Schristos /* 0B: Sub-subtable - Physical Component ID Structure (follows Memory Power State(s) above) */ 1278062782b3Schristos 1279062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[] = 1280062782b3Schristos { 1281062782b3Schristos {ACPI_DMT_UINT16, ACPI_MPST0B_OFFSET (ComponentId), "Component Id", 0}, 1282062782b3Schristos ACPI_DMT_TERMINATOR 1283062782b3Schristos }; 1284062782b3Schristos 1285062782b3Schristos /* 01: Power Characteristics Count (follows all Power Node(s) above) */ 1286062782b3Schristos 1287062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[] = 1288062782b3Schristos { 1289062782b3Schristos {ACPI_DMT_UINT16, ACPI_MPST1_OFFSET (CharacteristicsCount), "Characteristics Count", 0}, 1290062782b3Schristos {ACPI_DMT_UINT16, ACPI_MPST1_OFFSET (Reserved), "Reserved", 0}, 1291062782b3Schristos ACPI_DMT_TERMINATOR 1292062782b3Schristos }; 1293062782b3Schristos 1294062782b3Schristos /* 02: Memory Power State Characteristics Structure */ 1295062782b3Schristos 1296062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[] = 1297062782b3Schristos { 1298062782b3Schristos {ACPI_DMT_UINT8, ACPI_MPST2_OFFSET (StructureId), "Structure ID", 0}, 1299062782b3Schristos {ACPI_DMT_UINT8, ACPI_MPST2_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 1300062782b3Schristos {ACPI_DMT_FLAG0, ACPI_MPST2_FLAG_OFFSET (Flags,0), "Memory Preserved", 0}, 1301062782b3Schristos {ACPI_DMT_FLAG1, ACPI_MPST2_FLAG_OFFSET (Flags,0), "Auto Entry", 0}, 1302062782b3Schristos {ACPI_DMT_FLAG2, ACPI_MPST2_FLAG_OFFSET (Flags,0), "Auto Exit", 0}, 1303062782b3Schristos 1304062782b3Schristos {ACPI_DMT_UINT16, ACPI_MPST2_OFFSET (Reserved1), "Reserved", 0}, 1305062782b3Schristos {ACPI_DMT_UINT32, ACPI_MPST2_OFFSET (AveragePower), "Average Power", 0}, 1306062782b3Schristos {ACPI_DMT_UINT32, ACPI_MPST2_OFFSET (PowerSaving), "Power Saving", 0}, 1307062782b3Schristos {ACPI_DMT_UINT64, ACPI_MPST2_OFFSET (ExitLatency), "Exit Latency", 0}, 1308062782b3Schristos {ACPI_DMT_UINT64, ACPI_MPST2_OFFSET (Reserved2), "Reserved", 0}, 1309062782b3Schristos ACPI_DMT_TERMINATOR 1310062782b3Schristos }; 1311062782b3Schristos 1312062782b3Schristos 1313062782b3Schristos /******************************************************************************* 1314062782b3Schristos * 1315062782b3Schristos * MSCT - Maximum System Characteristics Table (ACPI 4.0) 1316062782b3Schristos * 1317062782b3Schristos ******************************************************************************/ 1318062782b3Schristos 1319062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[] = 1320062782b3Schristos { 1321062782b3Schristos {ACPI_DMT_UINT32, ACPI_MSCT_OFFSET (ProximityOffset), "Proximity Offset", 0}, 1322062782b3Schristos {ACPI_DMT_UINT32, ACPI_MSCT_OFFSET (MaxProximityDomains), "Max Proximity Domains", 0}, 1323062782b3Schristos {ACPI_DMT_UINT32, ACPI_MSCT_OFFSET (MaxClockDomains), "Max Clock Domains", 0}, 1324062782b3Schristos {ACPI_DMT_UINT64, ACPI_MSCT_OFFSET (MaxAddress), "Max Physical Address", 0}, 1325062782b3Schristos ACPI_DMT_TERMINATOR 1326062782b3Schristos }; 1327062782b3Schristos 1328062782b3Schristos /* Subtable - Maximum Proximity Domain Information. Version 1 */ 1329062782b3Schristos 1330062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[] = 1331062782b3Schristos { 1332062782b3Schristos {ACPI_DMT_UINT8, ACPI_MSCT0_OFFSET (Revision), "Revision", 0}, 1333062782b3Schristos {ACPI_DMT_UINT8, ACPI_MSCT0_OFFSET (Length), "Length", DT_LENGTH}, 1334062782b3Schristos {ACPI_DMT_UINT32, ACPI_MSCT0_OFFSET (RangeStart), "Domain Range Start", 0}, 1335062782b3Schristos {ACPI_DMT_UINT32, ACPI_MSCT0_OFFSET (RangeEnd), "Domain Range End", 0}, 1336062782b3Schristos {ACPI_DMT_UINT32, ACPI_MSCT0_OFFSET (ProcessorCapacity), "Processor Capacity", 0}, 1337062782b3Schristos {ACPI_DMT_UINT64, ACPI_MSCT0_OFFSET (MemoryCapacity), "Memory Capacity", 0}, 1338062782b3Schristos ACPI_DMT_TERMINATOR 1339062782b3Schristos }; 1340062782b3Schristos 1341062782b3Schristos 1342062782b3Schristos /******************************************************************************* 1343062782b3Schristos * 1344062782b3Schristos * NFIT - NVDIMM Firmware Interface Table and Subtables - (ACPI 6.0) 1345062782b3Schristos * 1346062782b3Schristos ******************************************************************************/ 1347062782b3Schristos 1348062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[] = 1349062782b3Schristos { 1350062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT_OFFSET (Reserved), "Reserved", 0}, 1351062782b3Schristos ACPI_DMT_TERMINATOR 1352062782b3Schristos }; 1353062782b3Schristos 1354062782b3Schristos /* Common Subtable header */ 1355062782b3Schristos 1356062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfitHdr[] = 1357062782b3Schristos { 1358062782b3Schristos {ACPI_DMT_NFIT, ACPI_NFITH_OFFSET (Type), "Subtable Type", 0}, 1359062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFITH_OFFSET (Length), "Length", DT_LENGTH}, 1360062782b3Schristos ACPI_DMT_TERMINATOR 1361062782b3Schristos }; 1362062782b3Schristos 1363062782b3Schristos /* 0: System Physical Address Range Structure */ 1364062782b3Schristos 1365062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[] = 1366062782b3Schristos { 1367062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT0_OFFSET (RangeIndex), "Range Index", 0}, 1368062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT0_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 1369062782b3Schristos {ACPI_DMT_FLAG0, ACPI_NFIT0_FLAG_OFFSET (Flags,0), "Add/Online Operation Only", 0}, 1370062782b3Schristos {ACPI_DMT_FLAG1, ACPI_NFIT0_FLAG_OFFSET (Flags,0), "Proximity Domain Valid", 0}, 137146a330b4Schristos {ACPI_DMT_FLAG2, ACPI_NFIT0_FLAG_OFFSET (Flags,0), "Location Cookie Valid", 0}, 1372062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT0_OFFSET (Reserved), "Reserved", 0}, 1373062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT0_OFFSET (ProximityDomain), "Proximity Domain", 0}, 137494783addSchristos {ACPI_DMT_UUID, ACPI_NFIT0_OFFSET (RangeGuid[0]), "Region Type GUID", 0}, 1375062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (Address), "Address Range Base", 0}, 1376062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (Length), "Address Range Length", 0}, 1377062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (MemoryMapping), "Memory Map Attribute", 0}, 137846a330b4Schristos {ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (LocationCookie), "Location Cookie", 0}, /* ACPI 6.4 */ 1379062782b3Schristos ACPI_DMT_TERMINATOR 1380062782b3Schristos }; 1381062782b3Schristos 1382062782b3Schristos /* 1: Memory Device to System Address Range Map Structure */ 1383062782b3Schristos 1384062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit1[] = 1385062782b3Schristos { 1386062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT1_OFFSET (DeviceHandle), "Device Handle", 0}, 1387062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT1_OFFSET (PhysicalId), "Physical Id", 0}, 1388062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT1_OFFSET (RegionId), "Region Id", 0}, 1389062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT1_OFFSET (RangeIndex), "Range Index", 0}, 1390062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT1_OFFSET (RegionIndex), "Control Region Index", 0}, 1391062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT1_OFFSET (RegionSize), "Region Size", 0}, 1392062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT1_OFFSET (RegionOffset), "Region Offset", 0}, 1393062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT1_OFFSET (Address), "Address Region Base", 0}, 1394062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT1_OFFSET (InterleaveIndex), "Interleave Index", 0}, 1395062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT1_OFFSET (InterleaveWays), "Interleave Ways", 0}, 1396062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT1_OFFSET (Flags), "Flags", DT_FLAG}, 1397062782b3Schristos {ACPI_DMT_FLAG0, ACPI_NFIT1_FLAG_OFFSET (Flags,0), "Save to device failed", 0}, 1398062782b3Schristos {ACPI_DMT_FLAG1, ACPI_NFIT1_FLAG_OFFSET (Flags,0), "Restore from device failed", 0}, 1399062782b3Schristos {ACPI_DMT_FLAG2, ACPI_NFIT1_FLAG_OFFSET (Flags,0), "Platform flush failed", 0}, 1400062782b3Schristos {ACPI_DMT_FLAG3, ACPI_NFIT1_FLAG_OFFSET (Flags,0), "Device not armed", 0}, 1401062782b3Schristos {ACPI_DMT_FLAG4, ACPI_NFIT1_FLAG_OFFSET (Flags,0), "Health events observed", 0}, 1402062782b3Schristos {ACPI_DMT_FLAG5, ACPI_NFIT1_FLAG_OFFSET (Flags,0), "Health events enabled", 0}, 1403062782b3Schristos {ACPI_DMT_FLAG6, ACPI_NFIT1_FLAG_OFFSET (Flags,0), "Mapping failed", 0}, 1404062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT1_OFFSET (Reserved), "Reserved", 0}, 1405062782b3Schristos ACPI_DMT_TERMINATOR 1406062782b3Schristos }; 1407062782b3Schristos 1408062782b3Schristos /* 2: Interleave Structure */ 1409062782b3Schristos 1410062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2[] = 1411062782b3Schristos { 1412062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT2_OFFSET (InterleaveIndex), "Interleave Index", 0}, 1413062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT2_OFFSET (Reserved), "Reserved", 0}, 1414062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT2_OFFSET (LineCount), "Line Count", 0}, 1415062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT2_OFFSET (LineSize), "Line Size", 0}, 1416062782b3Schristos ACPI_DMT_TERMINATOR 1417062782b3Schristos }; 1418062782b3Schristos 1419062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2a[] = 1420062782b3Schristos { 1421062782b3Schristos {ACPI_DMT_UINT32, 0, "Line Offset", DT_OPTIONAL}, 1422062782b3Schristos ACPI_DMT_TERMINATOR 1423062782b3Schristos }; 1424062782b3Schristos 1425062782b3Schristos /* 3: SMBIOS Management Information Structure */ 1426062782b3Schristos 1427062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3[] = 1428062782b3Schristos { 1429062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT3_OFFSET (Reserved), "Reserved", 0}, 1430062782b3Schristos ACPI_DMT_TERMINATOR 1431062782b3Schristos }; 1432062782b3Schristos 1433062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3a[] = 1434062782b3Schristos { 1435062782b3Schristos {ACPI_DMT_RAW_BUFFER, 0, "SMBIOS Table Entries", DT_OPTIONAL}, 1436062782b3Schristos ACPI_DMT_TERMINATOR 1437062782b3Schristos }; 1438062782b3Schristos 1439062782b3Schristos /* 4: NVDIMM Control Region Structure */ 1440062782b3Schristos 1441062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit4[] = 1442062782b3Schristos { 1443062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (RegionIndex), "Region Index", 0}, 1444062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (VendorId), "Vendor Id", 0}, 1445062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (DeviceId), "Device Id", 0}, 1446062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (RevisionId), "Revision Id", 0}, 1447062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (SubsystemVendorId), "Subsystem Vendor Id", 0}, 1448062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (SubsystemDeviceId), "Subsystem Device Id", 0}, 1449062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (SubsystemRevisionId), "Subsystem Revision Id", 0}, 1450062782b3Schristos {ACPI_DMT_UINT8, ACPI_NFIT4_OFFSET (ValidFields), "Valid Fields", 0}, 1451062782b3Schristos {ACPI_DMT_UINT8, ACPI_NFIT4_OFFSET (ManufacturingLocation), "Manufacturing Location", 0}, 1452062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (ManufacturingDate), "Manufacturing Date", 0}, 1453062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (Reserved[0]), "Reserved", 0}, 1454062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT4_OFFSET (SerialNumber), "Serial Number", 0}, 1455062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (Code), "Code", 0}, 1456062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (Windows), "Window Count", 0}, 1457062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT4_OFFSET (WindowSize), "Window Size", 0}, 1458062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT4_OFFSET (CommandOffset), "Command Offset", 0}, 1459062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT4_OFFSET (CommandSize), "Command Size", 0}, 1460062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT4_OFFSET (StatusOffset), "Status Offset", 0}, 1461062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT4_OFFSET (StatusSize), "Status Size", 0}, 1462062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT4_OFFSET (Flags), "Flags", DT_FLAG}, 1463062782b3Schristos {ACPI_DMT_FLAG0, ACPI_NFIT4_FLAG_OFFSET (Flags,0), "Windows buffered", 0}, 1464062782b3Schristos {ACPI_DMT_UINT48, ACPI_NFIT4_OFFSET (Reserved1[0]), "Reserved1", 0}, 1465062782b3Schristos ACPI_DMT_TERMINATOR 1466062782b3Schristos }; 1467062782b3Schristos 1468062782b3Schristos /* 5: NVDIMM Block Data Window Region Structure */ 1469062782b3Schristos 1470062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[] = 1471062782b3Schristos { 1472062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT5_OFFSET (RegionIndex), "Region Index", 0}, 1473062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT5_OFFSET (Windows), "Window Count", 0}, 1474062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT5_OFFSET (Offset), "Offset", 0}, 1475062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT5_OFFSET (Size), "Size", 0}, 1476062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT5_OFFSET (Capacity), "Capacity", 0}, 1477062782b3Schristos {ACPI_DMT_UINT64, ACPI_NFIT5_OFFSET (StartAddress), "Start Address", 0}, 1478062782b3Schristos ACPI_DMT_TERMINATOR 1479062782b3Schristos }; 1480062782b3Schristos 1481062782b3Schristos /* 6: Flush Hint Address Structure */ 1482062782b3Schristos 1483062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[] = 1484062782b3Schristos { 1485062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT6_OFFSET (DeviceHandle), "Device Handle", 0}, 1486062782b3Schristos {ACPI_DMT_UINT16, ACPI_NFIT6_OFFSET (HintCount), "Hint Count", 0}, 1487062782b3Schristos {ACPI_DMT_UINT48, ACPI_NFIT6_OFFSET (Reserved[0]), "Reserved", 0}, 1488062782b3Schristos ACPI_DMT_TERMINATOR 1489062782b3Schristos }; 1490062782b3Schristos 1491062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[] = 1492062782b3Schristos { 1493062782b3Schristos {ACPI_DMT_UINT64, 0, "Hint Address", DT_OPTIONAL}, 1494062782b3Schristos ACPI_DMT_TERMINATOR 1495062782b3Schristos }; 1496062782b3Schristos 1497062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[] = 1498062782b3Schristos { 1499062782b3Schristos {ACPI_DMT_UINT8, ACPI_NFIT7_OFFSET (HighestCapability), "Highest Capability", 0}, 1500062782b3Schristos {ACPI_DMT_UINT24, ACPI_NFIT7_OFFSET (Reserved[0]), "Reserved", 0}, 1501062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT7_OFFSET (Capabilities), "Capabilities (decoded below)", DT_FLAG}, 1502062782b3Schristos {ACPI_DMT_FLAG0, ACPI_NFIT7_FLAG_OFFSET (Capabilities,0), "Cache Flush to NVDIMM", 0}, 15036c559248Schristos {ACPI_DMT_FLAG1, ACPI_NFIT7_FLAG_OFFSET (Capabilities,0), "Memory Flush to NVDIMM", 0}, 1504062782b3Schristos {ACPI_DMT_FLAG2, ACPI_NFIT7_FLAG_OFFSET (Capabilities,0), "Memory Mirroring", 0}, 1505062782b3Schristos {ACPI_DMT_UINT32, ACPI_NFIT7_OFFSET (Reserved2), "Reserved", 0}, 1506062782b3Schristos ACPI_DMT_TERMINATOR 1507062782b3Schristos }; 1508062782b3Schristos 1509062782b3Schristos 1510062782b3Schristos /******************************************************************************* 1511062782b3Schristos * 1512062782b3Schristos * PCCT - Platform Communications Channel Table (ACPI 5.0) 1513062782b3Schristos * 1514062782b3Schristos ******************************************************************************/ 1515062782b3Schristos 1516062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[] = 1517062782b3Schristos { 1518062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, 1519062782b3Schristos {ACPI_DMT_FLAG0, ACPI_PCCT_FLAG_OFFSET (Flags,0), "Platform", 0}, 1520062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT_OFFSET (Reserved), "Reserved", 0}, 1521062782b3Schristos ACPI_DMT_TERMINATOR 1522062782b3Schristos }; 1523062782b3Schristos 1524062782b3Schristos /* PCCT subtables */ 1525062782b3Schristos 1526062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[] = 1527062782b3Schristos { 1528062782b3Schristos {ACPI_DMT_PCCT, ACPI_PCCT0_OFFSET (Header.Type), "Subtable Type", 0}, 1529062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT0_OFFSET (Header.Length), "Length", DT_LENGTH}, 1530062782b3Schristos ACPI_DMT_TERMINATOR 1531062782b3Schristos }; 1532062782b3Schristos 1533062782b3Schristos /* 0: Generic Communications Subspace */ 1534062782b3Schristos 1535062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[] = 1536062782b3Schristos { 1537062782b3Schristos {ACPI_DMT_UINT48, ACPI_PCCT0_OFFSET (Reserved[0]), "Reserved", 0}, 1538062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT0_OFFSET (BaseAddress), "Base Address", 0}, 1539062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT0_OFFSET (Length), "Address Length", 0}, 1540062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT0_OFFSET (DoorbellRegister), "Doorbell Register", 0}, 1541062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT0_OFFSET (PreserveMask), "Preserve Mask", 0}, 1542062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT0_OFFSET (WriteMask), "Write Mask", 0}, 1543062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT0_OFFSET (Latency), "Command Latency", 0}, 1544062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT0_OFFSET (MaxAccessRate), "Maximum Access Rate", 0}, 1545062782b3Schristos {ACPI_DMT_UINT16, ACPI_PCCT0_OFFSET (MinTurnaroundTime), "Minimum Turnaround Time", 0}, 1546062782b3Schristos ACPI_DMT_TERMINATOR 1547062782b3Schristos }; 1548062782b3Schristos 1549062782b3Schristos /* 1: HW-reduced Communications Subspace (ACPI 5.1) */ 1550062782b3Schristos 1551062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[] = 1552062782b3Schristos { 1553062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT1_OFFSET (PlatformInterrupt), "Platform Interrupt", 0}, 1554062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT1_OFFSET (Flags), "Flags (Decoded Below)", DT_FLAG}, 1555062782b3Schristos {ACPI_DMT_FLAG0, ACPI_PCCT1_FLAG_OFFSET (Flags,0), "Polarity", 0}, 1556062782b3Schristos {ACPI_DMT_FLAG1, ACPI_PCCT1_FLAG_OFFSET (Flags,0), "Mode", 0}, 1557062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT1_OFFSET (Reserved), "Reserved", 0}, 1558062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT1_OFFSET (BaseAddress), "Base Address", 0}, 1559062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT1_OFFSET (Length), "Address Length", 0}, 1560062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT1_OFFSET (DoorbellRegister), "Doorbell Register", 0}, 1561062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT1_OFFSET (PreserveMask), "Preserve Mask", 0}, 1562062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT1_OFFSET (WriteMask), "Write Mask", 0}, 1563062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT1_OFFSET (Latency), "Command Latency", 0}, 1564062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT1_OFFSET (MaxAccessRate), "Maximum Access Rate", 0}, 1565062782b3Schristos {ACPI_DMT_UINT16, ACPI_PCCT1_OFFSET (MinTurnaroundTime), "Minimum Turnaround Time", 0}, 1566062782b3Schristos ACPI_DMT_TERMINATOR 1567062782b3Schristos }; 1568062782b3Schristos 1569062782b3Schristos /* 2: HW-reduced Communications Subspace Type 2 (ACPI 6.1) */ 1570062782b3Schristos 1571062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPcct2[] = 1572062782b3Schristos { 1573062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT2_OFFSET (PlatformInterrupt), "Platform Interrupt", 0}, 1574062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT2_OFFSET (Flags), "Flags (Decoded Below)", DT_FLAG}, 1575062782b3Schristos {ACPI_DMT_FLAG0, ACPI_PCCT2_FLAG_OFFSET (Flags,0), "Polarity", 0}, 1576062782b3Schristos {ACPI_DMT_FLAG1, ACPI_PCCT2_FLAG_OFFSET (Flags,0), "Mode", 0}, 1577062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT2_OFFSET (Reserved), "Reserved", 0}, 1578062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT2_OFFSET (BaseAddress), "Base Address", 0}, 1579062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT2_OFFSET (Length), "Address Length", 0}, 1580062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT2_OFFSET (DoorbellRegister), "Doorbell Register", 0}, 1581062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT2_OFFSET (PreserveMask), "Preserve Mask", 0}, 1582062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT2_OFFSET (WriteMask), "Write Mask", 0}, 1583062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT2_OFFSET (Latency), "Command Latency", 0}, 1584062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT2_OFFSET (MaxAccessRate), "Maximum Access Rate", 0}, 1585062782b3Schristos {ACPI_DMT_UINT16, ACPI_PCCT2_OFFSET (MinTurnaroundTime), "Minimum Turnaround Time", 0}, 1586062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT2_OFFSET (PlatformAckRegister), "Platform ACK Register", 0}, 1587062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT2_OFFSET (AckPreserveMask), "ACK Preserve Mask", 0}, 1588062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT2_OFFSET (AckWriteMask), "ACK Write Mask", 0}, 1589062782b3Schristos ACPI_DMT_TERMINATOR 1590062782b3Schristos }; 1591062782b3Schristos 1592062782b3Schristos /* 3: Extended PCC Master Subspace Type 3 (ACPI 6.2) */ 1593062782b3Schristos 1594062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPcct3[] = 1595062782b3Schristos { 1596062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT3_OFFSET (PlatformInterrupt), "Platform Interrupt", 0}, 1597062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT3_OFFSET (Flags), "Flags (Decoded Below)", DT_FLAG}, 1598062782b3Schristos {ACPI_DMT_FLAG0, ACPI_PCCT3_FLAG_OFFSET (Flags,0), "Polarity", 0}, 1599062782b3Schristos {ACPI_DMT_FLAG1, ACPI_PCCT3_FLAG_OFFSET (Flags,0), "Mode", 0}, 1600062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT3_OFFSET (Reserved1), "Reserved", 0}, 1601062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (BaseAddress), "Base Address", 0}, 1602062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT3_OFFSET (Length), "Address Length", 0}, 1603062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT3_OFFSET (DoorbellRegister), "Doorbell Register", 0}, 1604062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (PreserveMask), "Preserve Mask", 0}, 1605062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (WriteMask), "Write Mask", 0}, 1606062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT3_OFFSET (Latency), "Command Latency", 0}, 1607062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT3_OFFSET (MaxAccessRate), "Maximum Access Rate", 0}, 1608062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT3_OFFSET (MinTurnaroundTime), "Minimum Turnaround Time", 0}, 1609062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT3_OFFSET (PlatformAckRegister), "Platform ACK Register", 0}, 1610062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (AckPreserveMask), "ACK Preserve Mask", 0}, 1611062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (AckSetMask), "ACK Set Mask", 0}, 1612062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (Reserved2), "Reserved", 0}, 1613062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT3_OFFSET (CmdCompleteRegister), "Command Complete Register", 0}, 1614062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (CmdCompleteMask), "Command Complete Check Mask", 0}, 1615062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT3_OFFSET (CmdUpdateRegister), "Command Update Register", 0}, 1616062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (CmdUpdatePreserveMask), "Command Update Preserve Mask", 0}, 1617062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (CmdUpdateSetMask), "Command Update Set Mask", 0}, 1618062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT3_OFFSET (ErrorStatusRegister), "Error Status Register", 0}, 1619062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT3_OFFSET (ErrorStatusMask), "Error Status Mask", 0}, 1620062782b3Schristos ACPI_DMT_TERMINATOR 1621062782b3Schristos }; 1622062782b3Schristos 1623062782b3Schristos /* 4: Extended PCC Slave Subspace Type 4 (ACPI 6.2) */ 1624062782b3Schristos 1625062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPcct4[] = 1626062782b3Schristos { 1627062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT4_OFFSET (PlatformInterrupt), "Platform Interrupt", 0}, 1628062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT4_OFFSET (Flags), "Flags (Decoded Below)", DT_FLAG}, 1629062782b3Schristos {ACPI_DMT_FLAG0, ACPI_PCCT4_FLAG_OFFSET (Flags,0), "Polarity", 0}, 1630062782b3Schristos {ACPI_DMT_FLAG1, ACPI_PCCT4_FLAG_OFFSET (Flags,0), "Mode", 0}, 1631062782b3Schristos {ACPI_DMT_UINT8, ACPI_PCCT4_OFFSET (Reserved1), "Reserved", 0}, 1632062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (BaseAddress), "Base Address", 0}, 1633062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT4_OFFSET (Length), "Address Length", 0}, 1634062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT4_OFFSET (DoorbellRegister), "Doorbell Register", 0}, 1635062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (PreserveMask), "Preserve Mask", 0}, 1636062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (WriteMask), "Write Mask", 0}, 1637062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT4_OFFSET (Latency), "Command Latency", 0}, 1638062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT4_OFFSET (MaxAccessRate), "Maximum Access Rate", 0}, 1639062782b3Schristos {ACPI_DMT_UINT32, ACPI_PCCT4_OFFSET (MinTurnaroundTime), "Minimum Turnaround Time", 0}, 1640062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT4_OFFSET (PlatformAckRegister), "Platform ACK Register", 0}, 1641062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (AckPreserveMask), "ACK Preserve Mask", 0}, 1642062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (AckSetMask), "ACK Set Mask", 0}, 1643062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (Reserved2), "Reserved", 0}, 1644062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT4_OFFSET (CmdCompleteRegister), "Command Complete Register", 0}, 1645062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (CmdCompleteMask), "Command Complete Check Mask", 0}, 1646062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT4_OFFSET (CmdUpdateRegister), "Command Update Register", 0}, 1647062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (CmdUpdatePreserveMask), "Command Update Preserve Mask", 0}, 1648062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (CmdUpdateSetMask), "Command Update Set Mask", 0}, 1649062782b3Schristos {ACPI_DMT_GAS, ACPI_PCCT4_OFFSET (ErrorStatusRegister), "Error Status Register", 0}, 1650062782b3Schristos {ACPI_DMT_UINT64, ACPI_PCCT4_OFFSET (ErrorStatusMask), "Error Status Mask", 0}, 1651062782b3Schristos ACPI_DMT_TERMINATOR 1652062782b3Schristos }; 1653062782b3Schristos 165446a330b4Schristos /* 5: HW Registers based Communications Subspace */ 165546a330b4Schristos 165646a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPcct5[] = 165746a330b4Schristos { 165846a330b4Schristos {ACPI_DMT_UINT16, ACPI_PCCT5_OFFSET (Version), "Version", 0}, 165946a330b4Schristos {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (BaseAddress), "Base Address", 0}, 166046a330b4Schristos {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (Length), "Length", 0}, 166146a330b4Schristos {ACPI_DMT_GAS, ACPI_PCCT5_OFFSET (DoorbellRegister), "Doorbell Register", 0}, 166246a330b4Schristos {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (DoorbellPreserve), "Preserve Mask", 0}, 166346a330b4Schristos {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (DoorbellWrite), "Write Mask", 0}, 166446a330b4Schristos {ACPI_DMT_GAS, ACPI_PCCT5_OFFSET (CmdCompleteRegister), "Command Complete Register", 0}, 166546a330b4Schristos {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (CmdCompleteMask), "Command Complete Check Mask", 0}, 166646a330b4Schristos {ACPI_DMT_GAS, ACPI_PCCT5_OFFSET (ErrorStatusRegister), "Error Status Register", 0}, 166746a330b4Schristos {ACPI_DMT_UINT64, ACPI_PCCT5_OFFSET (ErrorStatusMask), "Error Status Mask", 0}, 166846a330b4Schristos {ACPI_DMT_UINT32, ACPI_PCCT5_OFFSET (NominalLatency), "Nominal Latency", 0}, 166946a330b4Schristos {ACPI_DMT_UINT32, ACPI_PCCT5_OFFSET (MinTurnaroundTime), "Minimum Turnaround Time", 0}, 167046a330b4Schristos ACPI_DMT_TERMINATOR 167146a330b4Schristos }; 167246a330b4Schristos 1673062782b3Schristos 1674062782b3Schristos /******************************************************************************* 1675062782b3Schristos * 1676062782b3Schristos * PDTT - Platform Debug Trigger Table (ACPI 6.2) 1677062782b3Schristos * 1678062782b3Schristos ******************************************************************************/ 1679062782b3Schristos 1680062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt[] = 1681062782b3Schristos { 1682062782b3Schristos {ACPI_DMT_UINT8, ACPI_PDTT_OFFSET (TriggerCount), "Trigger Count", 0}, 1683062782b3Schristos {ACPI_DMT_UINT24, ACPI_PDTT_OFFSET (Reserved), "Reserved", 0}, 1684062782b3Schristos {ACPI_DMT_UINT32, ACPI_PDTT_OFFSET (ArrayOffset), "Array Offset", 0}, 1685062782b3Schristos ACPI_DMT_TERMINATOR 1686062782b3Schristos }; 1687062782b3Schristos 1688062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[] = 1689062782b3Schristos { 1690062782b3Schristos {ACPI_DMT_UINT8, ACPI_PDTT0_OFFSET (SubchannelId), "Subchannel Id", 0}, 1691062782b3Schristos {ACPI_DMT_UINT8, ACPI_PDTT0_OFFSET (Flags), "Flags (Decoded Below)", DT_FLAG}, 1692062782b3Schristos {ACPI_DMT_FLAG0, ACPI_PDTT0_FLAG_OFFSET (Flags,0), "Runtime Trigger", 0}, 1693062782b3Schristos {ACPI_DMT_FLAG1, ACPI_PDTT0_FLAG_OFFSET (Flags,0), "Wait for Completion", 0}, 169494783addSchristos {ACPI_DMT_FLAG2, ACPI_PDTT0_FLAG_OFFSET (Flags,0), "Trigger Order", 0}, 1695062782b3Schristos ACPI_DMT_TERMINATOR 1696062782b3Schristos }; 1697062782b3Schristos 1698062782b3Schristos 1699062782b3Schristos /******************************************************************************* 1700062782b3Schristos * 170146a330b4Schristos * PHAT - Platform Health Assessment Table (ACPI 6.4) 170246a330b4Schristos * 170346a330b4Schristos ******************************************************************************/ 170446a330b4Schristos 170582065f3bSchristos /* Common subtable header */ 170682065f3bSchristos 170746a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[] = 170846a330b4Schristos { 170946a330b4Schristos {ACPI_DMT_PHAT, ACPI_PHATH_OFFSET (Type), "Subtable Type", 0}, 171082065f3bSchristos {ACPI_DMT_UINT16, ACPI_PHATH_OFFSET (Length), "Length", DT_LENGTH}, 171146a330b4Schristos {ACPI_DMT_UINT8, ACPI_PHATH_OFFSET (Revision), "Revision", 0}, 171246a330b4Schristos ACPI_DMT_TERMINATOR 171346a330b4Schristos }; 171446a330b4Schristos 171546a330b4Schristos /* 0: Firmware version table */ 171646a330b4Schristos 171746a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[] = 171846a330b4Schristos { 171946a330b4Schristos {ACPI_DMT_UINT24, ACPI_PHAT0_OFFSET (Reserved), "Reserved", 0}, 172046a330b4Schristos {ACPI_DMT_UINT32, ACPI_PHAT0_OFFSET (ElementCount), "Element Count", 0}, 172146a330b4Schristos ACPI_DMT_TERMINATOR 172246a330b4Schristos }; 172346a330b4Schristos 172446a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[] = 172546a330b4Schristos { 172646a330b4Schristos {ACPI_DMT_UUID, ACPI_PHAT0A_OFFSET (Guid), "GUID", 0}, 172746a330b4Schristos {ACPI_DMT_UINT64, ACPI_PHAT0A_OFFSET (VersionValue), "Version Value", 0}, 172846a330b4Schristos {ACPI_DMT_UINT32, ACPI_PHAT0A_OFFSET (ProducerId), "Producer ID", 0}, 172946a330b4Schristos ACPI_DMT_TERMINATOR 173046a330b4Schristos }; 173146a330b4Schristos 173246a330b4Schristos /* 1: Firmware Health Data Record */ 173346a330b4Schristos 173446a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1[] = 173546a330b4Schristos { 173646a330b4Schristos {ACPI_DMT_UINT16, ACPI_PHAT1_OFFSET (Reserved), "Reserved", 0}, 173746a330b4Schristos {ACPI_DMT_UINT8, ACPI_PHAT1_OFFSET (Health), "Health", 0}, 173846a330b4Schristos {ACPI_DMT_UUID, ACPI_PHAT1_OFFSET (DeviceGuid), "Device GUID", 0}, 173982065f3bSchristos {ACPI_DMT_UINT32, ACPI_PHAT1_OFFSET (DeviceSpecificOffset), "Device-Specific Offset", 0}, 174046a330b4Schristos ACPI_DMT_TERMINATOR 174146a330b4Schristos }; 174246a330b4Schristos 174346a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1a[] = 174446a330b4Schristos { 174582065f3bSchristos {ACPI_DMT_UNICODE, 0, "Device Path", 0}, 174646a330b4Schristos ACPI_DMT_TERMINATOR 174746a330b4Schristos }; 174846a330b4Schristos 174946a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1b[] = 175046a330b4Schristos { 175182065f3bSchristos {ACPI_DMT_RAW_BUFFER, 0, "Device-Specific Data", DT_OPTIONAL}, 175246a330b4Schristos ACPI_DMT_TERMINATOR 175346a330b4Schristos }; 175446a330b4Schristos 175546a330b4Schristos 175646a330b4Schristos /******************************************************************************* 175746a330b4Schristos * 1758062782b3Schristos * PMTT - Platform Memory Topology Table 1759062782b3Schristos * 1760062782b3Schristos ******************************************************************************/ 1761062782b3Schristos 1762062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[] = 1763062782b3Schristos { 176446a330b4Schristos {ACPI_DMT_UINT32, ACPI_PMTT_OFFSET (MemoryDeviceCount), "Memory Device Count", 0}, 1765062782b3Schristos ACPI_DMT_TERMINATOR 1766062782b3Schristos }; 1767062782b3Schristos 1768062782b3Schristos /* Common Subtable header (one per Subtable) */ 1769062782b3Schristos 177046a330b4Schristos #define ACPI_DM_PMTT_HEADER \ 177146a330b4Schristos {ACPI_DMT_PMTT, ACPI_PMTTH_OFFSET (Type), "Subtable Type", 0}, \ 177246a330b4Schristos {ACPI_DMT_UINT8, ACPI_PMTTH_OFFSET (Reserved1), "Reserved", 0}, \ 177346a330b4Schristos {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Length), "Length", DT_LENGTH}, \ 177446a330b4Schristos {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Flags), "Flags (decoded below)", DT_FLAG}, \ 177546a330b4Schristos {ACPI_DMT_FLAG0, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Top-level Device", 0}, \ 177646a330b4Schristos {ACPI_DMT_FLAG1, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Physical Element", 0}, \ 177746a330b4Schristos {ACPI_DMT_FLAGS2, ACPI_PMTTH_FLAG_OFFSET (Flags,0), "Memory Type", 0}, \ 177846a330b4Schristos {ACPI_DMT_UINT16, ACPI_PMTTH_OFFSET (Reserved2), "Reserved", 0}, \ 177946a330b4Schristos {ACPI_DMT_UINT32, ACPI_PMTTH_OFFSET (MemoryDeviceCount), "Memory Device Count", 0} 1780062782b3Schristos 1781062782b3Schristos /* PMTT Subtables */ 1782062782b3Schristos 1783062782b3Schristos /* 0: Socket */ 1784062782b3Schristos 1785062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[] = 1786062782b3Schristos { 178746a330b4Schristos ACPI_DM_PMTT_HEADER, 1788062782b3Schristos {ACPI_DMT_UINT16, ACPI_PMTT0_OFFSET (SocketId), "Socket ID", 0}, 1789062782b3Schristos {ACPI_DMT_UINT16, ACPI_PMTT0_OFFSET (Reserved), "Reserved", 0}, 1790062782b3Schristos ACPI_DMT_TERMINATOR 1791062782b3Schristos }; 1792062782b3Schristos 1793062782b3Schristos /* 1: Memory Controller */ 1794062782b3Schristos 1795062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[] = 1796062782b3Schristos { 179746a330b4Schristos ACPI_DM_PMTT_HEADER, 179846a330b4Schristos {ACPI_DMT_UINT16, ACPI_PMTT1_OFFSET (ControllerId), "Controller ID", 0}, 1799062782b3Schristos {ACPI_DMT_UINT16, ACPI_PMTT1_OFFSET (Reserved), "Reserved", 0}, 1800062782b3Schristos ACPI_DMT_TERMINATOR 1801062782b3Schristos }; 1802062782b3Schristos 1803062782b3Schristos /* 2: Physical Component */ 1804062782b3Schristos 1805062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[] = 1806062782b3Schristos { 180746a330b4Schristos ACPI_DM_PMTT_HEADER, 1808062782b3Schristos {ACPI_DMT_UINT32, ACPI_PMTT2_OFFSET (BiosHandle), "Bios Handle", 0}, 1809062782b3Schristos ACPI_DMT_TERMINATOR 1810062782b3Schristos }; 1811062782b3Schristos 181246a330b4Schristos /* 0xFF: Vendor Specific */ 181346a330b4Schristos 181446a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPmttVendor[] = 181546a330b4Schristos { 181646a330b4Schristos ACPI_DM_PMTT_HEADER, 181746a330b4Schristos {ACPI_DMT_UUID, ACPI_PMTT_VENDOR_OFFSET (TypeUuid), "Type Uuid", 0}, 181846a330b4Schristos {ACPI_DMT_PMTT_VENDOR, ACPI_PMTT_VENDOR_OFFSET (Specific), "Vendor Data", 0}, 181946a330b4Schristos ACPI_DMT_TERMINATOR 182046a330b4Schristos }; 182146a330b4Schristos 1822062782b3Schristos 1823062782b3Schristos /******************************************************************************* 1824062782b3Schristos * 1825062782b3Schristos * PPTT - Processor Properties Topology Table (ACPI 6.2) 1826062782b3Schristos * 1827062782b3Schristos ******************************************************************************/ 1828062782b3Schristos 1829062782b3Schristos /* Main table consists of only the standard ACPI header - subtables follow */ 1830062782b3Schristos 1831062782b3Schristos /* Common Subtable header (one per Subtable) */ 1832062782b3Schristos 1833062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPpttHdr[] = 1834062782b3Schristos { 1835062782b3Schristos {ACPI_DMT_PPTT, ACPI_PPTTH_OFFSET (Type), "Subtable Type", 0}, 1836062782b3Schristos {ACPI_DMT_UINT8, ACPI_PPTTH_OFFSET (Length), "Length", 0}, 1837062782b3Schristos ACPI_DMT_TERMINATOR 1838062782b3Schristos }; 1839062782b3Schristos 1840062782b3Schristos /* 0: Processor hierarchy node */ 1841062782b3Schristos 1842062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0[] = 1843062782b3Schristos { 1844062782b3Schristos {ACPI_DMT_UINT16, ACPI_PPTT0_OFFSET (Reserved), "Reserved", 0}, 1845062782b3Schristos {ACPI_DMT_UINT32, ACPI_PPTT0_OFFSET (Flags), "Flags (decoded below)", 0}, 1846062782b3Schristos {ACPI_DMT_FLAG0, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "Physical package", 0}, 1847062782b3Schristos {ACPI_DMT_FLAG1, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "ACPI Processor ID valid", 0}, 184894783addSchristos {ACPI_DMT_FLAG2, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "Processor is a thread", 0}, 184994783addSchristos {ACPI_DMT_FLAG3, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "Node is a leaf", 0}, 185094783addSchristos {ACPI_DMT_FLAG4, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "Identical Implementation", 0}, 1851062782b3Schristos {ACPI_DMT_UINT32, ACPI_PPTT0_OFFSET (Parent), "Parent", 0}, 1852062782b3Schristos {ACPI_DMT_UINT32, ACPI_PPTT0_OFFSET (AcpiProcessorId), "ACPI Processor ID", 0}, 1853062782b3Schristos {ACPI_DMT_UINT32, ACPI_PPTT0_OFFSET (NumberOfPrivResources), "Private Resource Number", 0}, 1854062782b3Schristos ACPI_DMT_TERMINATOR 1855062782b3Schristos }; 1856062782b3Schristos 1857062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0a[] = 1858062782b3Schristos { 1859062782b3Schristos {ACPI_DMT_UINT32, 0, "Private Resource", DT_OPTIONAL}, 1860062782b3Schristos ACPI_DMT_TERMINATOR 1861062782b3Schristos }; 1862062782b3Schristos 1863062782b3Schristos /* 1: Cache type */ 1864062782b3Schristos 1865062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[] = 1866062782b3Schristos { 1867062782b3Schristos {ACPI_DMT_UINT16, ACPI_PPTT1_OFFSET (Reserved), "Reserved", 0}, 1868062782b3Schristos {ACPI_DMT_UINT32, ACPI_PPTT1_OFFSET (Flags), "Flags (decoded below)", 0}, 1869062782b3Schristos {ACPI_DMT_FLAG0, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Size valid", 0}, 1870062782b3Schristos {ACPI_DMT_FLAG1, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Number of Sets valid", 0}, 1871062782b3Schristos {ACPI_DMT_FLAG2, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Associativity valid", 0}, 1872062782b3Schristos {ACPI_DMT_FLAG3, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Allocation Type valid", 0}, 1873062782b3Schristos {ACPI_DMT_FLAG4, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Cache Type valid", 0}, 1874062782b3Schristos {ACPI_DMT_FLAG5, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Write Policy valid", 0}, 1875062782b3Schristos {ACPI_DMT_FLAG6, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Line Size valid", 0}, 187646a330b4Schristos {ACPI_DMT_FLAG7, ACPI_PPTT1_FLAG_OFFSET (Flags,0), "Cache ID valid", 0}, 1877062782b3Schristos {ACPI_DMT_UINT32, ACPI_PPTT1_OFFSET (NextLevelOfCache), "Next Level of Cache", 0}, 1878062782b3Schristos {ACPI_DMT_UINT32, ACPI_PPTT1_OFFSET (Size), "Size", 0}, 1879062782b3Schristos {ACPI_DMT_UINT32, ACPI_PPTT1_OFFSET (NumberOfSets), "Number of Sets", 0}, 1880062782b3Schristos {ACPI_DMT_UINT8, ACPI_PPTT1_OFFSET (Associativity), "Associativity", 0}, 1881062782b3Schristos {ACPI_DMT_UINT8, ACPI_PPTT1_OFFSET (Attributes), "Attributes", 0}, 1882062782b3Schristos {ACPI_DMT_FLAGS0, ACPI_PPTT1_OFFSET (Attributes), "Allocation Type", 0}, 1883062782b3Schristos {ACPI_DMT_FLAGS2, ACPI_PPTT1_OFFSET (Attributes), "Cache Type", 0}, 1884062782b3Schristos {ACPI_DMT_FLAG4, ACPI_PPTT1_OFFSET (Attributes), "Write Policy", 0}, 1885062782b3Schristos {ACPI_DMT_UINT16, ACPI_PPTT1_OFFSET (LineSize), "Line Size", 0}, 1886062782b3Schristos ACPI_DMT_TERMINATOR 1887062782b3Schristos }; 1888062782b3Schristos 188946a330b4Schristos /* 1: cache type v1 */ 189046a330b4Schristos 189146a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[] = 189246a330b4Schristos { 189346a330b4Schristos {ACPI_DMT_UINT32, ACPI_PPTT1A_OFFSET (CacheId), "Cache ID", 0}, 189446a330b4Schristos ACPI_DMT_TERMINATOR 189546a330b4Schristos }; 189646a330b4Schristos 1897062782b3Schristos /* 2: ID */ 1898062782b3Schristos 1899062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[] = 1900062782b3Schristos { 1901062782b3Schristos {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (Reserved), "Reserved", 0}, 190294783addSchristos {ACPI_DMT_UINT32, ACPI_PPTT2_OFFSET (VendorId), "Vendor ID", 0}, 190394783addSchristos {ACPI_DMT_UINT64, ACPI_PPTT2_OFFSET (Level1Id), "Level1 ID", 0}, 190494783addSchristos {ACPI_DMT_UINT64, ACPI_PPTT2_OFFSET (Level2Id), "Level2 ID", 0}, 190594783addSchristos {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (MajorRev), "Major revision", 0}, 190694783addSchristos {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (MinorRev), "Minor revision", 0}, 190794783addSchristos {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (SpinRev), "Spin revision", 0}, 1908062782b3Schristos ACPI_DMT_TERMINATOR 1909062782b3Schristos }; 1910062782b3Schristos 1911062782b3Schristos 1912062782b3Schristos /******************************************************************************* 1913062782b3Schristos * 19143e9809d7Schristos * PRMT - Platform Runtime Mechanism Table 19153e9809d7Schristos * Version 1 19163e9809d7Schristos * 19173e9809d7Schristos ******************************************************************************/ 19183e9809d7Schristos 19193e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHdr[] = 19203e9809d7Schristos { 19213e9809d7Schristos {ACPI_DMT_UUID, ACPI_PRMTH_OFFSET (PlatformGuid[0]), "Platform GUID", 0}, 19223e9809d7Schristos {ACPI_DMT_UINT32, ACPI_PRMTH_OFFSET (ModuleInfoOffset), "Module info offset", 0}, 19233e9809d7Schristos {ACPI_DMT_UINT32, ACPI_PRMTH_OFFSET (ModuleInfoCount), "Module info count", 0}, 19243e9809d7Schristos ACPI_DMT_NEW_LINE, 19253e9809d7Schristos ACPI_DMT_TERMINATOR 19263e9809d7Schristos 19273e9809d7Schristos }; 19283e9809d7Schristos 19293e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtModule[] = 19303e9809d7Schristos { 19313e9809d7Schristos {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (Revision), "Revision", 0}, 19323e9809d7Schristos {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (Length), "Length", 0}, 19333e9809d7Schristos {ACPI_DMT_UUID, ACPI_PRMT0_OFFSET (ModuleGuid[0]), "Module GUID", 0}, 19343e9809d7Schristos {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (MajorRev), "Major Revision", 0}, 19353e9809d7Schristos {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (MinorRev), "Minor Revision", 0}, 19363e9809d7Schristos {ACPI_DMT_UINT16, ACPI_PRMT0_OFFSET (HandlerInfoCount), "Handler Info Count", 0}, 19373e9809d7Schristos {ACPI_DMT_UINT32, ACPI_PRMT0_OFFSET (HandlerInfoOffset), "Handler Info Offset", 0}, 19383e9809d7Schristos {ACPI_DMT_UINT64, ACPI_PRMT0_OFFSET (MmioListPointer), "Mmio List pointer", 0}, 19393e9809d7Schristos ACPI_DMT_NEW_LINE, 19403e9809d7Schristos ACPI_DMT_TERMINATOR 19413e9809d7Schristos 19423e9809d7Schristos }; 19433e9809d7Schristos 19443e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[] = 19453e9809d7Schristos { 19463e9809d7Schristos {ACPI_DMT_UINT16, ACPI_PRMT1_OFFSET (Revision), "Revision", 0}, 19473e9809d7Schristos {ACPI_DMT_UINT16, ACPI_PRMT1_OFFSET (Length), "Length", 0}, 19483e9809d7Schristos {ACPI_DMT_UUID, ACPI_PRMT1_OFFSET (HandlerGuid[0]), "Handler GUID", 0}, 19493e9809d7Schristos {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (HandlerAddress), "Handler address", 0}, 195082065f3bSchristos {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (StaticDataBufferAddress),"Static Data Address", 0}, 19513e9809d7Schristos {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (AcpiParamBufferAddress), "ACPI Parameter Address", 0}, 19523e9809d7Schristos ACPI_DMT_NEW_LINE, 19533e9809d7Schristos ACPI_DMT_TERMINATOR 19543e9809d7Schristos 19553e9809d7Schristos }; 19563e9809d7Schristos 19573e9809d7Schristos 19583e9809d7Schristos /******************************************************************************* 19593e9809d7Schristos * 1960062782b3Schristos * RASF - RAS Feature table 1961062782b3Schristos * 1962062782b3Schristos ******************************************************************************/ 1963062782b3Schristos 1964062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[] = 1965062782b3Schristos { 1966062782b3Schristos {ACPI_DMT_BUF12, ACPI_RASF_OFFSET (ChannelId[0]), "Channel ID", 0}, 1967062782b3Schristos ACPI_DMT_TERMINATOR 1968062782b3Schristos }; 1969062782b3Schristos 1970062782b3Schristos 1971062782b3Schristos /******************************************************************************* 1972062782b3Schristos * 1973*c7960b37Schristos * RAS2 - RAS2 Feature table (ACPI 6.5) 1974*c7960b37Schristos * 1975*c7960b37Schristos ******************************************************************************/ 1976*c7960b37Schristos 1977*c7960b37Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRas2[] = 1978*c7960b37Schristos { 1979*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_RAS2_OFFSET (Reserved), "Reserved", 0}, 1980*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_RAS2_OFFSET (NumPccDescs), "Number of PCC Descriptors", 0}, 1981*c7960b37Schristos ACPI_DMT_TERMINATOR 1982*c7960b37Schristos }; 1983*c7960b37Schristos 1984*c7960b37Schristos /* RAS2 PCC Descriptor */ 1985*c7960b37Schristos 1986*c7960b37Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRas2PccDesc[] = 1987*c7960b37Schristos { 1988*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_RAS2_PCC_DESC_OFFSET (ChannelId), "Channel ID", 0}, 1989*c7960b37Schristos {ACPI_DMT_UINT16, ACPI_RAS2_PCC_DESC_OFFSET (Reserved), "Reserved", 0}, 1990*c7960b37Schristos {ACPI_DMT_UINT8, ACPI_RAS2_PCC_DESC_OFFSET (FeatureType), "Feature Type", 0}, 1991*c7960b37Schristos {ACPI_DMT_UINT32, ACPI_RAS2_PCC_DESC_OFFSET (Instance), "Instance", 0}, 1992*c7960b37Schristos ACPI_DMT_TERMINATOR 1993*c7960b37Schristos }; 1994*c7960b37Schristos 1995*c7960b37Schristos 1996*c7960b37Schristos /******************************************************************************* 1997*c7960b37Schristos * 19983e9809d7Schristos * RGRT - Regulatory Graphics Resource Table 19993e9809d7Schristos * 20003e9809d7Schristos ******************************************************************************/ 20013e9809d7Schristos 20023e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[] = 20033e9809d7Schristos { 20043e9809d7Schristos {ACPI_DMT_UINT16, ACPI_RGRT_OFFSET (Version), "Version", 0}, 20053e9809d7Schristos {ACPI_DMT_RGRT, ACPI_RGRT_OFFSET (ImageType), "Image Type", 0}, 20063e9809d7Schristos {ACPI_DMT_UINT8, ACPI_RGRT_OFFSET (Reserved), "Reserved", 0}, 20073e9809d7Schristos ACPI_DMT_TERMINATOR 20083e9809d7Schristos }; 20093e9809d7Schristos 20103e9809d7Schristos /* 20113e9809d7Schristos * We treat the binary image field as its own subtable (to make 20123e9809d7Schristos * ACPI_DMT_RAW_BUFFER work properly). 20133e9809d7Schristos */ 20143e9809d7Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[] = 20153e9809d7Schristos { 20163e9809d7Schristos {ACPI_DMT_RAW_BUFFER, 0, "Image", 0}, 20173e9809d7Schristos ACPI_DMT_TERMINATOR 20183e9809d7Schristos }; 20193e9809d7Schristos 20203e9809d7Schristos 20213e9809d7Schristos /******************************************************************************* 20223e9809d7Schristos * 2023046a2985Schristos * RHCT - RISC-V Hart Capabilities Table 2024046a2985Schristos * 2025046a2985Schristos ******************************************************************************/ 2026046a2985Schristos 2027046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] = 2028046a2985Schristos { 2029046a2985Schristos {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Flags), "Flags", 0}, 2030046a2985Schristos {ACPI_DMT_UINT64, ACPI_RHCT_OFFSET (TimeBaseFreq), "Timer Base Frequency", 0}, 2031046a2985Schristos {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeCount), "Number of nodes", 0}, 2032046a2985Schristos {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeOffset), "Offset to the node array", 0}, 2033046a2985Schristos ACPI_DMT_TERMINATOR 2034046a2985Schristos }; 2035046a2985Schristos 2036046a2985Schristos 2037046a2985Schristos /* Common Subtable header (one per Subtable) */ 2038046a2985Schristos 2039046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[] = 2040046a2985Schristos { 2041046a2985Schristos {ACPI_DMT_RHCT, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0}, 2042046a2985Schristos {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Length), "Length", 0}, 2043046a2985Schristos {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Revision), "Revision", 0}, 2044046a2985Schristos ACPI_DMT_TERMINATOR 2045046a2985Schristos }; 2046046a2985Schristos 2047046a2985Schristos /* 0: ISA string type */ 2048046a2985Schristos 2049046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[] = 2050046a2985Schristos { 2051046a2985Schristos {ACPI_DMT_UINT16, ACPI_RHCT0_OFFSET (IsaLength), "ISA string length", 0}, 2052046a2985Schristos {ACPI_DMT_STRING, ACPI_RHCT0_OFFSET (Isa[0]), "ISA string", 0}, 2053046a2985Schristos ACPI_DMT_TERMINATOR 2054046a2985Schristos }; 2055046a2985Schristos 2056046a2985Schristos 2057046a2985Schristos /* Optional padding field */ 2058046a2985Schristos 2059046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[] = 2060046a2985Schristos { 2061046a2985Schristos {ACPI_DMT_RAW_BUFFER, 0, "Optional Padding", DT_OPTIONAL}, 2062046a2985Schristos ACPI_DMT_TERMINATOR 2063046a2985Schristos }; 2064046a2985Schristos 2065046a2985Schristos /* 1: CMO node type */ 2066046a2985Schristos 2067046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[] = 2068046a2985Schristos { 2069046a2985Schristos {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (Reserved), "Reserved", 0}, 2070046a2985Schristos {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbomSize), "CBOM Block Size", 0}, 2071046a2985Schristos {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbopSize), "CBOP Block Size", 0}, 2072046a2985Schristos {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbozSize), "CBOZ Block Size", 0}, 2073046a2985Schristos ACPI_DMT_TERMINATOR 2074046a2985Schristos }; 2075046a2985Schristos 2076046a2985Schristos /* 2: MMU node type */ 2077046a2985Schristos 2078046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[] = 2079046a2985Schristos { 2080046a2985Schristos {ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (Reserved), "Reserved", 0}, 2081046a2985Schristos {ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (MmuType), "MMU Type", 0}, 2082046a2985Schristos ACPI_DMT_TERMINATOR 2083046a2985Schristos }; 2084046a2985Schristos 2085046a2985Schristos /* 0xFFFF: Hart Info type */ 2086046a2985Schristos 2087046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[] = 2088046a2985Schristos { 2089046a2985Schristos {ACPI_DMT_UINT16, ACPI_RHCTFFFF_OFFSET (NumOffsets), "Number of offsets", 0}, 2090046a2985Schristos {ACPI_DMT_UINT32, ACPI_RHCTFFFF_OFFSET (Uid), "Processor UID", 0}, 2091046a2985Schristos ACPI_DMT_TERMINATOR 2092046a2985Schristos }; 2093046a2985Schristos 2094046a2985Schristos 2095046a2985Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[] = 2096046a2985Schristos { 2097046a2985Schristos {ACPI_DMT_UINT32, 0, "Nodes", DT_OPTIONAL}, 2098046a2985Schristos ACPI_DMT_TERMINATOR 2099046a2985Schristos }; 2100046a2985Schristos 2101046a2985Schristos 2102046a2985Schristos /******************************************************************************* 2103046a2985Schristos * 2104062782b3Schristos * S3PT - S3 Performance Table 2105062782b3Schristos * 2106062782b3Schristos ******************************************************************************/ 2107062782b3Schristos 2108062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[] = 2109062782b3Schristos { 2110062782b3Schristos {ACPI_DMT_SIG, ACPI_S3PT_OFFSET (Signature[0]), "Signature", 0}, 2111062782b3Schristos {ACPI_DMT_UINT32, ACPI_S3PT_OFFSET (Length), "Length", DT_LENGTH}, 2112062782b3Schristos ACPI_DMT_TERMINATOR 2113062782b3Schristos }; 2114062782b3Schristos 2115062782b3Schristos /* S3PT subtable header */ 2116062782b3Schristos 2117062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[] = 2118062782b3Schristos { 2119062782b3Schristos {ACPI_DMT_UINT16, ACPI_S3PTH_OFFSET (Type), "Type", 0}, 2120062782b3Schristos {ACPI_DMT_UINT8, ACPI_S3PTH_OFFSET (Length), "Length", DT_LENGTH}, 2121062782b3Schristos {ACPI_DMT_UINT8, ACPI_S3PTH_OFFSET (Revision), "Revision", 0}, 2122062782b3Schristos ACPI_DMT_TERMINATOR 2123062782b3Schristos }; 2124062782b3Schristos 2125062782b3Schristos /* 0: Basic S3 Resume Performance Record */ 2126062782b3Schristos 2127062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[] = 2128062782b3Schristos { 2129062782b3Schristos {ACPI_DMT_UINT32, ACPI_S3PT0_OFFSET (ResumeCount), "Resume Count", 0}, 2130062782b3Schristos {ACPI_DMT_UINT64, ACPI_S3PT0_OFFSET (FullResume), "Full Resume", 0}, 2131062782b3Schristos {ACPI_DMT_UINT64, ACPI_S3PT0_OFFSET (AverageResume), "Average Resume", 0}, 2132062782b3Schristos ACPI_DMT_TERMINATOR 2133062782b3Schristos }; 2134062782b3Schristos 2135062782b3Schristos /* 1: Basic S3 Suspend Performance Record */ 2136062782b3Schristos 2137062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[] = 2138062782b3Schristos { 2139062782b3Schristos {ACPI_DMT_UINT64, ACPI_S3PT1_OFFSET (SuspendStart), "Suspend Start", 0}, 2140062782b3Schristos {ACPI_DMT_UINT64, ACPI_S3PT1_OFFSET (SuspendEnd), "Suspend End", 0}, 2141062782b3Schristos ACPI_DMT_TERMINATOR 2142062782b3Schristos }; 2143062782b3Schristos 2144062782b3Schristos 2145062782b3Schristos /******************************************************************************* 2146062782b3Schristos * 2147062782b3Schristos * SBST - Smart Battery Specification Table 2148062782b3Schristos * 2149062782b3Schristos ******************************************************************************/ 2150062782b3Schristos 2151062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[] = 2152062782b3Schristos { 2153062782b3Schristos {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (WarningLevel), "Warning Level", 0}, 2154062782b3Schristos {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (LowLevel), "Low Level", 0}, 2155062782b3Schristos {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (CriticalLevel), "Critical Level", 0}, 2156062782b3Schristos ACPI_DMT_TERMINATOR 2157062782b3Schristos }; 2158062782b3Schristos 2159062782b3Schristos 2160062782b3Schristos /******************************************************************************* 2161062782b3Schristos * 216294783addSchristos * SDEI - Software Delegated Exception Interface Descriptor Table 2163062782b3Schristos * 2164062782b3Schristos ******************************************************************************/ 2165062782b3Schristos 2166062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdei[] = 2167062782b3Schristos { 2168062782b3Schristos ACPI_DMT_TERMINATOR 2169062782b3Schristos }; 2170062782b3Schristos 2171062782b3Schristos 2172062782b3Schristos /******************************************************************************* 2173062782b3Schristos * 2174062782b3Schristos * SDEV - Secure Devices Table (ACPI 6.2) 2175062782b3Schristos * 2176062782b3Schristos ******************************************************************************/ 2177062782b3Schristos 2178062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdev[] = 2179062782b3Schristos { 2180062782b3Schristos ACPI_DMT_TERMINATOR 2181062782b3Schristos }; 2182062782b3Schristos 2183062782b3Schristos /* Common Subtable header (one per Subtable) */ 2184062782b3Schristos 2185062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdevHdr[] = 2186062782b3Schristos { 2187062782b3Schristos {ACPI_DMT_SDEV, ACPI_SDEVH_OFFSET (Type), "Subtable Type", 0}, 2188062782b3Schristos {ACPI_DMT_UINT8, ACPI_SDEVH_OFFSET (Flags), "Flags (decoded below)", 0}, 2189062782b3Schristos {ACPI_DMT_FLAG0, ACPI_SDEVH_FLAG_OFFSET (Flags,0), "Allow handoff to unsecure OS", 0}, 219046a330b4Schristos {ACPI_DMT_FLAG1, ACPI_SDEVH_FLAG_OFFSET (Flags,0), "Secure access components present", 0}, 21915b139df6Schristos {ACPI_DMT_UINT16, ACPI_SDEVH_OFFSET (Length), "Length", DT_LENGTH}, 2192062782b3Schristos ACPI_DMT_TERMINATOR 2193062782b3Schristos }; 2194062782b3Schristos 2195062782b3Schristos /* SDEV Subtables */ 2196062782b3Schristos 2197062782b3Schristos /* 0: Namespace Device Based Secure Device Structure */ 2198062782b3Schristos 2199062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0[] = 2200062782b3Schristos { 2201062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV0_OFFSET (DeviceIdOffset), "Device ID Offset", 0}, 2202062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV0_OFFSET (DeviceIdLength), "Device ID Length", 0}, 2203062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV0_OFFSET (VendorDataOffset), "Vendor Data Offset", 0}, 2204062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV0_OFFSET (VendorDataLength), "Vendor Data Length", 0}, 2205062782b3Schristos ACPI_DMT_TERMINATOR 2206062782b3Schristos }; 2207062782b3Schristos 2208062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0a[] = 2209062782b3Schristos { 2210062782b3Schristos {ACPI_DMT_STRING, 0, "Namepath", 0}, 2211062782b3Schristos ACPI_DMT_TERMINATOR 2212062782b3Schristos }; 2213062782b3Schristos 221446a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0b[] = 221546a330b4Schristos { 221646a330b4Schristos {ACPI_DMT_UINT16, ACPI_SDEV0B_OFFSET (SecureComponentOffset), "Secure Access Components Offset", 0}, 221746a330b4Schristos {ACPI_DMT_UINT16, ACPI_SDEV0B_OFFSET (SecureComponentLength), "Secure Access Components Length", 0}, 221846a330b4Schristos ACPI_DMT_TERMINATOR 221946a330b4Schristos }; 222046a330b4Schristos 222146a330b4Schristos /* Secure access components */ 222246a330b4Schristos 222346a330b4Schristos /* Common secure access components header secure access component */ 222446a330b4Schristos 222546a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompHdr[] = 222646a330b4Schristos { 222746a330b4Schristos {ACPI_DMT_UINT8, ACPI_SDEVCH_OFFSET (Type), "Secure Component Type", 0}, 222846a330b4Schristos {ACPI_DMT_UINT8, ACPI_SDEVCH_OFFSET (Flags), "Flags (decoded below)", 0}, 222946a330b4Schristos {ACPI_DMT_UINT16, ACPI_SDEVCH_OFFSET (Length), "Length", 0}, 223046a330b4Schristos ACPI_DMT_TERMINATOR 223146a330b4Schristos }; 223246a330b4Schristos 223346a330b4Schristos /* 0: Identification Based Secure Access Component */ 223446a330b4Schristos 223546a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompId[] = 223646a330b4Schristos { 223746a330b4Schristos {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (HardwareIdOffset), "Hardware ID Offset", 0}, 223846a330b4Schristos {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (HardwareIdLength), "Hardware ID Length", 0}, 223946a330b4Schristos {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (SubsystemIdOffset), "Subsystem ID Offset", 0}, 224046a330b4Schristos {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (SubsystemIdLength), "Subsystem ID Length", 0}, 224146a330b4Schristos {ACPI_DMT_UINT16, ACPI_SDEVC0_OFFSET (HardwareRevision), "Hardware Revision", 0}, 224246a330b4Schristos {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (HardwareRevPresent), "Hardware Rev Present", 0}, 224346a330b4Schristos {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (ClassCodePresent), "Class Code Present", 0}, 224446a330b4Schristos {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (PciBaseClass), "PCI Base Class", 0}, 224546a330b4Schristos {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (PciSubClass), "PCI SubClass", 0}, 224646a330b4Schristos {ACPI_DMT_UINT8, ACPI_SDEVC0_OFFSET (PciProgrammingXface), "PCI Programming Xface", 0}, 224746a330b4Schristos ACPI_DMT_TERMINATOR 224846a330b4Schristos }; 224946a330b4Schristos 225046a330b4Schristos /* 1: Memory Based Secure Access Component */ 225146a330b4Schristos 225246a330b4Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompMem[] = 225346a330b4Schristos { 225446a330b4Schristos {ACPI_DMT_UINT32, ACPI_SDEVC1_OFFSET (Reserved), "Reserved", 0}, 225546a330b4Schristos {ACPI_DMT_UINT64, ACPI_SDEVC1_OFFSET (MemoryBaseAddress), "Memory Base Address", 0}, 225646a330b4Schristos {ACPI_DMT_UINT64, ACPI_SDEVC1_OFFSET (MemoryLength), "Memory Length", 0}, 225746a330b4Schristos ACPI_DMT_TERMINATOR 225846a330b4Schristos }; 225946a330b4Schristos 226046a330b4Schristos 2261062782b3Schristos /* 1: PCIe Endpoint Device Based Device Structure */ 2262062782b3Schristos 2263062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1[] = 2264062782b3Schristos { 2265062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV1_OFFSET (Segment), "Segment", 0}, 2266062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV1_OFFSET (StartBus), "Start Bus", 0}, 2267062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV1_OFFSET (PathOffset), "Path Offset", 0}, 2268062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV1_OFFSET (PathLength), "Path Length", 0}, 2269062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV1_OFFSET (VendorDataOffset), "Vendor Data Offset", 0}, 2270062782b3Schristos {ACPI_DMT_UINT16, ACPI_SDEV1_OFFSET (VendorDataLength), "Vendor Data Length", 0}, 2271062782b3Schristos ACPI_DMT_TERMINATOR 2272062782b3Schristos }; 2273062782b3Schristos 2274062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1a[] = 2275062782b3Schristos { 2276062782b3Schristos {ACPI_DMT_UINT8, ACPI_SDEV1A_OFFSET (Device), "Device", 0}, 2277062782b3Schristos {ACPI_DMT_UINT8, ACPI_SDEV1A_OFFSET (Function), "Function", 0}, 2278062782b3Schristos ACPI_DMT_TERMINATOR 2279062782b3Schristos }; 2280062782b3Schristos 2281062782b3Schristos ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1b[] = 2282062782b3Schristos { 2283062782b3Schristos {ACPI_DMT_RAW_BUFFER, 0, "Vendor Data", 0}, /*, DT_OPTIONAL}, */ 2284062782b3Schristos ACPI_DMT_TERMINATOR 2285062782b3Schristos }; 22863e9809d7Schristos 2287062782b3Schristos /*! [End] no source code translation !*/ 2288