xref: /netbsd-src/sys/external/bsd/acpica/dist/common/dmtbinfo2.c (revision c7960b37466ae0fd417c32e6acbb4b956ac7a121)
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