]> CyberLeo.Net >> Repos - FreeBSD/releng/8.0.git/blob - sys/contrib/dev/acpica/common/dmtbinfo.c
Adjust to reflect 8.0-RELEASE.
[FreeBSD/releng/8.0.git] / sys / contrib / dev / acpica / common / dmtbinfo.c
1 /******************************************************************************
2  *
3  * Module Name: dmtbinfo - Table info for non-AML tables
4  *
5  *****************************************************************************/
6
7 /******************************************************************************
8  *
9  * 1. Copyright Notice
10  *
11  * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
12  * All rights reserved.
13  *
14  * 2. License
15  *
16  * 2.1. This is your license from Intel Corp. under its intellectual property
17  * rights.  You may have additional license terms from the party that provided
18  * you this software, covering your right to use that party's intellectual
19  * property rights.
20  *
21  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
22  * copy of the source code appearing in this file ("Covered Code") an
23  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
24  * base code distributed originally by Intel ("Original Intel Code") to copy,
25  * make derivatives, distribute, use and display any portion of the Covered
26  * Code in any form, with the right to sublicense such rights; and
27  *
28  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
29  * license (with the right to sublicense), under only those claims of Intel
30  * patents that are infringed by the Original Intel Code, to make, use, sell,
31  * offer to sell, and import the Covered Code and derivative works thereof
32  * solely to the minimum extent necessary to exercise the above copyright
33  * license, and in no event shall the patent license extend to any additions
34  * to or modifications of the Original Intel Code.  No other license or right
35  * is granted directly or by implication, estoppel or otherwise;
36  *
37  * The above copyright and patent license is granted only if the following
38  * conditions are met:
39  *
40  * 3. Conditions
41  *
42  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
43  * Redistribution of source code of any substantial portion of the Covered
44  * Code or modification with rights to further distribute source must include
45  * the above Copyright Notice, the above License, this list of Conditions,
46  * and the following Disclaimer and Export Compliance provision.  In addition,
47  * Licensee must cause all Covered Code to which Licensee contributes to
48  * contain a file documenting the changes Licensee made to create that Covered
49  * Code and the date of any change.  Licensee must include in that file the
50  * documentation of any changes made by any predecessor Licensee.  Licensee
51  * must include a prominent statement that the modification is derived,
52  * directly or indirectly, from Original Intel Code.
53  *
54  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
55  * Redistribution of source code of any substantial portion of the Covered
56  * Code or modification without rights to further distribute source must
57  * include the following Disclaimer and Export Compliance provision in the
58  * documentation and/or other materials provided with distribution.  In
59  * addition, Licensee may not authorize further sublicense of source of any
60  * portion of the Covered Code, and must include terms to the effect that the
61  * license from Licensee to its licensee is limited to the intellectual
62  * property embodied in the software Licensee provides to its licensee, and
63  * not to intellectual property embodied in modifications its licensee may
64  * make.
65  *
66  * 3.3. Redistribution of Executable. Redistribution in executable form of any
67  * substantial portion of the Covered Code or modification must reproduce the
68  * above Copyright Notice, and the following Disclaimer and Export Compliance
69  * provision in the documentation and/or other materials provided with the
70  * distribution.
71  *
72  * 3.4. Intel retains all right, title, and interest in and to the Original
73  * Intel Code.
74  *
75  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
76  * Intel shall be used in advertising or otherwise to promote the sale, use or
77  * other dealings in products derived from or relating to the Covered Code
78  * without prior written authorization from Intel.
79  *
80  * 4. Disclaimer and Export Compliance
81  *
82  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
83  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
84  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT,  ASSISTANCE,
85  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
86  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
87  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
88  * PARTICULAR PURPOSE.
89  *
90  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
91  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
92  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
93  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
94  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
95  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
96  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
97  * LIMITED REMEDY.
98  *
99  * 4.3. Licensee shall not export, either directly or indirectly, any of this
100  * software or system incorporating such software without first obtaining any
101  * required license or other approval from the U. S. Department of Commerce or
102  * any other agency or department of the United States Government.  In the
103  * event Licensee exports any such software from the United States or
104  * re-exports any such software from a foreign destination, Licensee shall
105  * ensure that the distribution and export/re-export of the software is in
106  * compliance with all laws, regulations, orders, or other restrictions of the
107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
108  * any of its subsidiaries will export/re-export any technical data, process,
109  * software, or service, directly or indirectly, to any country for which the
110  * United States government or any agency thereof requires an export license,
111  * other governmental approval, or letter of assurance, without first obtaining
112  * such license, approval or letter.
113  *
114  *****************************************************************************/
115
116 #include <contrib/dev/acpica/include/acpi.h>
117 #include <contrib/dev/acpica/include/accommon.h>
118 #include <contrib/dev/acpica/include/acdisasm.h>
119
120 /* This module used for application-level code only */
121
122 #define _COMPONENT          ACPI_CA_DISASSEMBLER
123         ACPI_MODULE_NAME    ("dmtbinfo")
124
125 /*
126  * Macros used to generate offsets to specific table fields
127  */
128 #define ACPI_FACS_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_FACS,f)
129 #define ACPI_GAS_OFFSET(f)              (UINT8) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f)
130 #define ACPI_HDR_OFFSET(f)              (UINT8) ACPI_OFFSET (ACPI_TABLE_HEADER,f)
131 #define ACPI_RSDP_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_RSDP,f)
132 #define ACPI_BOOT_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_BOOT,f)
133 #define ACPI_BERT_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_BERT,f)
134 #define ACPI_CPEP_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_CPEP,f)
135 #define ACPI_DBGP_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_DBGP,f)
136 #define ACPI_DMAR_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_DMAR,f)
137 #define ACPI_ECDT_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_ECDT,f)
138 #define ACPI_EINJ_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_EINJ,f)
139 #define ACPI_ERST_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_ERST,f)
140 #define ACPI_HEST_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_HEST,f)
141 #define ACPI_HPET_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_HPET,f)
142 #define ACPI_MADT_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_MADT,f)
143 #define ACPI_MCFG_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_MCFG,f)
144 #define ACPI_SBST_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_SBST,f)
145 #define ACPI_SLIT_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_SLIT,f)
146 #define ACPI_SPCR_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_SPCR,f)
147 #define ACPI_SPMI_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_SPMI,f)
148 #define ACPI_SRAT_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_SRAT,f)
149 #define ACPI_TCPA_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_TCPA,f)
150 #define ACPI_WDRT_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_TABLE_WDRT,f)
151
152 /* Subtables */
153
154 #define ACPI_ASF0_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_ASF_INFO,f)
155 #define ACPI_ASF1_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_ASF_ALERT,f)
156 #define ACPI_ASF1a_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_ASF_ALERT_DATA,f)
157 #define ACPI_ASF2_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_ASF_REMOTE,f)
158 #define ACPI_ASF2a_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f)
159 #define ACPI_ASF3_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_ASF_RMCP,f)
160 #define ACPI_ASF4_OFFSET(f)             (UINT8) ACPI_OFFSET (ACPI_ASF_ADDRESS,f)
161 #define ACPI_CPEP0_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
162 #define ACPI_DMARS_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_DMAR_DEVICE_SCOPE,f)
163 #define ACPI_DMAR0_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_DMAR_HARDWARE_UNIT,f)
164 #define ACPI_DMAR1_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_DMAR_RESERVED_MEMORY,f)
165 #define ACPI_DMAR2_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_DMAR_ATSR,f)
166 #define ACPI_EINJ0_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_WHEA_HEADER,f)
167 #define ACPI_HEST0_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_XPF_MACHINE_CHECK,f)
168 #define ACPI_HEST1_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_XPF_CORRECTED,f)
169 #define ACPI_HEST3_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_XPF_NMI,f)
170 #define ACPI_HEST4_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_IPF_CORRECTED,f)
171 #define ACPI_HEST5_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_IPF_CORRECTED_PLATFORM,f)
172 #define ACPI_HEST6_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_AER_ROOT,f)
173 #define ACPI_HEST7_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_AER,f)
174 #define ACPI_HEST8_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_AER_BRIDGE,f)
175 #define ACPI_HEST9_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_GENERIC,f)
176 #define ACPI_HESTN_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_HEST_NOTIFY,f)
177 #define ACPI_MADT0_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC,f)
178 #define ACPI_MADT1_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_IO_APIC,f)
179 #define ACPI_MADT2_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_INTERRUPT_OVERRIDE,f)
180 #define ACPI_MADT3_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_NMI_SOURCE,f)
181 #define ACPI_MADT4_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC_NMI,f)
182 #define ACPI_MADT5_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC_OVERRIDE,f)
183 #define ACPI_MADT6_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_IO_SAPIC,f)
184 #define ACPI_MADT7_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_SAPIC,f)
185 #define ACPI_MADT8_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f)
186 #define ACPI_MADT9_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_X2APIC,f)
187 #define ACPI_MADT10_OFFSET(f)           (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_X2APIC_NMI,f)
188 #define ACPI_MADTH_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f)
189 #define ACPI_MCFG0_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f)
190 #define ACPI_SRATH_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f)
191 #define ACPI_SRAT0_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_SRAT_CPU_AFFINITY,f)
192 #define ACPI_SRAT1_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_SRAT_MEM_AFFINITY,f)
193 #define ACPI_SRAT2_OFFSET(f)            (UINT8) ACPI_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f)
194
195 /*
196  * Simplify access to flag fields by breaking them up into bytes
197  */
198 #define ACPI_FLAG_OFFSET(d,f,o)         (UINT8) (ACPI_OFFSET (d,f) + o)
199
200 /* Flags */
201
202 #define ACPI_FADT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_FADT,f,o)
203 #define ACPI_FACS_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_FACS,f,o)
204 #define ACPI_HPET_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_HPET,f,o)
205 #define ACPI_SRAT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_CPU_AFFINITY,f,o)
206 #define ACPI_SRAT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o)
207 #define ACPI_SRAT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o)
208 #define ACPI_MADT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_MADT,f,o)
209 #define ACPI_MADT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC,f,o)
210 #define ACPI_MADT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_OVERRIDE,f,o)
211 #define ACPI_MADT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_NMI_SOURCE,f,o)
212 #define ACPI_MADT4_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC_NMI,f,o)
213 #define ACPI_MADT7_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_SAPIC,f,o)
214 #define ACPI_MADT8_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f,o)
215 #define ACPI_MADT9_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC,f,o)
216 #define ACPI_MADT10_FLAG_OFFSET(f,o)    ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC_NMI,f,o)
217
218
219 /*
220  * ACPI Table Information, used to dump formatted ACPI tables
221  *
222  * Each entry is of the form:  <Field Type, Field Offset, Field Name>
223  */
224
225 /*******************************************************************************
226  *
227  * Common ACPI table header
228  *
229  ******************************************************************************/
230
231 ACPI_DMTABLE_INFO           AcpiDmTableInfoHeader[] =
232 {
233     {ACPI_DMT_SIG,      ACPI_HDR_OFFSET (Signature[0]),             "Signature"},
234     {ACPI_DMT_UINT32,   ACPI_HDR_OFFSET (Length),                   "Table Length"},
235     {ACPI_DMT_UINT8,    ACPI_HDR_OFFSET (Revision),                 "Revision"},
236     {ACPI_DMT_CHKSUM,   ACPI_HDR_OFFSET (Checksum),                 "Checksum"},
237     {ACPI_DMT_NAME6,    ACPI_HDR_OFFSET (OemId[0]),                 "Oem ID"},
238     {ACPI_DMT_NAME8,    ACPI_HDR_OFFSET (OemTableId[0]),            "Oem Table ID"},
239     {ACPI_DMT_UINT32,   ACPI_HDR_OFFSET (OemRevision),              "Oem Revision"},
240     {ACPI_DMT_NAME4,    ACPI_HDR_OFFSET (AslCompilerId[0]),         "Asl Compiler ID"},
241     {ACPI_DMT_UINT32,   ACPI_HDR_OFFSET (AslCompilerRevision),      "Asl Compiler Revision"},
242     {ACPI_DMT_EXIT,     0,                                          NULL}
243 };
244
245
246 /*******************************************************************************
247  *
248  * GAS - Generic Address Structure
249  *
250  ******************************************************************************/
251
252 ACPI_DMTABLE_INFO           AcpiDmTableInfoGas[] =
253 {
254     {ACPI_DMT_SPACEID,  ACPI_GAS_OFFSET (SpaceId),                  "Space ID"},
255     {ACPI_DMT_UINT8,    ACPI_GAS_OFFSET (BitWidth),                 "Bit Width"},
256     {ACPI_DMT_UINT8,    ACPI_GAS_OFFSET (BitOffset),                "Bit Offset"},
257     {ACPI_DMT_UINT8,    ACPI_GAS_OFFSET (AccessWidth),              "Access Width"},
258     {ACPI_DMT_UINT64,   ACPI_GAS_OFFSET (Address),                  "Address"},
259     {ACPI_DMT_EXIT,     0,                                          NULL}
260 };
261
262
263 /*******************************************************************************
264  *
265  * RSDP - Root System Description Pointer (Signature is "RSD PTR ")
266  *
267  ******************************************************************************/
268
269 ACPI_DMTABLE_INFO           AcpiDmTableInfoRsdp1[] =
270 {
271     {ACPI_DMT_NAME8,    ACPI_RSDP_OFFSET (Signature[0]),            "Signature"},
272     {ACPI_DMT_UINT8,    ACPI_RSDP_OFFSET (Checksum),                "Checksum"},
273     {ACPI_DMT_NAME6,    ACPI_RSDP_OFFSET (OemId[0]),                "Oem ID"},
274     {ACPI_DMT_UINT8,    ACPI_RSDP_OFFSET (Revision),                "Revision"},
275     {ACPI_DMT_UINT32,   ACPI_RSDP_OFFSET (RsdtPhysicalAddress),     "RSDT Address"},
276     {ACPI_DMT_EXIT,     0,                                          NULL}
277 };
278
279 /* ACPI 2.0+ Extensions */
280
281 ACPI_DMTABLE_INFO           AcpiDmTableInfoRsdp2[] =
282 {
283     {ACPI_DMT_UINT32,   ACPI_RSDP_OFFSET (Length),                  "Length"},
284     {ACPI_DMT_UINT64,   ACPI_RSDP_OFFSET (XsdtPhysicalAddress),     "XSDT Address"},
285     {ACPI_DMT_UINT8,    ACPI_RSDP_OFFSET (ExtendedChecksum),        "Extended Checksum"},
286     {ACPI_DMT_UINT24,   ACPI_RSDP_OFFSET (Reserved[0]),             "Reserved"},
287     {ACPI_DMT_EXIT,     0,                                          NULL}
288 };
289
290
291 /*******************************************************************************
292  *
293  * FACS - Firmware ACPI Control Structure
294  *
295  ******************************************************************************/
296
297 ACPI_DMTABLE_INFO           AcpiDmTableInfoFacs[] =
298 {
299     {ACPI_DMT_NAME4,    ACPI_FACS_OFFSET (Signature[0]),            "Signature"},
300     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (Length),                  "Length"},
301     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (HardwareSignature),       "Hardware Signature"},
302     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (FirmwareWakingVector),    "Firmware Waking Vector(32)"},
303     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (GlobalLock),              "Global Lock"},
304     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (Flags),                   "Flags (decoded below)"},
305     {ACPI_DMT_FLAG0,    ACPI_FACS_FLAG_OFFSET (Flags,0),            "S4BIOS Support Present"},
306     {ACPI_DMT_UINT64,   ACPI_FACS_OFFSET (XFirmwareWakingVector),   "Firmware Waking Vector(64)"},
307     {ACPI_DMT_UINT8,    ACPI_FACS_OFFSET (Version),                 "Version"},
308     {ACPI_DMT_EXIT,     0,                                          NULL}
309 };
310
311
312 /*******************************************************************************
313  *
314  * FADT - Fixed ACPI Description Table (Signature is FACP)
315  *
316  ******************************************************************************/
317
318 /* ACPI 1.0 FADT (Version 1) */
319
320 ACPI_DMTABLE_INFO           AcpiDmTableInfoFadt1[] =
321 {
322     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Facs),                    "FACS Address"},
323     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Dsdt),                    "DSDT Address"},
324     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Model),                   "Model"},
325     {ACPI_DMT_FADTPM,   ACPI_FADT_OFFSET (PreferredProfile),        "PM Profile"},
326     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (SciInterrupt),            "SCI Interrupt"},
327     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (SmiCommand),              "SMI Command Port"},
328     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (AcpiEnable),              "ACPI Enable Value"},
329     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (AcpiDisable),             "ACPI Disable Value"},
330     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (S4BiosRequest),           "S4BIOS Command"},
331     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (PstateControl),           "P-State Control"},
332     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm1aEventBlock),          "PM1A Event Block Address"},
333     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm1bEventBlock),          "PM1B Event Block Address"},
334     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm1aControlBlock),        "PM1A Control Block Address"},
335     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm1bControlBlock),        "PM1B Control Block Address"},
336     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm2ControlBlock),         "PM2 Control Block Address"},
337     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (PmTimerBlock),            "PM Timer Block Address"},
338     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Gpe0Block),               "GPE0 Block Address"},
339     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Gpe1Block),               "GPE1 Block Address"},
340     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Pm1EventLength),          "PM1 Event Block Length"},
341     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Pm1ControlLength),        "PM1 Control Block Length"},
342     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Pm2ControlLength),        "PM2 Control Block Length"},
343     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (PmTimerLength),           "PM Timer Block Length"},
344     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Gpe0BlockLength),         "GPE0 Block Length"},
345     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Gpe1BlockLength),         "GPE1 Block Length"},
346     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Gpe1Base),                "GPE1 Base Offset"},
347     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (CstControl),              "_CST Support"},
348     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (C2Latency),               "C2 Latency"},
349     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (C3Latency),               "C3 Latency"},
350     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (FlushSize),               "CPU Cache Size"},
351     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (FlushStride),             "Cache Flush Stride"},
352     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (DutyOffset),              "Duty Cycle Offset"},
353     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (DutyWidth),               "Duty Cycle Width"},
354     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (DayAlarm),                "RTC Day Alarm Index"},
355     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (MonthAlarm),              "RTC Month Alarm Index"},
356     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Century),                 "RTC Century Index"},
357     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (BootFlags),               "Boot Flags (decoded below)"},
358
359     /* Boot Architecture Flags byte 0 */
360
361     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "Legacy Devices Supported (V2)"},
362     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "8042 Present on ports 60/64 (V2)"},
363     {ACPI_DMT_FLAG2,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "VGA Not Present (V4)"},
364     {ACPI_DMT_FLAG3,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "MSI Not Supported (V4)"},
365     {ACPI_DMT_FLAG4,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "PCIe ASPM Not Supported (V4)"},
366
367     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Reserved),                "Reserved"},
368     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Flags),                   "Flags (decoded below)"},
369
370     /* Flags byte 0 */
371
372     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "WBINVD instruction is operational (V1)"},
373     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "WBINVD flushes all caches (V1)"},
374     {ACPI_DMT_FLAG2,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "All CPUs support C1 (V1)"},
375     {ACPI_DMT_FLAG3,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "C2 works on MP system (V1)"},
376     {ACPI_DMT_FLAG4,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "Control Method Power Button (V1)"},
377     {ACPI_DMT_FLAG5,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "Control Method Sleep Button (V1)"},
378     {ACPI_DMT_FLAG6,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "RTC wake not in fixed reg space (V1)"},
379     {ACPI_DMT_FLAG7,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "RTC can wake system from S4 (V1)"},
380
381     /* Flags byte 1 */
382
383     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "32-bit PM Timer (V1)"},
384     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Docking Supported (V1)"},
385     {ACPI_DMT_FLAG2,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Reset Register Supported (V2)"},
386     {ACPI_DMT_FLAG3,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Sealed Case (V3)"},
387     {ACPI_DMT_FLAG4,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Headless - No Video (V3)"},
388     {ACPI_DMT_FLAG5,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Use native instr after SLP_TYPx (V3)"},
389     {ACPI_DMT_FLAG6,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "PCIEXP_WAK Bits Supported (V4)"},
390     {ACPI_DMT_FLAG7,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Use Platform Timer (V4)"},
391
392     /* Flags byte 2 */
393
394     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "RTC_STS valid on S4 wake (V4)"},
395     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "Remote Power-on capable (V4)"},
396     {ACPI_DMT_FLAG2,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "Use APIC Cluster Model (V4)"},
397     {ACPI_DMT_FLAG3,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "Use APIC Physical Destination Mode (V4)"},
398     {ACPI_DMT_EXIT,     0,                                          NULL}
399 };
400
401 /* ACPI 1.0 MS Extensions (FADT version 2) */
402
403 ACPI_DMTABLE_INFO           AcpiDmTableInfoFadt2[] =
404 {
405     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (ResetRegister),           "Reset Register"},
406     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (ResetValue),              "Value to cause reset"},
407     {ACPI_DMT_UINT24,   ACPI_FADT_OFFSET (Reserved4[0]),            "Reserved"},
408     {ACPI_DMT_EXIT,     0,                                          NULL}
409 };
410
411 /* ACPI 2.0+ Extensions (FADT version 3+) */
412
413 ACPI_DMTABLE_INFO           AcpiDmTableInfoFadt3[] =
414 {
415     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (ResetRegister),           "Reset Register"},
416     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (ResetValue),              "Value to cause reset"},
417     {ACPI_DMT_UINT24,   ACPI_FADT_OFFSET (Reserved4[0]),            "Reserved"},
418     {ACPI_DMT_UINT64,   ACPI_FADT_OFFSET (XFacs),                   "FACS Address"},
419     {ACPI_DMT_UINT64,   ACPI_FADT_OFFSET (XDsdt),                   "DSDT Address"},
420     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm1aEventBlock),         "PM1A Event Block"},
421     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm1bEventBlock),         "PM1B Event Block"},
422     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm1aControlBlock),       "PM1A Control Block"},
423     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm1bControlBlock),       "PM1B Control Block"},
424     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm2ControlBlock),        "PM2 Control Block"},
425     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPmTimerBlock),           "PM Timer Block"},
426     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XGpe0Block),              "GPE0 Block"},
427     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XGpe1Block),              "GPE1 Block"},
428     {ACPI_DMT_EXIT,     0,                                          NULL}
429 };
430
431
432 /*
433  * Remaining tables are not consumed directly by the ACPICA subsystem
434  */
435
436 /*******************************************************************************
437  *
438  * ASF - Alert Standard Format table (Signature "ASF!")
439  *
440  ******************************************************************************/
441
442 /* Common Subtable header (one per Subtable) */
443
444 ACPI_DMTABLE_INFO           AcpiDmTableInfoAsfHdr[] =
445 {
446     {ACPI_DMT_ASF,      ACPI_ASF0_OFFSET (Header.Type),             "Subtable Type"},
447     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (Header.Reserved),         "Reserved"},
448     {ACPI_DMT_UINT16,   ACPI_ASF0_OFFSET (Header.Length),           "Length"},
449     {ACPI_DMT_EXIT,     0,                                          NULL}
450 };
451
452 /* 0: ASF Information */
453
454 ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf0[] =
455 {
456     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (MinResetValue),           "Minimum Reset Value"},
457     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (MinResetValue),           "Minimum Polling Interval"},
458     {ACPI_DMT_UINT16,   ACPI_ASF0_OFFSET (SystemId),                "System ID"},
459     {ACPI_DMT_UINT32,   ACPI_ASF0_OFFSET (SystemId),                "Manufacturer ID"},
460     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (Flags),                   "Flags"},
461     {ACPI_DMT_UINT24,   ACPI_ASF0_OFFSET (Reserved2[0]),            "Reserved"},
462     {ACPI_DMT_EXIT,     0,                                          NULL}
463 };
464
465 /* 1: ASF Alerts */
466
467 ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf1[] =
468 {
469     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (AssertMask),              "AssertMask"},
470     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (DeassertMask),            "DeassertMask"},
471     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (Alerts),                  "Alert Count"},
472     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (DataLength),              "Alert Data Length"},
473     {ACPI_DMT_EXIT,     0,                                          NULL}
474 };
475
476 /* 1a: ASF Alert data */
477
478 ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf1a[] =
479 {
480     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Address),                "Address"},
481     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Command),                "Command"},
482     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Mask),                   "Mask"},
483     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Value),                  "Value"},
484     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SensorType),             "SensorType"},
485     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Type),                   "Type"},
486     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Offset),                 "Offset"},
487     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SourceType),             "SourceType"},
488     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Severity),               "Severity"},
489     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SensorNumber),           "SensorNumber"},
490     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Entity),                 "Entity"},
491     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Instance),               "Instance"},
492     {ACPI_DMT_EXIT,     0,                                          NULL}
493 };
494
495 /* 2: ASF Remote Control */
496
497 ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf2[] =
498 {
499     {ACPI_DMT_UINT8,    ACPI_ASF2_OFFSET (Controls),                "Control Count"},
500     {ACPI_DMT_UINT8,    ACPI_ASF2_OFFSET (DataLength),              "Control Data Length"},
501     {ACPI_DMT_UINT16,   ACPI_ASF2_OFFSET (Reserved2),               "Reserved"},
502     {ACPI_DMT_EXIT,     0,                                          NULL}
503 };
504
505 /* 2a: ASF Control data */
506
507 ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf2a[] =
508 {
509     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Function),               "Function"},
510     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Address),                "Address"},
511     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Command),                "Command"},
512     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Value),                  "Value"},
513     {ACPI_DMT_EXIT,     0,                                          NULL}
514 };
515
516 /* 3: ASF RMCP Boot Options */
517
518 ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf3[] =
519 {
520     {ACPI_DMT_UINT56,   ACPI_ASF3_OFFSET (Capabilities[0]),         "Capabilites"},
521     {ACPI_DMT_UINT8,    ACPI_ASF3_OFFSET (CompletionCode),          "Completion Code"},
522     {ACPI_DMT_UINT32,   ACPI_ASF3_OFFSET (EnterpriseId),            "Enterprise ID"},
523     {ACPI_DMT_UINT8,    ACPI_ASF3_OFFSET (Command),                 "Command"},
524     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (Parameter),               "Parameter"},
525     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (BootOptions),             "Boot Options"},
526     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (OemParameters),           "Oem Parameters"},
527     {ACPI_DMT_EXIT,     0,                                          NULL}
528 };
529
530 /* 4: ASF Address */
531
532 ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf4[] =
533 {
534     {ACPI_DMT_UINT8,    ACPI_ASF4_OFFSET (EpromAddress),            "Eprom Address"},
535     {ACPI_DMT_UINT8,    ACPI_ASF4_OFFSET (Devices),                 "Device Count"},
536     {ACPI_DMT_EXIT,     0,                                          NULL}
537 };
538
539
540 /*******************************************************************************
541  *
542  * BERT -  Boot Error Record table
543  *
544  ******************************************************************************/
545
546 ACPI_DMTABLE_INFO           AcpiDmTableInfoBert[] =
547 {
548     {ACPI_DMT_UINT32,   ACPI_BERT_OFFSET (RegionLength),            "Boot Error Region Length"},
549     {ACPI_DMT_UINT64,   ACPI_BERT_OFFSET (Address),                 "Boot Error Region Address"},
550     {ACPI_DMT_EXIT,     0,                                          NULL}
551 };
552
553
554 /*******************************************************************************
555  *
556  * BOOT - Simple Boot Flag Table
557  *
558  ******************************************************************************/
559
560 ACPI_DMTABLE_INFO           AcpiDmTableInfoBoot[] =
561 {
562     {ACPI_DMT_UINT8,    ACPI_BOOT_OFFSET (CmosIndex),               "Boot Register Index"},
563     {ACPI_DMT_UINT24,   ACPI_BOOT_OFFSET (Reserved[0]),             "Reserved"},
564     {ACPI_DMT_EXIT,     0,                                          NULL}
565 };
566
567
568 /*******************************************************************************
569  *
570  * CPEP - Corrected Platform Error Polling table
571  *
572  ******************************************************************************/
573
574 ACPI_DMTABLE_INFO           AcpiDmTableInfoCpep[] =
575 {
576     {ACPI_DMT_UINT64,   ACPI_CPEP_OFFSET (Reserved),                "Reserved"},
577     {ACPI_DMT_EXIT,     0,                                          NULL}
578 };
579
580 ACPI_DMTABLE_INFO           AcpiDmTableInfoCpep0[] =
581 {
582     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Type),                   "Subtable Type"},
583     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Length),                 "Length"},
584     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Id),                     "Processor ID"},
585     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Eid),                    "Processor EID"},
586     {ACPI_DMT_UINT32,   ACPI_CPEP0_OFFSET (Interval),               "Polling Interval"},
587     {ACPI_DMT_EXIT,     0,                                          NULL}
588 };
589
590
591 /*******************************************************************************
592  *
593  * DBGP - Debug Port
594  *
595  ******************************************************************************/
596
597 ACPI_DMTABLE_INFO           AcpiDmTableInfoDbgp[] =
598 {
599     {ACPI_DMT_UINT8,    ACPI_DBGP_OFFSET (Type),                    "Interface Type"},
600     {ACPI_DMT_UINT24,   ACPI_DBGP_OFFSET (Reserved[0]),             "Reserved"},
601     {ACPI_DMT_GAS,      ACPI_DBGP_OFFSET (DebugPort),               "Debug Port Register"},
602     {ACPI_DMT_EXIT,     0,                                          NULL}
603 };
604
605
606 /*******************************************************************************
607  *
608  * DMAR - DMA Remapping table
609  *
610  ******************************************************************************/
611
612 ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar[] =
613 {
614     {ACPI_DMT_UINT8,    ACPI_DMAR_OFFSET (Width),                   "Host Address Width"},
615     {ACPI_DMT_UINT8,    ACPI_DMAR_OFFSET (Flags),                   "Flags"},
616     {ACPI_DMT_EXIT,     0,                                          NULL}
617 };
618
619 /* Common Subtable header (one per Subtable) */
620
621 ACPI_DMTABLE_INFO           AcpiDmTableInfoDmarHdr[] =
622 {
623     {ACPI_DMT_DMAR,     ACPI_DMAR0_OFFSET (Header.Type),            "Subtable Type"},
624     {ACPI_DMT_UINT16,   ACPI_DMAR0_OFFSET (Header.Length),          "Length"},
625     {ACPI_DMT_EXIT,     0,                                          NULL}
626 };
627
628 /* Common device scope entry */
629
630 ACPI_DMTABLE_INFO           AcpiDmTableInfoDmarScope[] =
631 {
632     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (EntryType),              "Device Scope Entry Type"},
633     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (Length),                 "Entry Length"},
634     {ACPI_DMT_UINT16,   ACPI_DMARS_OFFSET (Reserved),               "Reserved"},
635     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (EnumerationId),          "Enumeration ID"},
636     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (Bus),                    "PCI Bus Number"},
637     {ACPI_DMT_EXIT,     0,                                          NULL}
638 };
639
640 /* DMAR Subtables */
641
642 /* 0: Hardware Unit Definition */
643
644 ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar0[] =
645 {
646     {ACPI_DMT_UINT8,    ACPI_DMAR0_OFFSET (Flags),                  "Flags"},
647     {ACPI_DMT_UINT8,    ACPI_DMAR0_OFFSET (Reserved),               "Reserved"},
648     {ACPI_DMT_UINT16,   ACPI_DMAR0_OFFSET (Segment),                "PCI Segment Number"},
649     {ACPI_DMT_UINT64,   ACPI_DMAR0_OFFSET (Address),                "Register Base Address"},
650     {ACPI_DMT_EXIT,     0,                                          NULL}
651 };
652
653 /* 1: Reserved Memory Definition */
654
655 ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar1[] =
656 {
657     {ACPI_DMT_UINT16,   ACPI_DMAR1_OFFSET (Reserved),               "Reserved"},
658     {ACPI_DMT_UINT16,   ACPI_DMAR1_OFFSET (Segment),                "PCI Segment Number"},
659     {ACPI_DMT_UINT64,   ACPI_DMAR1_OFFSET (BaseAddress),            "Base Address"},
660     {ACPI_DMT_UINT64,   ACPI_DMAR1_OFFSET (EndAddress),             "End Address (limit)"},
661     {ACPI_DMT_EXIT,     0,                                          NULL}
662 };
663
664 /* 2: Root Port ATS Capability Definition */
665
666 ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar2[] =
667 {
668     {ACPI_DMT_UINT8,    ACPI_DMAR2_OFFSET (Flags),                  "Flags"},
669     {ACPI_DMT_UINT8,    ACPI_DMAR2_OFFSET (Reserved),               "Reserved"},
670     {ACPI_DMT_UINT16,   ACPI_DMAR2_OFFSET (Segment),                "PCI Segment Number"},
671     {ACPI_DMT_EXIT,     0,                                          NULL}
672 };
673
674
675 /*******************************************************************************
676  *
677  * ECDT - Embedded Controller Boot Resources Table
678  *
679  ******************************************************************************/
680
681 ACPI_DMTABLE_INFO           AcpiDmTableInfoEcdt[] =
682 {
683     {ACPI_DMT_GAS,      ACPI_ECDT_OFFSET (Control),                 "Command/Status Register"},
684     {ACPI_DMT_GAS,      ACPI_ECDT_OFFSET (Data),                    "Data Register"},
685     {ACPI_DMT_UINT32,   ACPI_ECDT_OFFSET (Uid),                     "UID"},
686     {ACPI_DMT_UINT8,    ACPI_ECDT_OFFSET (Gpe),                     "GPE Number"},
687     {ACPI_DMT_STRING,   ACPI_ECDT_OFFSET (Id[0]),                   "Namepath"},
688     {ACPI_DMT_EXIT,     0,                                          NULL}
689 };
690
691
692 /*******************************************************************************
693  *
694  * EINJ - Error Injection table
695  *
696  ******************************************************************************/
697
698 ACPI_DMTABLE_INFO           AcpiDmTableInfoEinj[] =
699 {
700     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (HeaderLength),            "Injection Header Length"},
701     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (Reserved),                "Reserved"},
702     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (Entries),                 "Injection Entry Count"},
703     {ACPI_DMT_EXIT,     0,                                          NULL}
704 };
705
706 ACPI_DMTABLE_INFO           AcpiDmTableInfoEinj0[] =
707 {
708     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Action),                 "Action"},
709     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Instruction),            "Instruction"},
710     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Flags),                  "Flags"},
711     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Reserved),               "Reserved"},
712     {ACPI_DMT_GAS,      ACPI_EINJ0_OFFSET (RegisterRegion),         "Register Region"},
713     {ACPI_DMT_UINT64,   ACPI_EINJ0_OFFSET (Value),                  "Value"},
714     {ACPI_DMT_UINT64,   ACPI_EINJ0_OFFSET (Mask),                   "Mask"},
715     {ACPI_DMT_EXIT,     0,                                          NULL}
716 };
717
718
719 /*******************************************************************************
720  *
721  * ERST - Error Record Serialization table
722  *
723  ******************************************************************************/
724
725 ACPI_DMTABLE_INFO           AcpiDmTableInfoErst[] =
726 {
727     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (HeaderLength),            "Serialization Header Length"},
728     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (Reserved),                "Reserved"},
729     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (Entries),                 "Instruction Entry Count"},
730     {ACPI_DMT_EXIT,     0,                                          NULL}
731 };
732
733
734 /*******************************************************************************
735  *
736  * HEST - Hardware Error Source table
737  *
738  ******************************************************************************/
739
740 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest[] =
741 {
742     {ACPI_DMT_UINT32,   ACPI_HEST_OFFSET (ErrorSourceCount),        "Error Source Count"},
743     {ACPI_DMT_EXIT,     0,                                          NULL}
744 };
745
746 /* HEST Subtables */
747
748 /* 0: XPF Machine Check Exception */
749
750 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest0[] =
751 {
752     {ACPI_DMT_HEST,     ACPI_HEST0_OFFSET (Header.Type),            "Subtable Type"},
753     {ACPI_DMT_UINT16,   ACPI_HEST0_OFFSET (SourceId),               "Source Id"},
754     {ACPI_DMT_UINT16,   ACPI_HEST0_OFFSET (ConfigWriteEnable),      "Configuration Write Enable"},
755     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (Flags),                  "Flags"},
756     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (Reserved1),              "Reserved"},
757     {ACPI_DMT_UINT32,   ACPI_HEST0_OFFSET (RecordsToPreAllocate),   "Records To Preallocate"},
758     {ACPI_DMT_UINT32,   ACPI_HEST0_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record"},
759     {ACPI_DMT_UINT64,   ACPI_HEST0_OFFSET (GlobalCapabilityData),   "Global Capability Data"},
760     {ACPI_DMT_UINT64,   ACPI_HEST0_OFFSET (GlobalControlData),      "Global Control Data"},
761     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (NumHardwareBanks),       "Num Hardware Banks"},
762     {ACPI_DMT_UINT56,   ACPI_HEST0_OFFSET (Reserved2),              "Reserved"},
763     {ACPI_DMT_EXIT,     0,                                          NULL}
764 };
765
766 /* 1: XPF Corrected Machine Check */
767
768 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest1[] =
769 {
770     {ACPI_DMT_HEST,     ACPI_HEST1_OFFSET (Header.Type),            "Subtable Type"},
771     {ACPI_DMT_UINT16,   ACPI_HEST1_OFFSET (SourceId),               "Source Id"},
772     {ACPI_DMT_UINT16,   ACPI_HEST1_OFFSET (ConfigWriteEnable),      "Configuration Write Enable"},
773     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (Flags),                  "Flags"},
774     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (Enabled),                "Enabled"},
775     {ACPI_DMT_UINT32,   ACPI_HEST1_OFFSET (RecordsToPreAllocate),   "Records To Preallocate"},
776     {ACPI_DMT_UINT32,   ACPI_HEST1_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record"},
777     {ACPI_DMT_HESTNTFY, ACPI_HEST1_OFFSET (Notify),                 "Notify"},
778     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (NumHardwareBanks),       "Num Hardware Banks"},
779     {ACPI_DMT_UINT24,   ACPI_HEST1_OFFSET (Reserved),               "Reserved"},
780     {ACPI_DMT_EXIT,     0,                                          NULL}
781 };
782
783 /* 3: XPF Non-Maskable Interrupt */
784
785 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest3[] =
786 {
787     {ACPI_DMT_HEST,     ACPI_HEST3_OFFSET (Header.Type),            "Subtable Type"},
788     {ACPI_DMT_UINT16,   ACPI_HEST3_OFFSET (SourceId),               "Source Id"},
789     {ACPI_DMT_UINT32,   ACPI_HEST3_OFFSET (Reserved),               "Reserved"},
790     {ACPI_DMT_UINT32,   ACPI_HEST3_OFFSET (RecordsToPreAllocate),   "Records To Preallocate"},
791     {ACPI_DMT_UINT32,   ACPI_HEST3_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record"},
792     {ACPI_DMT_UINT32,   ACPI_HEST3_OFFSET (MaxRawDataLength),       "Max Raw Data Length"},
793     {ACPI_DMT_EXIT,     0,                                          NULL}
794 };
795
796 /* 4: IPF Corrected Machine Check */
797
798 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest4[] =
799 {
800     {ACPI_DMT_HEST,     ACPI_HEST4_OFFSET (Header.Type),            "Subtable Type"},
801     {ACPI_DMT_UINT8,    ACPI_HEST4_OFFSET (Enabled),                "Enabled"},
802     {ACPI_DMT_UINT8,    ACPI_HEST4_OFFSET (Reserved),               "Reserved"},
803     {ACPI_DMT_EXIT,     0,                                          NULL}
804 };
805
806 /* 5: IPF Corrected Platform Error */
807
808 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest5[] =
809 {
810     {ACPI_DMT_HEST,     ACPI_HEST5_OFFSET (Header.Type),            "Subtable Type"},
811     {ACPI_DMT_UINT8,    ACPI_HEST5_OFFSET (Enabled),                "Enabled"},
812     {ACPI_DMT_UINT8,    ACPI_HEST5_OFFSET (Reserved),               "Reserved"},
813     {ACPI_DMT_EXIT,     0,                                          NULL}
814 };
815
816 /* 6: PCI Express Root Port AER */
817
818 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest6[] =
819 {
820     {ACPI_DMT_HEST,     ACPI_HEST6_OFFSET (Header.Type),                "Subtable Type"},
821     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.SourceId),               "Source Id"},
822     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.ConfigWriteEnable),      "Configuration Write Enable"},
823     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Flags),                  "Flags"},
824     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Enabled),                "Enabled"},
825     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.RecordsToPreAllocate),   "Records To Preallocate"},
826     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.MaxSectionsPerRecord),   "Max Sections Per Record"},
827     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.Bus),                    "Bus"},
828     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Device),                 "Device"},
829     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Function),               "Function"},
830     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.DeviceControl),          "DeviceControl"},
831     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved),               "Reserved"},
832     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableErrorMask),     "Uncorrectable Error Mask"},
833     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableErrorSeverity), "Uncorrectable Error Severity"},
834     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.CorrectableErrorMask),       "Correctable Error Mask"},
835     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.AdvancedErrorCapabilities),  "Advanced Error Capabilities"},
836     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (RootErrorCommand),               "Root Error Command"},
837     {ACPI_DMT_EXIT,     0,                                          NULL}
838 };
839
840 /* 7: PCI Express AER (AER Endpoint) */
841
842 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest7[] =
843 {
844     {ACPI_DMT_HEST,     ACPI_HEST6_OFFSET (Header.Type),                "Subtable Type"},
845     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.SourceId),               "Source Id"},
846     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.ConfigWriteEnable),      "Configuration Write Enable"},
847     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Flags),                  "Flags"},
848     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Enabled),                "Enabled"},
849     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.RecordsToPreAllocate),   "Records To Preallocate"},
850     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.MaxSectionsPerRecord),   "Max Sections Per Record"},
851     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.Bus),                    "Bus"},
852     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Device),                 "Device"},
853     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Function),               "Function"},
854     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.DeviceControl),          "DeviceControl"},
855     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved),               "Reserved"},
856     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableErrorMask),     "Uncorrectable Error Mask"},
857     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableErrorSeverity), "Uncorrectable Error Severity"},
858     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.CorrectableErrorMask),       "Correctable Error Mask"},
859     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.AdvancedErrorCapabilities),  "Advanced Error Capabilities"},
860     {ACPI_DMT_EXIT,     0,                                          NULL}
861 };
862
863 /* 8: PCI Express/PCI-X Bridge AER */
864
865 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest8[] =
866 {
867     {ACPI_DMT_HEST,     ACPI_HEST6_OFFSET (Header.Type),                "Subtable Type"},
868     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.SourceId),               "Source Id"},
869     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.ConfigWriteEnable),      "Configuration Write Enable"},
870     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Flags),                  "Flags"},
871     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Enabled),                "Enabled"},
872     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.RecordsToPreAllocate),   "Records To Preallocate"},
873     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.MaxSectionsPerRecord),   "Max Sections Per Record"},
874     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.Bus),                    "Bus"},
875     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Device),                 "Device"},
876     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Function),               "Function"},
877     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.DeviceControl),          "DeviceControl"},
878     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved),               "Reserved"},
879     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableErrorMask),     "Uncorrectable Error Mask"},
880     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableErrorSeverity), "Uncorrectable Error Severity"},
881     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.CorrectableErrorMask),       "Correctable Error Mask"},
882     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.AdvancedErrorCapabilities),  "Advanced Error Capabilities"},
883     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (SecondaryUncorrectableErrorMask),     "2nd Uncorrectable Err Mask"},
884     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (SecondaryUncorrectableErrorSeverity), "2nd Uncorrectable Err Severity"},
885     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (SecondaryAdvancedCapabilities),       "2nd Advanced Capabilities"},
886     {ACPI_DMT_EXIT,     0,                                          NULL}
887 };
888
889 /* 9: Generic Hardware Error Source */
890
891 ACPI_DMTABLE_INFO           AcpiDmTableInfoHest9[] =
892 {
893     {ACPI_DMT_HEST,     ACPI_HEST9_OFFSET (Header.Type),            "Subtable Type"},
894     {ACPI_DMT_UINT16,   ACPI_HEST9_OFFSET (SourceId),               "Source Id"},
895     {ACPI_DMT_UINT16,   ACPI_HEST9_OFFSET (RelatedSourceId),        "Related Source Id"},
896     {ACPI_DMT_UINT8,    ACPI_HEST9_OFFSET (ConfigWriteEnable),      "Configuration Write Enable"},
897     {ACPI_DMT_UINT8,    ACPI_HEST9_OFFSET (Enabled),                "Enabled"},
898     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (RecordsToPreAllocate),   "Records To Preallocate"},
899     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record"},
900     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (MaxRawDataLength),       "Max Raw Data Length"},
901     {ACPI_DMT_GAS,      ACPI_HEST9_OFFSET (ErrorStatusAddress),     "Error Status Address"},
902     {ACPI_DMT_HESTNTFY, ACPI_HEST9_OFFSET (Notify),                 "Notify"},
903     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (ErrorStatusBlockLength), "Error Status Block Length"},
904     {ACPI_DMT_EXIT,     0,                                          NULL}
905 };
906
907 ACPI_DMTABLE_INFO           AcpiDmTableInfoHestNotify[10] =
908 {
909     {ACPI_DMT_HESTNTYP, ACPI_HESTN_OFFSET (Type),                   "Notify Type"},
910     {ACPI_DMT_UINT8,    ACPI_HESTN_OFFSET (Length),                 "Notify Length"},
911     {ACPI_DMT_UINT16,   ACPI_HESTN_OFFSET (ConfigWriteEnable),      "Configuration Write Enable"},
912     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollInterval),           "PollInterval"},
913     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (Vector),                 "Vector"},
914     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollingThresholdValue),  "Polling Threshold Value"},
915     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollingThresholdWindow), "Polling Threshold Window"},
916     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (ErrorThresholdValue),    "Error Threshold Value"},
917     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (ErrorThresholdWindow),   "Error Threshold Window"},
918     {ACPI_DMT_EXIT,     0,                                          NULL}
919 };
920
921
922 /*******************************************************************************
923  *
924  * HPET - High Precision Event Timer table
925  *
926  ******************************************************************************/
927
928 ACPI_DMTABLE_INFO           AcpiDmTableInfoHpet[] =
929 {
930     {ACPI_DMT_UINT32,   ACPI_HPET_OFFSET (Id),                      "Hardware Block ID"},
931     {ACPI_DMT_GAS,      ACPI_HPET_OFFSET (Address),                 "Timer Block Register"},
932     {ACPI_DMT_UINT8,    ACPI_HPET_OFFSET (Sequence),                "Sequence Number"},
933     {ACPI_DMT_UINT16,   ACPI_HPET_OFFSET (MinimumTick),             "Minimum Clock Ticks"},
934     {ACPI_DMT_UINT8,    ACPI_HPET_OFFSET (Flags),                   "Flags (decoded below)"},
935     {ACPI_DMT_FLAG0,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "Page Protect"},
936     {ACPI_DMT_FLAG1,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "4K Page Protect"},
937     {ACPI_DMT_FLAG2,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "64K Page Protect"},
938     {ACPI_DMT_EXIT,     0,                                          NULL}
939 };
940
941
942 /*******************************************************************************
943  *
944  * MADT - Multiple APIC Description Table and subtables
945  *
946  ******************************************************************************/
947
948 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt[] =
949 {
950     {ACPI_DMT_UINT32,   ACPI_MADT_OFFSET (Address),                 "Local Apic Address"},
951     {ACPI_DMT_UINT32,   ACPI_MADT_OFFSET (Flags),                   "Flags (decoded below)"},
952     {ACPI_DMT_FLAG0,    ACPI_MADT_FLAG_OFFSET (Flags,0),            "PC-AT Compatibility"},
953     {ACPI_DMT_EXIT,     0,                                          NULL}
954 };
955
956 /* Common Subtable header (one per Subtable) */
957
958 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadtHdr[] =
959 {
960     {ACPI_DMT_MADT,     ACPI_MADTH_OFFSET (Type),                   "Subtable Type"},
961     {ACPI_DMT_UINT8,    ACPI_MADTH_OFFSET (Length),                 "Length"},
962     {ACPI_DMT_EXIT,     0,                                          NULL}
963 };
964
965 /* MADT Subtables */
966
967 /* 0: processor APIC */
968
969 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt0[] =
970 {
971     {ACPI_DMT_UINT8,    ACPI_MADT0_OFFSET (ProcessorId),            "Processor ID"},
972     {ACPI_DMT_UINT8,    ACPI_MADT0_OFFSET (Id),                     "Local Apic ID"},
973     {ACPI_DMT_UINT32,   ACPI_MADT0_OFFSET (LapicFlags),             "Flags (decoded below)"},
974     {ACPI_DMT_FLAG0,    ACPI_MADT0_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled"},
975     {ACPI_DMT_EXIT,     0,                                          NULL}
976 };
977
978 /* 1: IO APIC */
979
980 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt1[] =
981 {
982     {ACPI_DMT_UINT8,    ACPI_MADT1_OFFSET (Id),                     "I/O Apic ID"},
983     {ACPI_DMT_UINT8,    ACPI_MADT1_OFFSET (Reserved),               "Reserved"},
984     {ACPI_DMT_UINT32,   ACPI_MADT1_OFFSET (Address),                "Address"},
985     {ACPI_DMT_UINT32,   ACPI_MADT1_OFFSET (GlobalIrqBase),          "Interrupt"},
986     {ACPI_DMT_EXIT,     0,                                          NULL}
987 };
988
989 /* 2: Interrupt Override */
990
991 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt2[] =
992 {
993     {ACPI_DMT_UINT8,    ACPI_MADT2_OFFSET (Bus),                    "Bus"},
994     {ACPI_DMT_UINT8,    ACPI_MADT2_OFFSET (SourceIrq),              "Source"},
995     {ACPI_DMT_UINT32,   ACPI_MADT2_OFFSET (GlobalIrq),              "Interrupt"},
996     {ACPI_DMT_UINT16,   ACPI_MADT2_OFFSET (IntiFlags),              "Flags (decoded below)"},
997     {ACPI_DMT_FLAGS0,   ACPI_MADT2_FLAG_OFFSET (IntiFlags,0),       "Polarity"},
998     {ACPI_DMT_FLAGS2,   ACPI_MADT2_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode"},
999     {ACPI_DMT_EXIT,     0,                                          NULL}
1000 };
1001
1002 /* 3: NMI Sources */
1003
1004 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt3[] =
1005 {
1006     {ACPI_DMT_UINT16,   ACPI_MADT3_OFFSET (IntiFlags),              "Flags (decoded below)"},
1007     {ACPI_DMT_FLAGS0,   ACPI_MADT3_FLAG_OFFSET (IntiFlags,0),       "Polarity"},
1008     {ACPI_DMT_FLAGS2,   ACPI_MADT3_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode"},
1009     {ACPI_DMT_UINT32,   ACPI_MADT3_OFFSET (GlobalIrq),              "Interrupt"},
1010     {ACPI_DMT_EXIT,     0,                                          NULL}
1011 };
1012
1013 /* 4: Local APIC NMI */
1014
1015 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt4[] =
1016 {
1017     {ACPI_DMT_UINT8,    ACPI_MADT4_OFFSET (ProcessorId),            "Processor ID"},
1018     {ACPI_DMT_UINT16,   ACPI_MADT4_OFFSET (IntiFlags),              "Flags (decoded below)"},
1019     {ACPI_DMT_FLAGS0,   ACPI_MADT4_FLAG_OFFSET (IntiFlags,0),       "Polarity"},
1020     {ACPI_DMT_FLAGS2,   ACPI_MADT4_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode"},
1021     {ACPI_DMT_UINT8,    ACPI_MADT4_OFFSET (Lint),                   "Interrupt Input LINT"},
1022     {ACPI_DMT_EXIT,     0,                                          NULL}
1023 };
1024
1025 /* 5: Address Override */
1026
1027 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt5[] =
1028 {
1029     {ACPI_DMT_UINT16,   ACPI_MADT5_OFFSET (Reserved),               "Reserved"},
1030     {ACPI_DMT_UINT64,   ACPI_MADT5_OFFSET (Address),                "APIC Address"},
1031     {ACPI_DMT_EXIT,     0,                                          NULL}
1032 };
1033
1034 /* 6: I/O Sapic */
1035
1036 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt6[] =
1037 {
1038     {ACPI_DMT_UINT8,    ACPI_MADT6_OFFSET (Id),                     "I/O Sapic ID"},
1039     {ACPI_DMT_UINT8,    ACPI_MADT6_OFFSET (Reserved),               "Reserved"},
1040     {ACPI_DMT_UINT32,   ACPI_MADT6_OFFSET (GlobalIrqBase),          "Interrupt Base"},
1041     {ACPI_DMT_UINT64,   ACPI_MADT6_OFFSET (Address),                "Address"},
1042     {ACPI_DMT_EXIT,     0,                                          NULL}
1043 };
1044
1045 /* 7: Local Sapic */
1046
1047 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt7[] =
1048 {
1049     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (ProcessorId),            "Processor ID"},
1050     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (Id),                     "Local Sapic ID"},
1051     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (Eid),                    "Local Sapic EID"},
1052     {ACPI_DMT_UINT24,   ACPI_MADT7_OFFSET (Reserved[0]),            "Reserved"},
1053     {ACPI_DMT_UINT32,   ACPI_MADT7_OFFSET (LapicFlags),             "Flags (decoded below)"},
1054     {ACPI_DMT_FLAG0,    ACPI_MADT7_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled"},
1055     {ACPI_DMT_UINT32,   ACPI_MADT7_OFFSET (Uid),                    "Processor UID"},
1056     {ACPI_DMT_STRING,   ACPI_MADT7_OFFSET (UidString[0]),           "Processor UID String"},
1057     {ACPI_DMT_EXIT,     0,                                          NULL}
1058 };
1059
1060 /* 8: Platform Interrupt Source */
1061
1062 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt8[] =
1063 {
1064     {ACPI_DMT_UINT16,   ACPI_MADT8_OFFSET (IntiFlags),              "Flags (decoded below)"},
1065     {ACPI_DMT_FLAGS0,   ACPI_MADT8_FLAG_OFFSET (IntiFlags,0),       "Polarity"},
1066     {ACPI_DMT_FLAGS2,   ACPI_MADT8_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode"},
1067     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Type),                   "InterruptType"},
1068     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Id),                     "Processor ID"},
1069     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Eid),                    "Processor EID"},
1070     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (IoSapicVector),          "I/O Sapic Vector"},
1071     {ACPI_DMT_UINT32,   ACPI_MADT8_OFFSET (GlobalIrq),              "Interrupt"},
1072     {ACPI_DMT_UINT32,   ACPI_MADT8_OFFSET (Flags),                  "Flags (decoded below)"},
1073     {ACPI_DMT_FLAG0,    ACPI_MADT8_OFFSET (Flags),                  "CPEI Override"},
1074     {ACPI_DMT_EXIT,     0,                                          NULL}
1075 };
1076
1077 /* 9: Processor Local X2_APIC (07/2008) */
1078
1079 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt9[] =
1080 {
1081     {ACPI_DMT_UINT16,   ACPI_MADT9_OFFSET (Reserved),               "Reserved"},
1082     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (LocalApicId),            "Processor x2Apic ID"},
1083     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (LapicFlags),             "Flags (decoded below)"},
1084     {ACPI_DMT_FLAG0,    ACPI_MADT9_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled"},
1085     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (Uid),                    "Processor UID"},
1086     {ACPI_DMT_EXIT,     0,                                          NULL}
1087 };
1088
1089 /* 10: Local X2_APIC NMI (07/2008) */
1090
1091 ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt10[] =
1092 {
1093     {ACPI_DMT_UINT16,   ACPI_MADT10_OFFSET (IntiFlags),             "Flags (decoded below)"},
1094     {ACPI_DMT_FLAGS0,   ACPI_MADT10_FLAG_OFFSET (IntiFlags,0),      "Polarity"},
1095     {ACPI_DMT_FLAGS2,   ACPI_MADT10_FLAG_OFFSET (IntiFlags,0),      "Trigger Mode"},
1096     {ACPI_DMT_UINT32,   ACPI_MADT10_OFFSET (Uid),                   "Processor UID"},
1097     {ACPI_DMT_UINT8,    ACPI_MADT10_OFFSET (Lint),                  "Interrupt Input LINT"},
1098     {ACPI_DMT_UINT24,   ACPI_MADT10_OFFSET (Reserved[0]),           "Reserved"},
1099     {ACPI_DMT_EXIT,     0,                                          NULL}
1100 };
1101
1102
1103 /*******************************************************************************
1104  *
1105  * MCFG - PCI Memory Mapped Configuration table and Subtable
1106  *
1107  ******************************************************************************/
1108
1109 ACPI_DMTABLE_INFO           AcpiDmTableInfoMcfg[] =
1110 {
1111     {ACPI_DMT_UINT64,   ACPI_MCFG_OFFSET (Reserved[0]),             "Reserved"},
1112     {ACPI_DMT_EXIT,     0,                                          NULL}
1113 };
1114
1115 ACPI_DMTABLE_INFO           AcpiDmTableInfoMcfg0[] =
1116 {
1117     {ACPI_DMT_UINT64,   ACPI_MCFG0_OFFSET (Address),                "Base Address"},
1118     {ACPI_DMT_UINT16,   ACPI_MCFG0_OFFSET (PciSegment),             "Segment Group Number"},
1119     {ACPI_DMT_UINT8,    ACPI_MCFG0_OFFSET (StartBusNumber),         "Start Bus Number"},
1120     {ACPI_DMT_UINT8,    ACPI_MCFG0_OFFSET (EndBusNumber),           "End Bus Number"},
1121     {ACPI_DMT_UINT32,   ACPI_MCFG0_OFFSET (Reserved),               "Reserved"},
1122     {ACPI_DMT_EXIT,     0,                                          NULL}
1123 };
1124
1125
1126 /*******************************************************************************
1127  *
1128  * SBST - Smart Battery Specification Table
1129  *
1130  ******************************************************************************/
1131
1132 ACPI_DMTABLE_INFO           AcpiDmTableInfoSbst[] =
1133 {
1134     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (WarningLevel),            "Warning Level"},
1135     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (LowLevel),                "Low Level"},
1136     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (CriticalLevel),           "Critical Level"},
1137     {ACPI_DMT_EXIT,     0,                                          NULL}
1138 };
1139
1140
1141 /*******************************************************************************
1142  *
1143  * SLIC - Software Licensing Description Table. NOT FULLY IMPLEMENTED
1144  *
1145  ******************************************************************************/
1146
1147 ACPI_DMTABLE_INFO           AcpiDmTableInfoSlic[] =
1148 {
1149     {ACPI_DMT_EXIT,     0,                                          NULL}
1150 };
1151
1152
1153 /*******************************************************************************
1154  *
1155  * SLIT - System Locality Information Table
1156  *
1157  ******************************************************************************/
1158
1159 ACPI_DMTABLE_INFO           AcpiDmTableInfoSlit[] =
1160 {
1161     {ACPI_DMT_UINT64,   ACPI_SLIT_OFFSET (LocalityCount),          "Localities"},
1162     {ACPI_DMT_EXIT,     0,                                          NULL}
1163 };
1164
1165
1166 /*******************************************************************************
1167  *
1168  * SPCR - Serial Port Console Redirection table
1169  *
1170  ******************************************************************************/
1171
1172 ACPI_DMTABLE_INFO           AcpiDmTableInfoSpcr[] =
1173 {
1174     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (InterfaceType),           "Interface Type"},
1175     {ACPI_DMT_UINT24,   ACPI_SPCR_OFFSET (Reserved[0]),             "Reserved"},
1176     {ACPI_DMT_GAS,      ACPI_SPCR_OFFSET (SerialPort),              "Serial Port Register"},
1177     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (InterruptType),           "Interrupt Type"},
1178     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PcInterrupt),             "PCAT-compatible IRQ"},
1179     {ACPI_DMT_UINT32,   ACPI_SPCR_OFFSET (Interrupt),               "Interrupt"},
1180     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (BaudRate),                "Baud Rate"},
1181     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (Parity),                  "Parity"},
1182     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (StopBits),                "Stop Bits"},
1183     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (FlowControl),             "Flow Control"},
1184     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (TerminalType),            "Terminal Type"},
1185     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (Reserved2),               "Reserved"},
1186     {ACPI_DMT_UINT16,   ACPI_SPCR_OFFSET (PciDeviceId),             "PCI Device ID"},
1187     {ACPI_DMT_UINT16,   ACPI_SPCR_OFFSET (PciVendorId),             "PCI Vendor ID"},
1188     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PciBus),                  "PCI Bus"},
1189     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PciDevice),               "PCI Device"},
1190     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PciFunction),             "PCI Function"},
1191     {ACPI_DMT_UINT32,   ACPI_SPCR_OFFSET (PciFlags),                "PCI Flags"},
1192     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PciSegment),              "PCI Segment"},
1193     {ACPI_DMT_UINT32,   ACPI_SPCR_OFFSET (Reserved2),               "Reserved"},
1194     {ACPI_DMT_EXIT,     0,                                          NULL}
1195 };
1196
1197
1198 /*******************************************************************************
1199  *
1200  * SPMI - Server Platform Management Interface table
1201  *
1202  ******************************************************************************/
1203
1204 ACPI_DMTABLE_INFO           AcpiDmTableInfoSpmi[] =
1205 {
1206     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (Reserved),                "Reserved"},
1207     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (InterfaceType),           "Interface Type"},
1208     {ACPI_DMT_UINT16,   ACPI_SPMI_OFFSET (SpecRevision),            "IPMI Spec Version"},
1209     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (InterruptType),           "Interrupt Type"},
1210     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (GpeNumber),               "GPE Number"},
1211     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (Reserved1),               "Reserved"},
1212     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciDeviceFlag),           "PCI Device Flag"},
1213     {ACPI_DMT_UINT32,   ACPI_SPMI_OFFSET (Interrupt),               "Interrupt"},
1214     {ACPI_DMT_GAS,      ACPI_SPMI_OFFSET (IpmiRegister),            "IPMI Register"},
1215     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciSegment),              "PCI Segment"},
1216     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciBus),                  "PCI Bus"},
1217     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciDevice),               "PCI Device"},
1218     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciFunction),             "PCI Function"},
1219     {ACPI_DMT_EXIT,     0,                                          NULL}
1220 };
1221
1222
1223 /*******************************************************************************
1224  *
1225  * SRAT - System Resource Affinity Table and Subtables
1226  *
1227  ******************************************************************************/
1228
1229 ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat[] =
1230 {
1231     {ACPI_DMT_UINT32,   ACPI_SRAT_OFFSET (TableRevision),           "Table Revision"},
1232     {ACPI_DMT_UINT64,   ACPI_SRAT_OFFSET (Reserved),                "Reserved"},
1233     {ACPI_DMT_EXIT,     0,                                          NULL}
1234 };
1235
1236 /* Common Subtable header (one per Subtable) */
1237
1238 ACPI_DMTABLE_INFO           AcpiDmTableInfoSratHdr[] =
1239 {
1240     {ACPI_DMT_SRAT,     ACPI_SRATH_OFFSET (Type),                   "Subtable Type"},
1241     {ACPI_DMT_UINT8,    ACPI_SRATH_OFFSET (Length),                 "Length"},
1242     {ACPI_DMT_EXIT,     0,                                          NULL}
1243 };
1244
1245 /* SRAT Subtables */
1246
1247 /* 0: Processor Local APIC/SAPIC Affinity */
1248
1249 ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat0[] =
1250 {
1251     {ACPI_DMT_UINT8,    ACPI_SRAT0_OFFSET (ProximityDomainLo),      "Proximity Domain Low(8)"},
1252     {ACPI_DMT_UINT8,    ACPI_SRAT0_OFFSET (ApicId),                 "Apic ID"},
1253     {ACPI_DMT_UINT32,   ACPI_SRAT0_OFFSET (Flags),                  "Flags (decoded below)"},
1254     {ACPI_DMT_FLAG0,    ACPI_SRAT0_FLAG_OFFSET (Flags,0),           "Enabled"},
1255     {ACPI_DMT_UINT8,    ACPI_SRAT0_OFFSET (LocalSapicEid),          "Local Sapic EID"},
1256     {ACPI_DMT_UINT24,   ACPI_SRAT0_OFFSET (ProximityDomainHi[0]),   "Proximity Domain High(24)"},
1257     {ACPI_DMT_UINT32,   ACPI_SRAT0_OFFSET (Reserved),               "Reserved"},
1258     {ACPI_DMT_EXIT,     0,                                          NULL}
1259 };
1260
1261 /* 1: Memory Affinity */
1262
1263 ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat1[] =
1264 {
1265     {ACPI_DMT_UINT32,   ACPI_SRAT1_OFFSET (ProximityDomain),        "Proximity Domain"},
1266     {ACPI_DMT_UINT16,   ACPI_SRAT1_OFFSET (Reserved),               "Reserved"},
1267     {ACPI_DMT_UINT64,   ACPI_SRAT1_OFFSET (BaseAddress),            "Base Address"},
1268     {ACPI_DMT_UINT64,   ACPI_SRAT1_OFFSET (Length),                 "Address Length"},
1269     {ACPI_DMT_UINT32,   ACPI_SRAT1_OFFSET (Reserved1),              "Reserved"},
1270     {ACPI_DMT_UINT32,   ACPI_SRAT1_OFFSET (Flags),                  "Flags (decoded below)"},
1271     {ACPI_DMT_FLAG0,    ACPI_SRAT1_FLAG_OFFSET (Flags,0),           "Enabled"},
1272     {ACPI_DMT_FLAG1,    ACPI_SRAT1_FLAG_OFFSET (Flags,0),           "Hot Pluggable"},
1273     {ACPI_DMT_FLAG2,    ACPI_SRAT1_FLAG_OFFSET (Flags,0),           "Non-Volatile"},
1274     {ACPI_DMT_UINT64,   ACPI_SRAT1_OFFSET (Reserved2),              "Reserved"},
1275     {ACPI_DMT_EXIT,     0,                                          NULL}
1276 };
1277
1278 /* 2: Processor Local X2_APIC Affinity (07/2008) */
1279
1280 ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat2[] =
1281 {
1282     {ACPI_DMT_UINT16,   ACPI_SRAT2_OFFSET (Reserved),               "Reserved"},
1283     {ACPI_DMT_UINT32,   ACPI_SRAT2_OFFSET (ProximityDomain),        "Proximity Domain"},
1284     {ACPI_DMT_UINT32,   ACPI_SRAT2_OFFSET (ApicId),                 "Apic ID"},
1285     {ACPI_DMT_UINT32,   ACPI_SRAT2_OFFSET (Flags),                  "Flags (decoded below)"},
1286     {ACPI_DMT_FLAG0,    ACPI_SRAT2_FLAG_OFFSET (Flags,0),           "Enabled"},
1287     {ACPI_DMT_EXIT,     0,                                          NULL}
1288 };
1289
1290
1291 /*******************************************************************************
1292  *
1293  * TCPA - Trusted Computing Platform Alliance table
1294  *
1295  ******************************************************************************/
1296
1297 ACPI_DMTABLE_INFO           AcpiDmTableInfoTcpa[] =
1298 {
1299     {ACPI_DMT_UINT16,   ACPI_TCPA_OFFSET (Reserved),                "Reserved"},
1300     {ACPI_DMT_UINT32,   ACPI_TCPA_OFFSET (MaxLogLength),            "Max Event Log Length"},
1301     {ACPI_DMT_UINT64,   ACPI_TCPA_OFFSET (LogAddress),              "Event Log Address"},
1302     {ACPI_DMT_EXIT,     0,                                          NULL}
1303 };
1304
1305
1306 /*******************************************************************************
1307  *
1308  * WDRT - Watchdog Resource Table
1309  *
1310  ******************************************************************************/
1311
1312 ACPI_DMTABLE_INFO           AcpiDmTableInfoWdrt[] =
1313 {
1314     {ACPI_DMT_UINT32,   ACPI_WDRT_OFFSET (HeaderLength),            "Header Length"},
1315     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (PciSegment),              "PCI Segment"},
1316     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (PciBus),                  "PCI Bus"},
1317     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (PciDevice),               "PCI Device"},
1318     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (PciFunction),             "PCI Function"},
1319     {ACPI_DMT_UINT32,   ACPI_WDRT_OFFSET (TimerPeriod),             "Timer Period"},
1320     {ACPI_DMT_UINT32,   ACPI_WDRT_OFFSET (MaxCount),                "Max Count"},
1321     {ACPI_DMT_UINT32,   ACPI_WDRT_OFFSET (MinCount),                "Min Count"},
1322     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (Flags),                   "Flags (decoded below)"},
1323     {ACPI_DMT_FLAG0,    ACPI_WDRT_OFFSET (Flags),                   "Enabled"},
1324     {ACPI_DMT_FLAG7,    ACPI_WDRT_OFFSET (Flags),                   "Stopped When Asleep"},
1325     {ACPI_DMT_UINT24,   ACPI_WDRT_OFFSET (Reserved[0]),             "Reserved"},
1326     {ACPI_DMT_UINT32,   ACPI_WDRT_OFFSET (Entries),                 "Watchdog Entries"},
1327     {ACPI_DMT_EXIT,     0,                                          NULL}
1328 };
1329