Home | History | Annotate | Line # | Download | only in common
dmtbinfo1.c revision 1.1.1.9
      1      1.1  christos /******************************************************************************
      2      1.1  christos  *
      3      1.1  christos  * Module Name: dmtbinfo1 - Table info for non-AML tables
      4      1.1  christos  *
      5      1.1  christos  *****************************************************************************/
      6      1.1  christos 
      7      1.1  christos /*
      8  1.1.1.8  christos  * Copyright (C) 2000 - 2022, Intel Corp.
      9      1.1  christos  * All rights reserved.
     10      1.1  christos  *
     11      1.1  christos  * Redistribution and use in source and binary forms, with or without
     12      1.1  christos  * modification, are permitted provided that the following conditions
     13      1.1  christos  * are met:
     14      1.1  christos  * 1. Redistributions of source code must retain the above copyright
     15      1.1  christos  *    notice, this list of conditions, and the following disclaimer,
     16      1.1  christos  *    without modification.
     17      1.1  christos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18      1.1  christos  *    substantially similar to the "NO WARRANTY" disclaimer below
     19      1.1  christos  *    ("Disclaimer") and any redistribution must be conditioned upon
     20      1.1  christos  *    including a substantially similar Disclaimer requirement for further
     21      1.1  christos  *    binary redistribution.
     22      1.1  christos  * 3. Neither the names of the above-listed copyright holders nor the names
     23      1.1  christos  *    of any contributors may be used to endorse or promote products derived
     24      1.1  christos  *    from this software without specific prior written permission.
     25      1.1  christos  *
     26      1.1  christos  * Alternatively, this software may be distributed under the terms of the
     27      1.1  christos  * GNU General Public License ("GPL") version 2 as published by the Free
     28      1.1  christos  * Software Foundation.
     29      1.1  christos  *
     30      1.1  christos  * NO WARRANTY
     31      1.1  christos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32      1.1  christos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33  1.1.1.5  christos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     34      1.1  christos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35      1.1  christos  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36      1.1  christos  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37      1.1  christos  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38      1.1  christos  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39      1.1  christos  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40      1.1  christos  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41      1.1  christos  * POSSIBILITY OF SUCH DAMAGES.
     42      1.1  christos  */
     43      1.1  christos 
     44      1.1  christos #include "acpi.h"
     45      1.1  christos #include "accommon.h"
     46      1.1  christos #include "acdisasm.h"
     47      1.1  christos #include "actbinfo.h"
     48      1.1  christos 
     49      1.1  christos /* This module used for application-level code only */
     50      1.1  christos 
     51      1.1  christos #define _COMPONENT          ACPI_CA_DISASSEMBLER
     52      1.1  christos         ACPI_MODULE_NAME    ("dmtbinfo1")
     53      1.1  christos 
     54      1.1  christos /*
     55      1.1  christos  * How to add a new table:
     56      1.1  christos  *
     57      1.1  christos  * - Add the C table definition to the actbl1.h or actbl2.h header.
     58      1.1  christos  * - Add ACPI_xxxx_OFFSET macro(s) for the table (and subtables) to list below.
     59      1.1  christos  * - Define the table in this file (for the disassembler). If any
     60      1.1  christos  *   new data types are required (ACPI_DMT_*), see below.
     61      1.1  christos  * - Add an external declaration for the new table definition (AcpiDmTableInfo*)
     62      1.1  christos  *     in acdisam.h
     63      1.1  christos  * - Add new table definition to the dispatch table in dmtable.c (AcpiDmTableData)
     64      1.1  christos  *     If a simple table (with no subtables), no disassembly code is needed.
     65      1.1  christos  *     Otherwise, create the AcpiDmDump* function for to disassemble the table
     66      1.1  christos  *     and add it to the dmtbdump.c file.
     67      1.1  christos  * - Add an external declaration for the new AcpiDmDump* function in acdisasm.h
     68      1.1  christos  * - Add the new AcpiDmDump* function to the dispatch table in dmtable.c
     69      1.1  christos  * - Create a template for the new table
     70      1.1  christos  * - Add data table compiler support
     71      1.1  christos  *
     72      1.1  christos  * How to add a new data type (ACPI_DMT_*):
     73      1.1  christos  *
     74      1.1  christos  * - Add new type at the end of the ACPI_DMT list in acdisasm.h
     75      1.1  christos  * - Add length and implementation cases in dmtable.c  (disassembler)
     76      1.1  christos  * - Add type and length cases in dtutils.c (DT compiler)
     77      1.1  christos  */
     78      1.1  christos 
     79      1.1  christos /*
     80      1.1  christos  * ACPI Table Information, used to dump formatted ACPI tables
     81      1.1  christos  *
     82      1.1  christos  * Each entry is of the form:  <Field Type, Field Offset, Field Name>
     83      1.1  christos  */
     84      1.1  christos 
     85      1.1  christos 
     86      1.1  christos /*******************************************************************************
     87      1.1  christos  *
     88  1.1.1.7  christos  * AEST - ARM Error Source table. Conforms to:
     89  1.1.1.7  christos  * ACPI for the Armv8 RAS Extensions 1.1 Platform Design Document Sep 2020
     90  1.1.1.7  christos  *
     91  1.1.1.7  christos  ******************************************************************************/
     92  1.1.1.7  christos 
     93  1.1.1.7  christos /* Common Subtable header (one per Subtable) */
     94  1.1.1.7  christos 
     95  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestHdr[] =
     96  1.1.1.7  christos {
     97  1.1.1.7  christos     {ACPI_DMT_AEST,     ACPI_AESTH_OFFSET (Type),                   "Subtable Type", 0},
     98  1.1.1.7  christos     {ACPI_DMT_UINT16,   ACPI_AESTH_OFFSET (Length),                 "Length", DT_LENGTH},
     99  1.1.1.7  christos     {ACPI_DMT_UINT8,    ACPI_AESTH_OFFSET (Reserved),               "Reserved", 0},
    100  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AESTH_OFFSET (NodeSpecificOffset),     "Node Specific Offset", 0},
    101  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AESTH_OFFSET (NodeInterfaceOffset),    "Node Interface Offset", 0},
    102  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AESTH_OFFSET (NodeInterruptOffset),    "Node Interrupt Array Offset", 0},
    103  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AESTH_OFFSET (NodeInterruptCount),     "Node Interrupt Array Count", 0},
    104  1.1.1.7  christos     {ACPI_DMT_UINT64,   ACPI_AESTH_OFFSET (TimestampRate),          "Timestamp Rate", 0},
    105  1.1.1.7  christos     {ACPI_DMT_UINT64,   ACPI_AESTH_OFFSET (Reserved1),              "Reserved", 0},
    106  1.1.1.7  christos     {ACPI_DMT_UINT64,   ACPI_AESTH_OFFSET (ErrorInjectionRate),     "Error Injection Rate", 0},
    107  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    108  1.1.1.7  christos };
    109  1.1.1.7  christos 
    110  1.1.1.7  christos /*
    111  1.1.1.7  christos  * AEST subtables (nodes)
    112  1.1.1.7  christos  */
    113  1.1.1.7  christos 
    114  1.1.1.7  christos /* 0: Processor Error */
    115  1.1.1.7  christos 
    116  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestProcError[] =
    117  1.1.1.7  christos {
    118  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0_OFFSET (ProcessorId),            "Processor ID", 0},
    119  1.1.1.7  christos     {ACPI_DMT_AEST_RES, ACPI_AEST0_OFFSET (ResourceType),           "Resource Type", 0},
    120  1.1.1.7  christos     {ACPI_DMT_UINT8,    ACPI_AEST0_OFFSET (Reserved),               "Reserved", 0},
    121  1.1.1.7  christos     {ACPI_DMT_UINT8,    ACPI_AEST0_OFFSET (Flags),                  "Flags (decoded Below)", 0},
    122  1.1.1.7  christos     {ACPI_DMT_FLAG0,    ACPI_AEST0_FLAG_OFFSET (Flags, 0),          "Global", 0},
    123  1.1.1.7  christos     {ACPI_DMT_FLAG1,    ACPI_AEST0_FLAG_OFFSET (Flags, 0),          "Shared", 0},
    124  1.1.1.7  christos     {ACPI_DMT_UINT8,    ACPI_AEST0_OFFSET (Revision),               "Revision", 0},
    125  1.1.1.7  christos     {ACPI_DMT_UINT64,   ACPI_AEST0_OFFSET (ProcessorAffinity),      "Processor Affinity Structure", 0},
    126  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    127  1.1.1.7  christos };
    128  1.1.1.7  christos 
    129  1.1.1.7  christos /* 0RT: Processor Cache Resource */
    130  1.1.1.7  christos 
    131  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestCacheRsrc[] =
    132  1.1.1.7  christos {
    133  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0A_OFFSET (CacheReference),        "Cache Reference", 0},
    134  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0A_OFFSET (Reserved),              "Reserved", 0},
    135  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    136  1.1.1.7  christos };
    137  1.1.1.7  christos 
    138  1.1.1.7  christos /* 1RT: ProcessorTLB Resource */
    139  1.1.1.7  christos 
    140  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestTlbRsrc[] =
    141  1.1.1.7  christos {
    142  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0B_OFFSET (TlbLevel),              "TLB Level", 0},
    143  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0B_OFFSET (Reserved),              "Reserved", 0},
    144  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    145  1.1.1.7  christos };
    146  1.1.1.7  christos 
    147  1.1.1.7  christos /* 2RT: Processor Generic Resource */
    148  1.1.1.7  christos 
    149  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestGenRsrc[] =
    150  1.1.1.7  christos {
    151  1.1.1.7  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "Resource", 0},
    152  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    153  1.1.1.7  christos };
    154  1.1.1.7  christos 
    155  1.1.1.7  christos /* 1: Memory Error */
    156  1.1.1.7  christos 
    157  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestMemError[] =
    158  1.1.1.7  christos {
    159  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST1_OFFSET (SratProximityDomain),    "Srat Proximity Domain", 0},
    160  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    161  1.1.1.7  christos };
    162  1.1.1.7  christos 
    163  1.1.1.7  christos /* 2: Smmu Error */
    164  1.1.1.7  christos 
    165  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestSmmuError[] =
    166  1.1.1.7  christos {
    167  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST2_OFFSET (IortNodeReference),      "Iort Node Reference", 0},
    168  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST2_OFFSET (SubcomponentReference),  "Subcomponent Reference", 0},
    169  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    170  1.1.1.7  christos };
    171  1.1.1.7  christos 
    172  1.1.1.7  christos /* 3: Vendor Defined */
    173  1.1.1.7  christos 
    174  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestVendorError[] =
    175  1.1.1.7  christos {
    176  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST3_OFFSET (AcpiHid),                "ACPI HID", 0},
    177  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST3_OFFSET (AcpiUid),                "ACPI UID", 0},
    178  1.1.1.7  christos     {ACPI_DMT_BUF16,    ACPI_AEST3_OFFSET (VendorSpecificData),     "Vendor Specific Data", 0},
    179  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    180  1.1.1.7  christos };
    181  1.1.1.7  christos 
    182  1.1.1.7  christos /* 4: Gic Error */
    183  1.1.1.7  christos 
    184  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestGicError[] =
    185  1.1.1.7  christos {
    186  1.1.1.7  christos     {ACPI_DMT_AEST_GIC, ACPI_AEST4_OFFSET (InterfaceType),          "GIC Interface Type", 0},
    187  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST4_OFFSET (InstanceId),             "Instance ID", 0},
    188  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    189  1.1.1.7  christos };
    190  1.1.1.7  christos 
    191  1.1.1.7  christos /* AestXface: Node Interface Structure */
    192  1.1.1.7  christos 
    193  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestXface[] =
    194  1.1.1.7  christos {
    195  1.1.1.7  christos     {ACPI_DMT_AEST_XFACE, ACPI_AEST0D_OFFSET (Type),                "Interface Type", 0},
    196  1.1.1.7  christos     {ACPI_DMT_UINT24,   ACPI_AEST0D_OFFSET (Reserved[0]),           "Reserved", 0},
    197  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0D_OFFSET (Flags),                 "Flags (decoded below)", 0},
    198  1.1.1.7  christos     {ACPI_DMT_FLAG0,    ACPI_AEST0D_FLAG_OFFSET (Flags, 0),         "Shared Interface", 0},
    199  1.1.1.7  christos     {ACPI_DMT_FLAG1,    ACPI_AEST0D_FLAG_OFFSET (Flags, 0),         "Clear MISCx Registers", 0},
    200  1.1.1.7  christos     {ACPI_DMT_UINT64,   ACPI_AEST0D_OFFSET (Address),               "Address", 0},
    201  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0D_OFFSET (ErrorRecordIndex),      "Error Record Index", 0},
    202  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0D_OFFSET (ErrorRecordCount),      "Error Record Count", 0},
    203  1.1.1.7  christos     {ACPI_DMT_UINT64,   ACPI_AEST0D_OFFSET (ErrorRecordImplemented),"Error Record Implemented", 0},
    204  1.1.1.7  christos     {ACPI_DMT_UINT64,   ACPI_AEST0D_OFFSET (ErrorStatusReporting),  "Error Status Reporting", 0},
    205  1.1.1.7  christos     {ACPI_DMT_UINT64,   ACPI_AEST0D_OFFSET (AddressingMode),        "Addressing Mode", 0},
    206  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    207  1.1.1.7  christos };
    208  1.1.1.7  christos 
    209  1.1.1.7  christos /* AestXrupt: Node Interrupt Structure */
    210  1.1.1.7  christos 
    211  1.1.1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAestXrupt[] =
    212  1.1.1.7  christos {
    213  1.1.1.7  christos     {ACPI_DMT_AEST_XRUPT, ACPI_AEST0E_OFFSET (Type),                "Interrupt Type", 0},
    214  1.1.1.7  christos     {ACPI_DMT_UINT16,   ACPI_AEST0E_OFFSET (Reserved),              "Reserved", 0},
    215  1.1.1.7  christos     {ACPI_DMT_UINT8,    ACPI_AEST0E_OFFSET (Flags),                 "Flags (decoded below)", 0},
    216  1.1.1.7  christos     {ACPI_DMT_FLAG0,    ACPI_AEST0E_FLAG_OFFSET (Flags, 0),         "Level Triggered", 0},
    217  1.1.1.7  christos     {ACPI_DMT_UINT32,   ACPI_AEST0E_OFFSET (Gsiv),                  "Gsiv", 0},
    218  1.1.1.7  christos     {ACPI_DMT_UINT8,    ACPI_AEST0E_OFFSET (IortId),                "IortId", 0},
    219  1.1.1.7  christos     {ACPI_DMT_UINT24,   ACPI_AEST0E_OFFSET (Reserved1[0]),          "Reserved", 0},
    220  1.1.1.7  christos     ACPI_DMT_TERMINATOR
    221  1.1.1.7  christos };
    222  1.1.1.7  christos 
    223  1.1.1.7  christos 
    224  1.1.1.7  christos /*******************************************************************************
    225  1.1.1.7  christos  *
    226      1.1  christos  * ASF - Alert Standard Format table (Signature "ASF!")
    227      1.1  christos  *
    228      1.1  christos  ******************************************************************************/
    229      1.1  christos 
    230      1.1  christos /* Common Subtable header (one per Subtable) */
    231      1.1  christos 
    232      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsfHdr[] =
    233      1.1  christos {
    234      1.1  christos     {ACPI_DMT_ASF,      ACPI_ASF0_OFFSET (Header.Type),             "Subtable Type", 0},
    235      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (Header.Reserved),         "Reserved", 0},
    236      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF0_OFFSET (Header.Length),           "Length", DT_LENGTH},
    237      1.1  christos     ACPI_DMT_TERMINATOR
    238      1.1  christos };
    239      1.1  christos 
    240      1.1  christos /* 0: ASF Information */
    241      1.1  christos 
    242      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf0[] =
    243      1.1  christos {
    244      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (MinResetValue),           "Minimum Reset Value", 0},
    245      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (MinPollInterval),         "Minimum Polling Interval", 0},
    246      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF0_OFFSET (SystemId),                "System ID", 0},
    247      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ASF0_OFFSET (MfgId),                   "Manufacturer ID", 0},
    248      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (Flags),                   "Flags", 0},
    249      1.1  christos     {ACPI_DMT_UINT24,   ACPI_ASF0_OFFSET (Reserved2[0]),            "Reserved", 0},
    250      1.1  christos     ACPI_DMT_TERMINATOR
    251      1.1  christos };
    252      1.1  christos 
    253      1.1  christos /* 1: ASF Alerts */
    254      1.1  christos 
    255      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf1[] =
    256      1.1  christos {
    257      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (AssertMask),              "AssertMask", 0},
    258      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (DeassertMask),            "DeassertMask", 0},
    259      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (Alerts),                  "Alert Count", 0},
    260      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (DataLength),              "Alert Data Length", 0},
    261      1.1  christos     ACPI_DMT_TERMINATOR
    262      1.1  christos };
    263      1.1  christos 
    264      1.1  christos /* 1a: ASF Alert data */
    265      1.1  christos 
    266      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf1a[] =
    267      1.1  christos {
    268      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Address),                "Address", 0},
    269      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Command),                "Command", 0},
    270      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Mask),                   "Mask", 0},
    271      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Value),                  "Value", 0},
    272      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SensorType),             "SensorType", 0},
    273      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Type),                   "Type", 0},
    274      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Offset),                 "Offset", 0},
    275      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SourceType),             "SourceType", 0},
    276      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Severity),               "Severity", 0},
    277      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SensorNumber),           "SensorNumber", 0},
    278      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Entity),                 "Entity", 0},
    279      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Instance),               "Instance", 0},
    280      1.1  christos     ACPI_DMT_TERMINATOR
    281      1.1  christos };
    282      1.1  christos 
    283      1.1  christos /* 2: ASF Remote Control */
    284      1.1  christos 
    285      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf2[] =
    286      1.1  christos {
    287      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2_OFFSET (Controls),                "Control Count", 0},
    288      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2_OFFSET (DataLength),              "Control Data Length", 0},
    289      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF2_OFFSET (Reserved2),               "Reserved", 0},
    290      1.1  christos     ACPI_DMT_TERMINATOR
    291      1.1  christos };
    292      1.1  christos 
    293      1.1  christos /* 2a: ASF Control data */
    294      1.1  christos 
    295      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf2a[] =
    296      1.1  christos {
    297      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Function),               "Function", 0},
    298      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Address),                "Address", 0},
    299      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Command),                "Command", 0},
    300      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Value),                  "Value", 0},
    301      1.1  christos     ACPI_DMT_TERMINATOR
    302      1.1  christos };
    303      1.1  christos 
    304      1.1  christos /* 3: ASF RMCP Boot Options */
    305      1.1  christos 
    306      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf3[] =
    307      1.1  christos {
    308      1.1  christos     {ACPI_DMT_BUF7,     ACPI_ASF3_OFFSET (Capabilities[0]),         "Capabilities", 0},
    309      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF3_OFFSET (CompletionCode),          "Completion Code", 0},
    310      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ASF3_OFFSET (EnterpriseId),            "Enterprise ID", 0},
    311      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF3_OFFSET (Command),                 "Command", 0},
    312      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (Parameter),               "Parameter", 0},
    313      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (BootOptions),             "Boot Options", 0},
    314      1.1  christos     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (OemParameters),           "Oem Parameters", 0},
    315      1.1  christos     ACPI_DMT_TERMINATOR
    316      1.1  christos };
    317      1.1  christos 
    318      1.1  christos /* 4: ASF Address */
    319      1.1  christos 
    320      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf4[] =
    321      1.1  christos {
    322      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF4_OFFSET (EpromAddress),            "Eprom Address", 0},
    323      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ASF4_OFFSET (Devices),                 "Device Count", DT_COUNT},
    324      1.1  christos     ACPI_DMT_TERMINATOR
    325      1.1  christos };
    326      1.1  christos 
    327      1.1  christos 
    328      1.1  christos /*******************************************************************************
    329      1.1  christos  *
    330  1.1.1.6  christos  * BDAT -  BIOS Data ACPI Table
    331  1.1.1.6  christos  *
    332  1.1.1.6  christos  ******************************************************************************/
    333  1.1.1.6  christos 
    334  1.1.1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBdat[] =
    335  1.1.1.6  christos {
    336  1.1.1.6  christos     {ACPI_DMT_GAS,      ACPI_BDAT_OFFSET (Gas),                     "BDAT Generic Address", 0},
    337  1.1.1.6  christos     ACPI_DMT_TERMINATOR
    338  1.1.1.6  christos };
    339  1.1.1.6  christos 
    340  1.1.1.6  christos 
    341  1.1.1.6  christos /*******************************************************************************
    342  1.1.1.6  christos  *
    343      1.1  christos  * BERT -  Boot Error Record table
    344      1.1  christos  *
    345      1.1  christos  ******************************************************************************/
    346      1.1  christos 
    347      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBert[] =
    348      1.1  christos {
    349      1.1  christos     {ACPI_DMT_UINT32,   ACPI_BERT_OFFSET (RegionLength),            "Boot Error Region Length", 0},
    350      1.1  christos     {ACPI_DMT_UINT64,   ACPI_BERT_OFFSET (Address),                 "Boot Error Region Address", 0},
    351      1.1  christos     ACPI_DMT_TERMINATOR
    352      1.1  christos };
    353      1.1  christos 
    354      1.1  christos 
    355      1.1  christos /*******************************************************************************
    356      1.1  christos  *
    357      1.1  christos  * BGRT -  Boot Graphics Resource Table (ACPI 5.0)
    358      1.1  christos  *
    359      1.1  christos  ******************************************************************************/
    360      1.1  christos 
    361      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBgrt[] =
    362      1.1  christos {
    363      1.1  christos     {ACPI_DMT_UINT16,   ACPI_BGRT_OFFSET (Version),                 "Version", 0},
    364      1.1  christos     {ACPI_DMT_UINT8,    ACPI_BGRT_OFFSET (Status),                  "Status (decoded below)", DT_FLAG},
    365      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_BGRT_FLAG_OFFSET (Status, 0),          "Displayed", 0},
    366      1.1  christos     {ACPI_DMT_FLAGS1,   ACPI_BGRT_FLAG_OFFSET (Status, 0),          "Orientation Offset", 0},
    367      1.1  christos 
    368      1.1  christos     {ACPI_DMT_UINT8,    ACPI_BGRT_OFFSET (ImageType),               "Image Type", 0},
    369      1.1  christos     {ACPI_DMT_UINT64,   ACPI_BGRT_OFFSET (ImageAddress),            "Image Address", 0},
    370      1.1  christos     {ACPI_DMT_UINT32,   ACPI_BGRT_OFFSET (ImageOffsetX),            "Image OffsetX", 0},
    371      1.1  christos     {ACPI_DMT_UINT32,   ACPI_BGRT_OFFSET (ImageOffsetY),            "Image OffsetY", 0},
    372      1.1  christos     ACPI_DMT_TERMINATOR
    373      1.1  christos };
    374      1.1  christos 
    375      1.1  christos 
    376      1.1  christos /*******************************************************************************
    377      1.1  christos  *
    378      1.1  christos  * BOOT - Simple Boot Flag Table
    379      1.1  christos  *
    380      1.1  christos  ******************************************************************************/
    381      1.1  christos 
    382      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBoot[] =
    383      1.1  christos {
    384      1.1  christos     {ACPI_DMT_UINT8,    ACPI_BOOT_OFFSET (CmosIndex),               "Boot Register Index", 0},
    385      1.1  christos     {ACPI_DMT_UINT24,   ACPI_BOOT_OFFSET (Reserved[0]),             "Reserved", 0},
    386      1.1  christos     ACPI_DMT_TERMINATOR
    387      1.1  christos };
    388      1.1  christos 
    389  1.1.1.9  christos /*******************************************************************************
    390  1.1.1.9  christos  *
    391  1.1.1.9  christos  * CDAT - Coherent Device Attribute Table
    392  1.1.1.9  christos  *
    393  1.1.1.9  christos  ******************************************************************************/
    394  1.1.1.9  christos 
    395  1.1.1.9  christos  /* Table header (not ACPI-compliant) */
    396  1.1.1.9  christos 
    397  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdatTableHdr[] =
    398  1.1.1.9  christos {
    399  1.1.1.9  christos     {ACPI_DMT_UINT32,   ACPI_CDAT_OFFSET (Length),              "CDAT Table Length", DT_LENGTH},
    400  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT_OFFSET (Revision),            "Revision", 0},
    401  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT_OFFSET (Checksum),            "Checksum", 0},
    402  1.1.1.9  christos     {ACPI_DMT_UINT48,   ACPI_CDAT_OFFSET (Reserved),            "Reserved", 0},
    403  1.1.1.9  christos     {ACPI_DMT_UINT32,   ACPI_CDAT_OFFSET (Sequence),            "Sequence", 0},
    404  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    405  1.1.1.9  christos };
    406  1.1.1.9  christos 
    407  1.1.1.9  christos /* Common subtable header */
    408  1.1.1.9  christos 
    409  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdatHeader[] =
    410  1.1.1.9  christos {
    411  1.1.1.9  christos     {ACPI_DMT_CDAT,     ACPI_CDATH_OFFSET (Type),               "Subtable Type", 0},
    412  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDATH_OFFSET (Reserved),           "Reserved", 0},
    413  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDATH_OFFSET (Length),             "Length", DT_LENGTH},
    414  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    415  1.1.1.9  christos };
    416  1.1.1.9  christos 
    417  1.1.1.9  christos /* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */
    418  1.1.1.9  christos 
    419  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdat0[] =
    420  1.1.1.9  christos {
    421  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT0_OFFSET (DsmadHandle),        "DSMAD Handle", 0},
    422  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT0_OFFSET (Flags),              "Flags", 0},
    423  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDAT0_OFFSET (Reserved),           "Reserved", 0},
    424  1.1.1.9  christos     {ACPI_DMT_UINT64,   ACPI_CDAT0_OFFSET (DpaBaseAddress),     "DPA Base Address", 0},
    425  1.1.1.9  christos     {ACPI_DMT_UINT64,   ACPI_CDAT0_OFFSET (DpaLength),          "DPA Length", 0},
    426  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    427  1.1.1.9  christos };
    428  1.1.1.9  christos 
    429  1.1.1.9  christos /* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */
    430  1.1.1.9  christos 
    431  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdat1[] =
    432  1.1.1.9  christos {
    433  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT1_OFFSET (Handle),             "Handle", 0},
    434  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT1_OFFSET (Flags),              "Flags", 0},
    435  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT1_OFFSET (DataType),           "Data Type", 0},
    436  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT1_OFFSET (Reserved),           "Reserved", 0},
    437  1.1.1.9  christos     {ACPI_DMT_UINT64,   ACPI_CDAT1_OFFSET (EntryBaseUnit),      "Entry Base Unit", 0},
    438  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDAT1_OFFSET (Entry[0]),           "Entry0", 0},
    439  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDAT1_OFFSET (Entry[1]),           "Entry1", 0},
    440  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDAT1_OFFSET (Entry[2]),           "Entry2", 0},
    441  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDAT1_OFFSET (Reserved2),          "Reserved", 0},
    442  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    443  1.1.1.9  christos };
    444  1.1.1.9  christos 
    445  1.1.1.9  christos /* Subtable 2: Device Scoped Memory Side Cache Information Structure (DSMSCIS) */
    446  1.1.1.9  christos 
    447  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdat2[] =
    448  1.1.1.9  christos {
    449  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT2_OFFSET (DsmasHandle),        "DSMAS Handle", 0},
    450  1.1.1.9  christos     {ACPI_DMT_UINT24,   ACPI_CDAT2_OFFSET (Reserved[3]),        "Reserved", 0},
    451  1.1.1.9  christos     {ACPI_DMT_UINT64,   ACPI_CDAT2_OFFSET (SideCacheSize),      "Side Cache Size", 0},
    452  1.1.1.9  christos     {ACPI_DMT_UINT32,   ACPI_CDAT2_OFFSET (CacheAttributes),    "Cache Attributes", 0},
    453  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    454  1.1.1.9  christos };
    455  1.1.1.9  christos 
    456  1.1.1.9  christos /* Subtable 3: Device Scoped Initiator Structure (DSIS) */
    457  1.1.1.9  christos 
    458  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdat3[] =
    459  1.1.1.9  christos {
    460  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT3_OFFSET (Flags),              "Flags", 0},
    461  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT3_OFFSET (Handle),             "Handle", 0},
    462  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDAT3_OFFSET (Reserved),           "Reserved", 0},
    463  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    464  1.1.1.9  christos };
    465  1.1.1.9  christos 
    466  1.1.1.9  christos /* Subtable 4: Device Scoped EFI Memory Type Structure (DSEMTS) */
    467  1.1.1.9  christos 
    468  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdat4[] =
    469  1.1.1.9  christos {
    470  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT4_OFFSET (DsmasHandle),        "DSMAS Handle", 0},
    471  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT4_OFFSET (MemoryType),         "Memory Type", 0},
    472  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDAT4_OFFSET (Reserved),           "Reserved", 0},
    473  1.1.1.9  christos     {ACPI_DMT_UINT64,   ACPI_CDAT4_OFFSET (DpaOffset),          "DPA Offset", 0},
    474  1.1.1.9  christos     {ACPI_DMT_UINT64,   ACPI_CDAT4_OFFSET (RangeLength),        "DPA Range Length", 0},
    475  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    476  1.1.1.9  christos };
    477  1.1.1.9  christos 
    478  1.1.1.9  christos /* Subtable 5: Switch Scoped Latency and Bandwidth Information Structure (SSLBIS) */
    479  1.1.1.9  christos 
    480  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdat5[] =
    481  1.1.1.9  christos {
    482  1.1.1.9  christos     {ACPI_DMT_UINT8,    ACPI_CDAT5_OFFSET (DataType),           "Data Type", 0},
    483  1.1.1.9  christos     {ACPI_DMT_UINT24,   ACPI_CDAT5_OFFSET (Reserved),           "Reserved", 0},
    484  1.1.1.9  christos     {ACPI_DMT_UINT64,   ACPI_CDAT5_OFFSET (EntryBaseUnit),      "Entry Base Unit", 0},
    485  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    486  1.1.1.9  christos };
    487  1.1.1.9  christos 
    488  1.1.1.9  christos /* Switch Scoped Latency and Bandwidth Entry (SSLBE) (For subtable 5 above) */
    489  1.1.1.9  christos 
    490  1.1.1.9  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCdatEntries[] =
    491  1.1.1.9  christos {
    492  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDATE_OFFSET (PortxId),            "Port X Id", 0},
    493  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDATE_OFFSET (PortyId),            "Port Y Id", 0},
    494  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDATE_OFFSET (LatencyOrBandwidth), "Latency or Bandwidth", 0},
    495  1.1.1.9  christos     {ACPI_DMT_UINT16,   ACPI_CDATE_OFFSET (Reserved),           "Reserved", 0},
    496  1.1.1.9  christos     ACPI_DMT_TERMINATOR
    497  1.1.1.9  christos };
    498  1.1.1.9  christos 
    499      1.1  christos 
    500      1.1  christos /*******************************************************************************
    501      1.1  christos  *
    502  1.1.1.5  christos  * CEDT - CXL Early Discovery Table
    503  1.1.1.5  christos  *
    504  1.1.1.5  christos  ******************************************************************************/
    505  1.1.1.5  christos 
    506  1.1.1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCedtHdr[] =
    507  1.1.1.5  christos {
    508  1.1.1.5  christos     {ACPI_DMT_CEDT,     ACPI_CEDT_OFFSET (Type),               "Subtable Type", 0},
    509  1.1.1.5  christos     {ACPI_DMT_UINT8,    ACPI_CEDT_OFFSET (Reserved),           "Reserved", 0},
    510  1.1.1.5  christos     {ACPI_DMT_UINT16,   ACPI_CEDT_OFFSET (Length),             "Length", DT_LENGTH},
    511  1.1.1.5  christos     ACPI_DMT_TERMINATOR
    512  1.1.1.5  christos };
    513  1.1.1.5  christos 
    514  1.1.1.5  christos /* 0: CXL Host Bridge Structure */
    515  1.1.1.5  christos 
    516  1.1.1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCedt0[] =
    517  1.1.1.5  christos {
    518  1.1.1.5  christos     {ACPI_DMT_UINT32,   ACPI_CEDT0_OFFSET (Uid),               "Associated host bridge", 0},
    519  1.1.1.5  christos     {ACPI_DMT_UINT32,   ACPI_CEDT0_OFFSET (CxlVersion),        "Specification version", 0},
    520  1.1.1.5  christos     {ACPI_DMT_UINT32,   ACPI_CEDT0_OFFSET (Reserved),          "Reserved", 0},
    521  1.1.1.5  christos     {ACPI_DMT_UINT64,   ACPI_CEDT0_OFFSET (Base),              "Register base", 0},
    522  1.1.1.5  christos     {ACPI_DMT_UINT64,   ACPI_CEDT0_OFFSET (Length),            "Register length", 0},
    523  1.1.1.5  christos     ACPI_DMT_TERMINATOR
    524  1.1.1.5  christos };
    525  1.1.1.5  christos 
    526  1.1.1.8  christos /* 1: CXL Fixed Memory Window Structure */
    527  1.1.1.8  christos 
    528  1.1.1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCedt1[] =
    529  1.1.1.8  christos {
    530  1.1.1.8  christos     {ACPI_DMT_UINT32,   ACPI_CEDT1_OFFSET (Reserved1),            "Reserved", 0},
    531  1.1.1.8  christos     {ACPI_DMT_UINT64,   ACPI_CEDT1_OFFSET (BaseHpa),              "Window base address", 0},
    532  1.1.1.8  christos     {ACPI_DMT_UINT64,   ACPI_CEDT1_OFFSET (WindowSize),           "Window size", 0},
    533  1.1.1.8  christos     {ACPI_DMT_UINT8,    ACPI_CEDT1_OFFSET (InterleaveWays),       "Interleave Members (2^n)", 0},
    534  1.1.1.8  christos     {ACPI_DMT_UINT8,    ACPI_CEDT1_OFFSET (InterleaveArithmetic), "Interleave Arithmetic", 0},
    535  1.1.1.8  christos     {ACPI_DMT_UINT16,   ACPI_CEDT1_OFFSET (Reserved2),            "Reserved", 0},
    536  1.1.1.8  christos     {ACPI_DMT_UINT32,   ACPI_CEDT1_OFFSET (Granularity),          "Granularity", 0},
    537  1.1.1.8  christos     {ACPI_DMT_UINT16,   ACPI_CEDT1_OFFSET (Restrictions),         "Restrictions", 0},
    538  1.1.1.8  christos     {ACPI_DMT_UINT16,   ACPI_CEDT1_OFFSET (QtgId),                "QtgId", 0},
    539  1.1.1.8  christos     {ACPI_DMT_UINT32,   ACPI_CEDT1_OFFSET (InterleaveTargets),    "First Target", 0},
    540  1.1.1.8  christos     ACPI_DMT_TERMINATOR
    541  1.1.1.8  christos };
    542  1.1.1.8  christos 
    543  1.1.1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCedt1_te[] =
    544  1.1.1.8  christos {
    545  1.1.1.8  christos     {ACPI_DMT_UINT32,   ACPI_CEDT1_TE_OFFSET (InterleaveTarget),  "Next Target", 0},
    546  1.1.1.8  christos     ACPI_DMT_TERMINATOR
    547  1.1.1.8  christos };
    548  1.1.1.5  christos 
    549  1.1.1.5  christos /*******************************************************************************
    550  1.1.1.5  christos  *
    551      1.1  christos  * CPEP - Corrected Platform Error Polling table
    552      1.1  christos  *
    553      1.1  christos  ******************************************************************************/
    554      1.1  christos 
    555      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCpep[] =
    556      1.1  christos {
    557      1.1  christos     {ACPI_DMT_UINT64,   ACPI_CPEP_OFFSET (Reserved),                "Reserved", 0},
    558      1.1  christos     ACPI_DMT_TERMINATOR
    559      1.1  christos };
    560      1.1  christos 
    561      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCpep0[] =
    562      1.1  christos {
    563      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Header.Type),            "Subtable Type", 0},
    564      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Header.Length),          "Length", DT_LENGTH},
    565      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Id),                     "Processor ID", 0},
    566      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Eid),                    "Processor EID", 0},
    567      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CPEP0_OFFSET (Interval),               "Polling Interval", 0},
    568      1.1  christos     ACPI_DMT_TERMINATOR
    569      1.1  christos };
    570      1.1  christos 
    571      1.1  christos 
    572      1.1  christos /*******************************************************************************
    573      1.1  christos  *
    574      1.1  christos  * CSRT - Core System Resource Table
    575      1.1  christos  *
    576      1.1  christos  ******************************************************************************/
    577      1.1  christos 
    578      1.1  christos /* Main table consists only of the standard ACPI table header */
    579      1.1  christos 
    580      1.1  christos /* Resource Group subtable */
    581      1.1  christos 
    582      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt0[] =
    583      1.1  christos {
    584      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (Length),                 "Length", DT_LENGTH},
    585      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (VendorId),               "Vendor ID", 0},
    586      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (SubvendorId),            "Subvendor ID", 0},
    587      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (DeviceId),               "Device ID", 0},
    588      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (SubdeviceId),            "Subdevice ID", 0},
    589      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (Revision),               "Revision", 0},
    590      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (Reserved),               "Reserved", 0},
    591      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (SharedInfoLength),       "Shared Info Length", 0},
    592      1.1  christos     ACPI_DMT_TERMINATOR
    593      1.1  christos };
    594      1.1  christos 
    595      1.1  christos /* Shared Info subtable */
    596      1.1  christos 
    597      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt1[] =
    598      1.1  christos {
    599      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (MajorVersion),           "Major Version", 0},
    600      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (MinorVersion),           "Minor Version", 0},
    601      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MmioBaseLow),            "MMIO Base Address Low", 0},
    602      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MmioBaseHigh),           "MMIO Base Address High", 0},
    603      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (GsiInterrupt),           "GSI Interrupt", 0},
    604      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (InterruptPolarity),      "Interrupt Polarity", 0},
    605      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (InterruptMode),          "Interrupt Mode", 0},
    606      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (NumChannels),            "Num Channels", 0},
    607      1.1  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (DmaAddressWidth),        "DMA Address Width", 0},
    608      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (BaseRequestLine),        "Base Request Line", 0},
    609      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (NumHandshakeSignals),    "Num Handshake Signals", 0},
    610      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MaxBlockSize),           "Max Block Size", 0},
    611      1.1  christos     ACPI_DMT_TERMINATOR
    612      1.1  christos };
    613      1.1  christos 
    614      1.1  christos /* Resource Descriptor subtable */
    615      1.1  christos 
    616      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt2[] =
    617      1.1  christos {
    618      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT2_OFFSET (Length),                 "Length", DT_LENGTH},
    619      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT2_OFFSET (Type),                   "Type", 0},
    620      1.1  christos     {ACPI_DMT_UINT16,   ACPI_CSRT2_OFFSET (Subtype),                "Subtype", 0},
    621      1.1  christos     {ACPI_DMT_UINT32,   ACPI_CSRT2_OFFSET (Uid),                    "UID", 0},
    622      1.1  christos     ACPI_DMT_TERMINATOR
    623      1.1  christos };
    624      1.1  christos 
    625      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt2a[] =
    626      1.1  christos {
    627      1.1  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "ResourceInfo", DT_OPTIONAL},
    628      1.1  christos     ACPI_DMT_TERMINATOR
    629      1.1  christos };
    630      1.1  christos 
    631      1.1  christos 
    632      1.1  christos /*******************************************************************************
    633      1.1  christos  *
    634      1.1  christos  * DBG2 - Debug Port Table 2
    635      1.1  christos  *
    636      1.1  christos  ******************************************************************************/
    637      1.1  christos 
    638      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2[] =
    639      1.1  christos {
    640      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DBG2_OFFSET (InfoOffset),              "Info Offset", 0},
    641      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DBG2_OFFSET (InfoCount),               "Info Count", 0},
    642      1.1  christos     ACPI_DMT_TERMINATOR
    643      1.1  christos };
    644      1.1  christos 
    645      1.1  christos /* Debug Device Information Subtable */
    646      1.1  christos 
    647      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Device[] =
    648      1.1  christos {
    649      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DBG20_OFFSET (Revision),               "Revision", 0},
    650      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (Length),                 "Length", DT_LENGTH},
    651      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DBG20_OFFSET (RegisterCount),          "Register Count", 0},
    652      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (NamepathLength),         "Namepath Length", 0},
    653      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (NamepathOffset),         "Namepath Offset", 0},
    654      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (OemDataLength),          "OEM Data Length", DT_DESCRIBES_OPTIONAL},
    655      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (OemDataOffset),          "OEM Data Offset", DT_DESCRIBES_OPTIONAL},
    656      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (PortType),               "Port Type", 0},
    657      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (PortSubtype),            "Port Subtype", 0},
    658      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (Reserved),               "Reserved", 0},
    659      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (BaseAddressOffset),      "Base Address Offset", 0},
    660      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (AddressSizeOffset),      "Address Size Offset", 0},
    661      1.1  christos     ACPI_DMT_TERMINATOR
    662      1.1  christos };
    663      1.1  christos 
    664      1.1  christos /* Variable-length data for the subtable */
    665      1.1  christos 
    666      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Addr[] =
    667      1.1  christos {
    668      1.1  christos     {ACPI_DMT_GAS,      0,                                          "Base Address Register", 0},
    669      1.1  christos     ACPI_DMT_TERMINATOR
    670      1.1  christos };
    671      1.1  christos 
    672      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Size[] =
    673      1.1  christos {
    674      1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Address Size", 0},
    675      1.1  christos     ACPI_DMT_TERMINATOR
    676      1.1  christos };
    677      1.1  christos 
    678      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Name[] =
    679      1.1  christos {
    680      1.1  christos     {ACPI_DMT_STRING,   0,                                          "Namepath", 0},
    681      1.1  christos     ACPI_DMT_TERMINATOR
    682      1.1  christos };
    683      1.1  christos 
    684      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2OemData[] =
    685      1.1  christos {
    686      1.1  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "OEM Data", DT_OPTIONAL},
    687      1.1  christos     ACPI_DMT_TERMINATOR
    688      1.1  christos };
    689      1.1  christos 
    690      1.1  christos 
    691      1.1  christos /*******************************************************************************
    692      1.1  christos  *
    693      1.1  christos  * DBGP - Debug Port
    694      1.1  christos  *
    695      1.1  christos  ******************************************************************************/
    696      1.1  christos 
    697      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbgp[] =
    698      1.1  christos {
    699      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DBGP_OFFSET (Type),                    "Interface Type", 0},
    700      1.1  christos     {ACPI_DMT_UINT24,   ACPI_DBGP_OFFSET (Reserved[0]),             "Reserved", 0},
    701      1.1  christos     {ACPI_DMT_GAS,      ACPI_DBGP_OFFSET (DebugPort),               "Debug Port Register", 0},
    702      1.1  christos     ACPI_DMT_TERMINATOR
    703      1.1  christos };
    704      1.1  christos 
    705      1.1  christos 
    706      1.1  christos /*******************************************************************************
    707      1.1  christos  *
    708      1.1  christos  * DMAR - DMA Remapping table
    709      1.1  christos  *
    710      1.1  christos  ******************************************************************************/
    711      1.1  christos 
    712      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar[] =
    713      1.1  christos {
    714      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR_OFFSET (Width),                   "Host Address Width", 0},
    715      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR_OFFSET (Flags),                   "Flags", 0},
    716      1.1  christos     {ACPI_DMT_BUF10,    ACPI_DMAR_OFFSET (Reserved[0]),             "Reserved", 0},
    717      1.1  christos     ACPI_DMT_TERMINATOR
    718      1.1  christos };
    719      1.1  christos 
    720      1.1  christos /* Common Subtable header (one per Subtable) */
    721      1.1  christos 
    722      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmarHdr[] =
    723      1.1  christos {
    724      1.1  christos     {ACPI_DMT_DMAR,     ACPI_DMAR0_OFFSET (Header.Type),            "Subtable Type", 0},
    725      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR0_OFFSET (Header.Length),          "Length", DT_LENGTH},
    726      1.1  christos     ACPI_DMT_TERMINATOR
    727      1.1  christos };
    728      1.1  christos 
    729      1.1  christos /* Common device scope entry */
    730      1.1  christos 
    731      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmarScope[] =
    732      1.1  christos {
    733      1.1  christos     {ACPI_DMT_DMAR_SCOPE, ACPI_DMARS_OFFSET (EntryType),            "Device Scope Type", 0},
    734      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (Length),                 "Entry Length", DT_LENGTH},
    735      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMARS_OFFSET (Reserved),               "Reserved", 0},
    736      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (EnumerationId),          "Enumeration ID", 0},
    737      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (Bus),                    "PCI Bus Number", 0},
    738      1.1  christos     ACPI_DMT_TERMINATOR
    739      1.1  christos };
    740      1.1  christos 
    741      1.1  christos /* DMAR Subtables */
    742      1.1  christos 
    743      1.1  christos /* 0: Hardware Unit Definition */
    744      1.1  christos 
    745      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar0[] =
    746      1.1  christos {
    747      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR0_OFFSET (Flags),                  "Flags", 0},
    748      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR0_OFFSET (Reserved),               "Reserved", 0},
    749      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR0_OFFSET (Segment),                "PCI Segment Number", 0},
    750      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DMAR0_OFFSET (Address),                "Register Base Address", 0},
    751      1.1  christos     ACPI_DMT_TERMINATOR
    752      1.1  christos };
    753      1.1  christos 
    754      1.1  christos /* 1: Reserved Memory Definition */
    755      1.1  christos 
    756      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar1[] =
    757      1.1  christos {
    758      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR1_OFFSET (Reserved),               "Reserved", 0},
    759      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR1_OFFSET (Segment),                "PCI Segment Number", 0},
    760      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DMAR1_OFFSET (BaseAddress),            "Base Address", 0},
    761      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DMAR1_OFFSET (EndAddress),             "End Address (limit)", 0},
    762      1.1  christos     ACPI_DMT_TERMINATOR
    763      1.1  christos };
    764      1.1  christos 
    765      1.1  christos /* 2: Root Port ATS Capability Definition */
    766      1.1  christos 
    767      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar2[] =
    768      1.1  christos {
    769      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR2_OFFSET (Flags),                  "Flags", 0},
    770      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR2_OFFSET (Reserved),               "Reserved", 0},
    771      1.1  christos     {ACPI_DMT_UINT16,   ACPI_DMAR2_OFFSET (Segment),                "PCI Segment Number", 0},
    772      1.1  christos     ACPI_DMT_TERMINATOR
    773      1.1  christos };
    774      1.1  christos 
    775      1.1  christos /* 3: Remapping Hardware Static Affinity Structure */
    776      1.1  christos 
    777      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar3[] =
    778      1.1  christos {
    779      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DMAR3_OFFSET (Reserved),               "Reserved", 0},
    780      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DMAR3_OFFSET (BaseAddress),            "Base Address", 0},
    781      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DMAR3_OFFSET (ProximityDomain),        "Proximity Domain", 0},
    782      1.1  christos     ACPI_DMT_TERMINATOR
    783      1.1  christos };
    784      1.1  christos 
    785      1.1  christos /* 4: ACPI Namespace Device Declaration Structure */
    786      1.1  christos 
    787      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar4[] =
    788      1.1  christos {
    789      1.1  christos     {ACPI_DMT_UINT24,   ACPI_DMAR4_OFFSET (Reserved[0]),            "Reserved", 0},
    790      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DMAR4_OFFSET (DeviceNumber),           "Device Number", 0},
    791      1.1  christos     {ACPI_DMT_STRING,   ACPI_DMAR4_OFFSET (DeviceName[0]),          "Device Name", 0},
    792      1.1  christos     ACPI_DMT_TERMINATOR
    793      1.1  christos };
    794      1.1  christos 
    795  1.1.1.8  christos /* 5: Hardware Unit Definition */
    796  1.1.1.8  christos 
    797  1.1.1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar5[] =
    798  1.1.1.8  christos {
    799  1.1.1.8  christos     {ACPI_DMT_UINT8,    ACPI_DMAR5_OFFSET (Flags),                  "Flags", 0},
    800  1.1.1.8  christos     {ACPI_DMT_UINT8,    ACPI_DMAR5_OFFSET (Reserved),               "Reserved", 0},
    801  1.1.1.8  christos     {ACPI_DMT_UINT16,   ACPI_DMAR5_OFFSET (Segment),                "PCI Segment Number", 0},
    802  1.1.1.8  christos     ACPI_DMT_TERMINATOR
    803  1.1.1.8  christos };
    804      1.1  christos 
    805      1.1  christos /*******************************************************************************
    806      1.1  christos  *
    807      1.1  christos  * DRTM - Dynamic Root of Trust for Measurement table
    808      1.1  christos  *
    809      1.1  christos  ******************************************************************************/
    810      1.1  christos 
    811      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm[] =
    812      1.1  christos {
    813      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryBaseAddress),        "Entry Base Address", 0},
    814      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryLength),             "Entry Length", 0},
    815      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (EntryAddress32),          "Entry 32", 0},
    816      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryAddress64),          "Entry 64", 0},
    817      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (ExitAddress),             "Exit Address", 0},
    818      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (LogAreaAddress),          "Log Area Start", 0},
    819      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (LogAreaLength),           "Log Area Length", 0},
    820      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (ArchDependentAddress),    "Arch Dependent Address", 0},
    821      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (Flags),                   "Flags (decoded below)", 0},
    822      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Namespace in TCB", 0},
    823      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Gap Code on S3 Resume", 0},
    824      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Gap Code on DLME_Exit", 0},
    825      1.1  christos     {ACPI_DMT_FLAG3,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "PCR_Authorities Changed", 0},
    826      1.1  christos     ACPI_DMT_TERMINATOR
    827      1.1  christos };
    828      1.1  christos 
    829      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm0[] =
    830      1.1  christos {
    831      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM0_OFFSET (ValidatedTableCount),    "Validated Table Count", DT_COUNT},
    832      1.1  christos     ACPI_DMT_TERMINATOR
    833      1.1  christos };
    834      1.1  christos 
    835      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm0a[] =
    836      1.1  christos {
    837      1.1  christos     {ACPI_DMT_UINT64,   0,                                          "Table Address", DT_OPTIONAL},
    838      1.1  christos     ACPI_DMT_TERMINATOR
    839      1.1  christos };
    840      1.1  christos 
    841      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm1[] =
    842      1.1  christos {
    843      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM1_OFFSET (ResourceCount),          "Resource Count", DT_COUNT},
    844      1.1  christos     ACPI_DMT_TERMINATOR
    845      1.1  christos };
    846      1.1  christos 
    847      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm1a[] =
    848      1.1  christos {
    849      1.1  christos     {ACPI_DMT_UINT56,   ACPI_DRTM1a_OFFSET (Size[0]),               "Size", DT_OPTIONAL},
    850      1.1  christos     {ACPI_DMT_UINT8,    ACPI_DRTM1a_OFFSET (Type),                  "Type", 0},
    851      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_DRTM1a_FLAG_OFFSET (Type, 0),          "Resource Type", 0},
    852      1.1  christos     {ACPI_DMT_FLAG7,    ACPI_DRTM1a_FLAG_OFFSET (Type, 0),          "Protections", 0},
    853      1.1  christos     {ACPI_DMT_UINT64,   ACPI_DRTM1a_OFFSET (Address),               "Address", 0},
    854      1.1  christos     ACPI_DMT_TERMINATOR
    855      1.1  christos };
    856      1.1  christos 
    857      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm2[] =
    858      1.1  christos {
    859      1.1  christos     {ACPI_DMT_UINT32,   ACPI_DRTM2_OFFSET (DpsIdLength),            "DLME Platform Id Length", DT_COUNT},
    860      1.1  christos     {ACPI_DMT_BUF16,    ACPI_DRTM2_OFFSET (DpsId),                  "DLME Platform Id", DT_COUNT},
    861      1.1  christos     ACPI_DMT_TERMINATOR
    862      1.1  christos };
    863      1.1  christos 
    864      1.1  christos 
    865      1.1  christos /*******************************************************************************
    866      1.1  christos  *
    867      1.1  christos  * ECDT - Embedded Controller Boot Resources Table
    868      1.1  christos  *
    869      1.1  christos  ******************************************************************************/
    870      1.1  christos 
    871      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoEcdt[] =
    872      1.1  christos {
    873      1.1  christos     {ACPI_DMT_GAS,      ACPI_ECDT_OFFSET (Control),                 "Command/Status Register", 0},
    874      1.1  christos     {ACPI_DMT_GAS,      ACPI_ECDT_OFFSET (Data),                    "Data Register", 0},
    875      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ECDT_OFFSET (Uid),                     "UID", 0},
    876      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ECDT_OFFSET (Gpe),                     "GPE Number", 0},
    877      1.1  christos     {ACPI_DMT_STRING,   ACPI_ECDT_OFFSET (Id[0]),                   "Namepath", 0},
    878      1.1  christos     ACPI_DMT_TERMINATOR
    879      1.1  christos };
    880      1.1  christos 
    881      1.1  christos 
    882      1.1  christos /*******************************************************************************
    883      1.1  christos  *
    884      1.1  christos  * EINJ - Error Injection table
    885      1.1  christos  *
    886      1.1  christos  ******************************************************************************/
    887      1.1  christos 
    888      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoEinj[] =
    889      1.1  christos {
    890      1.1  christos     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (HeaderLength),            "Injection Header Length", 0},
    891      1.1  christos     {ACPI_DMT_UINT8,    ACPI_EINJ_OFFSET (Flags),                   "Flags", 0},
    892      1.1  christos     {ACPI_DMT_UINT24,   ACPI_EINJ_OFFSET (Reserved[0]),             "Reserved", 0},
    893      1.1  christos     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (Entries),                 "Injection Entry Count", 0},
    894      1.1  christos     ACPI_DMT_TERMINATOR
    895      1.1  christos };
    896      1.1  christos 
    897      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoEinj0[] =
    898      1.1  christos {
    899      1.1  christos     {ACPI_DMT_EINJACT,  ACPI_EINJ0_OFFSET (Action),                 "Action", 0},
    900      1.1  christos     {ACPI_DMT_EINJINST, ACPI_EINJ0_OFFSET (Instruction),            "Instruction", 0},
    901      1.1  christos     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    902      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_EINJ0_FLAG_OFFSET (Flags,0),           "Preserve Register Bits", 0},
    903      1.1  christos 
    904      1.1  christos     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Reserved),               "Reserved", 0},
    905      1.1  christos     {ACPI_DMT_GAS,      ACPI_EINJ0_OFFSET (RegisterRegion),         "Register Region", 0},
    906      1.1  christos     {ACPI_DMT_UINT64,   ACPI_EINJ0_OFFSET (Value),                  "Value", 0},
    907      1.1  christos     {ACPI_DMT_UINT64,   ACPI_EINJ0_OFFSET (Mask),                   "Mask", 0},
    908      1.1  christos     ACPI_DMT_TERMINATOR
    909      1.1  christos };
    910      1.1  christos 
    911      1.1  christos 
    912      1.1  christos /*******************************************************************************
    913      1.1  christos  *
    914      1.1  christos  * ERST - Error Record Serialization table
    915      1.1  christos  *
    916      1.1  christos  ******************************************************************************/
    917      1.1  christos 
    918      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoErst[] =
    919      1.1  christos {
    920      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (HeaderLength),            "Serialization Header Length", 0},
    921      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (Reserved),                "Reserved", 0},
    922      1.1  christos     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (Entries),                 "Instruction Entry Count", 0},
    923      1.1  christos     ACPI_DMT_TERMINATOR
    924      1.1  christos };
    925      1.1  christos 
    926      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoErst0[] =
    927      1.1  christos {
    928      1.1  christos     {ACPI_DMT_ERSTACT,  ACPI_ERST0_OFFSET (Action),                 "Action", 0},
    929      1.1  christos     {ACPI_DMT_ERSTINST, ACPI_ERST0_OFFSET (Instruction),            "Instruction", 0},
    930      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ERST0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
    931      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_ERST0_FLAG_OFFSET (Flags,0),           "Preserve Register Bits", 0},
    932      1.1  christos 
    933      1.1  christos     {ACPI_DMT_UINT8,    ACPI_ERST0_OFFSET (Reserved),               "Reserved", 0},
    934      1.1  christos     {ACPI_DMT_GAS,      ACPI_ERST0_OFFSET (RegisterRegion),         "Register Region", 0},
    935      1.1  christos     {ACPI_DMT_UINT64,   ACPI_ERST0_OFFSET (Value),                  "Value", 0},
    936      1.1  christos     {ACPI_DMT_UINT64,   ACPI_ERST0_OFFSET (Mask),                   "Mask", 0},
    937      1.1  christos     ACPI_DMT_TERMINATOR
    938      1.1  christos };
    939      1.1  christos 
    940      1.1  christos 
    941      1.1  christos /*******************************************************************************
    942      1.1  christos  *
    943      1.1  christos  * FPDT - Firmware Performance Data Table (ACPI 5.0)
    944      1.1  christos  *
    945      1.1  christos  ******************************************************************************/
    946      1.1  christos 
    947      1.1  christos /* Main table consists of only the standard ACPI header - subtables follow */
    948      1.1  christos 
    949      1.1  christos /* FPDT subtable header */
    950      1.1  christos 
    951      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdtHdr[] =
    952      1.1  christos {
    953      1.1  christos     {ACPI_DMT_UINT16,   ACPI_FPDTH_OFFSET (Type),                   "Subtable Type", 0},
    954      1.1  christos     {ACPI_DMT_UINT8,    ACPI_FPDTH_OFFSET (Length),                 "Length", DT_LENGTH},
    955      1.1  christos     {ACPI_DMT_UINT8,    ACPI_FPDTH_OFFSET (Revision),               "Revision", 0},
    956      1.1  christos     ACPI_DMT_TERMINATOR
    957      1.1  christos };
    958      1.1  christos 
    959      1.1  christos /* 0: Firmware Basic Boot Performance Record */
    960      1.1  christos 
    961      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdt0[] =
    962      1.1  christos {
    963      1.1  christos     {ACPI_DMT_UINT32,   ACPI_FPDT0_OFFSET (Reserved),               "Reserved", 0},
    964      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT1_OFFSET (Address),                "FPDT Boot Record Address", 0},
    965      1.1  christos     ACPI_DMT_TERMINATOR
    966      1.1  christos };
    967      1.1  christos 
    968      1.1  christos /* 1: S3 Performance Table Pointer Record */
    969      1.1  christos 
    970      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdt1[] =
    971      1.1  christos {
    972      1.1  christos     {ACPI_DMT_UINT32,   ACPI_FPDT1_OFFSET (Reserved),               "Reserved", 0},
    973      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT1_OFFSET (Address),                "S3PT Record Address", 0},
    974      1.1  christos     ACPI_DMT_TERMINATOR
    975      1.1  christos };
    976      1.1  christos 
    977      1.1  christos #if 0
    978      1.1  christos     /* Boot Performance Record, not supported at this time. */
    979      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ResetEnd),               "Reset End", 0},
    980      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (LoadStart),              "Load Image Start", 0},
    981      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (StartupStart),           "Start Image Start", 0},
    982      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ExitServicesEntry),      "Exit Services Entry", 0},
    983      1.1  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ExitServicesExit),       "Exit Services Exit", 0},
    984      1.1  christos #endif
    985      1.1  christos 
    986      1.1  christos 
    987      1.1  christos /*******************************************************************************
    988      1.1  christos  *
    989      1.1  christos  * GTDT - Generic Timer Description Table
    990      1.1  christos  *
    991      1.1  christos  ******************************************************************************/
    992      1.1  christos 
    993      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt[] =
    994      1.1  christos {
    995      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT_OFFSET (CounterBlockAddresss),    "Counter Block Address", 0},
    996      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (Reserved),                "Reserved", 0},
    997      1.1  christos     ACPI_DMT_NEW_LINE,
    998      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (SecureEl1Interrupt),      "Secure EL1 Interrupt", 0},
    999      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (SecureEl1Flags),          "EL1 Flags (decoded below)", DT_FLAG},
   1000      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Trigger Mode", 0},
   1001      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Polarity", 0},
   1002      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Always On", 0},
   1003      1.1  christos     ACPI_DMT_NEW_LINE,
   1004      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl1Interrupt),   "Non-Secure EL1 Interrupt", 0},
   1005      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl1Flags),       "NEL1 Flags (decoded below)", DT_FLAG},
   1006      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Trigger Mode", 0},
   1007      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Polarity", 0},
   1008      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Always On", 0},
   1009      1.1  christos     ACPI_DMT_NEW_LINE,
   1010      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (VirtualTimerInterrupt),   "Virtual Timer Interrupt", 0},
   1011      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (VirtualTimerFlags),       "VT Flags (decoded below)", DT_FLAG},
   1012      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Trigger Mode", 0},
   1013      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Polarity", 0},
   1014      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Always On", 0},
   1015      1.1  christos     ACPI_DMT_NEW_LINE,
   1016      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl2Interrupt),   "Non-Secure EL2 Interrupt", 0},
   1017      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl2Flags),       "NEL2 Flags (decoded below)", DT_FLAG},
   1018      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Trigger Mode", 0},
   1019      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Polarity", 0},
   1020      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Always On", 0},
   1021      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT_OFFSET (CounterReadBlockAddress), "Counter Read Block Address", 0},
   1022      1.1  christos     ACPI_DMT_NEW_LINE,
   1023      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (PlatformTimerCount),      "Platform Timer Count", 0},
   1024      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (PlatformTimerOffset),     "Platform Timer Offset", 0},
   1025      1.1  christos     ACPI_DMT_TERMINATOR
   1026      1.1  christos };
   1027      1.1  christos 
   1028  1.1.1.2  christos /* GDTD EL2 timer info. This table is appended to AcpiDmTableInfoGtdt for rev 3 and later */
   1029  1.1.1.2  christos 
   1030  1.1.1.2  christos ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[] =
   1031  1.1.1.2  christos {
   1032  1.1.1.2  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_EL2_OFFSET (VirtualEL2TimerGsiv),  "Virtual EL2 Timer GSIV", 0},
   1033  1.1.1.2  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_EL2_OFFSET (VirtualEL2TimerFlags), "Virtual EL2 Timer Flags", 0},
   1034  1.1.1.2  christos     ACPI_DMT_TERMINATOR
   1035  1.1.1.2  christos };
   1036  1.1.1.2  christos 
   1037      1.1  christos /* GTDT Subtable header (one per Subtable) */
   1038      1.1  christos 
   1039      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdtHdr[] =
   1040      1.1  christos {
   1041      1.1  christos     {ACPI_DMT_GTDT,     ACPI_GTDTH_OFFSET (Type),                   "Subtable Type", 0},
   1042      1.1  christos     {ACPI_DMT_UINT16,   ACPI_GTDTH_OFFSET (Length),                 "Length", DT_LENGTH},
   1043      1.1  christos     ACPI_DMT_TERMINATOR
   1044      1.1  christos };
   1045      1.1  christos 
   1046      1.1  christos /* GTDT Subtables */
   1047      1.1  christos 
   1048      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt0[] =
   1049      1.1  christos {
   1050      1.1  christos     {ACPI_DMT_UINT8,    ACPI_GTDT0_OFFSET (Reserved),               "Reserved", 0},
   1051      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0_OFFSET (BlockAddress),           "Block Address", 0},
   1052      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0_OFFSET (TimerCount),             "Timer Count", 0},
   1053      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0_OFFSET (TimerOffset),            "Timer Offset", 0},
   1054      1.1  christos     ACPI_DMT_TERMINATOR
   1055      1.1  christos };
   1056      1.1  christos 
   1057      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt0a[] =
   1058      1.1  christos {
   1059      1.1  christos     {ACPI_DMT_UINT8 ,   ACPI_GTDT0a_OFFSET (FrameNumber),               "Frame Number", 0},
   1060      1.1  christos     {ACPI_DMT_UINT24,   ACPI_GTDT0a_OFFSET (Reserved[0]),               "Reserved", 0},
   1061      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0a_OFFSET (BaseAddress),               "Base Address", 0},
   1062      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0a_OFFSET (El0BaseAddress),            "EL0 Base Address", 0},
   1063      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (TimerInterrupt),            "Timer Interrupt", 0},
   1064      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (TimerFlags),                "Timer Flags (decoded below)", 0},
   1065      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (TimerFlags,0),         "Trigger Mode", 0},
   1066      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (TimerFlags,0),         "Polarity", 0},
   1067      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (VirtualTimerInterrupt),     "Virtual Timer Interrupt", 0},
   1068      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (VirtualTimerFlags),         "Virtual Timer Flags (decoded below)", 0},
   1069      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (VirtualTimerFlags,0),  "Trigger Mode", 0},
   1070      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (VirtualTimerFlags,0),  "Polarity", 0},
   1071      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (CommonFlags),               "Common Flags (decoded below)", 0},
   1072      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (CommonFlags,0),        "Secure", 0},
   1073      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (CommonFlags,0),        "Always On", 0},
   1074      1.1  christos     ACPI_DMT_TERMINATOR
   1075      1.1  christos };
   1076      1.1  christos 
   1077      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt1[] =
   1078      1.1  christos {
   1079      1.1  christos     {ACPI_DMT_UINT8,    ACPI_GTDT1_OFFSET (Reserved),               "Reserved", 0},
   1080      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT1_OFFSET (RefreshFrameAddress),    "Refresh Frame Address", 0},
   1081      1.1  christos     {ACPI_DMT_UINT64,   ACPI_GTDT1_OFFSET (ControlFrameAddress),    "Control Frame Address", 0},
   1082      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT1_OFFSET (TimerInterrupt),         "Timer Interrupt", 0},
   1083      1.1  christos     {ACPI_DMT_UINT32,   ACPI_GTDT1_OFFSET (TimerFlags),             "Timer Flags (decoded below)", DT_FLAG},
   1084      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Trigger Mode", 0},
   1085      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Polarity", 0},
   1086      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Security", 0},
   1087      1.1  christos     ACPI_DMT_TERMINATOR
   1088      1.1  christos };
   1089      1.1  christos 
   1090      1.1  christos 
   1091      1.1  christos /*******************************************************************************
   1092      1.1  christos  *
   1093      1.1  christos  * HEST - Hardware Error Source table
   1094      1.1  christos  *
   1095      1.1  christos  ******************************************************************************/
   1096      1.1  christos 
   1097      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest[] =
   1098      1.1  christos {
   1099      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST_OFFSET (ErrorSourceCount),        "Error Source Count", 0},
   1100      1.1  christos     ACPI_DMT_TERMINATOR
   1101      1.1  christos };
   1102      1.1  christos 
   1103      1.1  christos /* Common HEST structures for subtables */
   1104      1.1  christos 
   1105      1.1  christos #define ACPI_DM_HEST_HEADER \
   1106      1.1  christos     {ACPI_DMT_HEST,     ACPI_HEST0_OFFSET (Header.Type),            "Subtable Type", 0}, \
   1107      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST0_OFFSET (Header.SourceId),        "Source Id", 0}
   1108      1.1  christos 
   1109      1.1  christos #define ACPI_DM_HEST_AER \
   1110      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved1),              "Reserved", 0}, \
   1111      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Flags),                  "Flags (decoded below)", DT_FLAG}, \
   1112      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST6_FLAG_OFFSET (Aer.Flags,0),           "Firmware First", 0}, \
   1113      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST6_FLAG_OFFSET (Aer.Flags,0),           "Global", 0}, \
   1114      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Enabled),                "Enabled", 0}, \
   1115      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.RecordsToPreallocate),   "Records To Preallocate", 0}, \
   1116      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.MaxSectionsPerRecord),   "Max Sections Per Record", 0}, \
   1117      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.Bus),                    "Bus", 0}, \
   1118      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Device),                 "Device", 0}, \
   1119      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Function),               "Function", 0}, \
   1120      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.DeviceControl),          "DeviceControl", 0}, \
   1121      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved2),              "Reserved", 0}, \
   1122      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableMask),      "Uncorrectable Mask", 0}, \
   1123      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableSeverity),  "Uncorrectable Severity", 0}, \
   1124      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.CorrectableMask),        "Correctable Mask", 0}, \
   1125      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.AdvancedCapabilities),   "Advanced Capabilities", 0}
   1126      1.1  christos 
   1127      1.1  christos 
   1128      1.1  christos /* HEST Subtables */
   1129      1.1  christos 
   1130      1.1  christos /* 0: IA32 Machine Check Exception */
   1131      1.1  christos 
   1132      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest0[] =
   1133      1.1  christos {
   1134      1.1  christos     ACPI_DM_HEST_HEADER,
   1135      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST0_OFFSET (Reserved1),              "Reserved1", 0},
   1136      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1137      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST0_FLAG_OFFSET (Flags,0),           "Firmware First", 0},
   1138      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_HEST0_FLAG_OFFSET (Flags,0),           "GHES Assist", 0},
   1139      1.1  christos 
   1140      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (Enabled),                "Enabled", 0},
   1141      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST0_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
   1142      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST0_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
   1143      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HEST0_OFFSET (GlobalCapabilityData),   "Global Capability Data", 0},
   1144      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HEST0_OFFSET (GlobalControlData),      "Global Control Data", 0},
   1145      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (NumHardwareBanks),       "Num Hardware Banks", 0},
   1146      1.1  christos     {ACPI_DMT_UINT56,   ACPI_HEST0_OFFSET (Reserved3[0]),           "Reserved2", 0},
   1147      1.1  christos     ACPI_DMT_TERMINATOR
   1148      1.1  christos };
   1149      1.1  christos 
   1150      1.1  christos /* 1: IA32 Corrected Machine Check */
   1151      1.1  christos 
   1152      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest1[] =
   1153      1.1  christos {
   1154      1.1  christos     ACPI_DM_HEST_HEADER,
   1155      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST1_OFFSET (Reserved1),              "Reserved1", 0},
   1156      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1157      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST1_FLAG_OFFSET (Flags,0),           "Firmware First", 0},
   1158      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_HEST1_FLAG_OFFSET (Flags,0),           "GHES Assist", 0},
   1159      1.1  christos 
   1160      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (Enabled),                "Enabled", 0},
   1161      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST1_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
   1162      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST1_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
   1163      1.1  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST1_OFFSET (Notify),                 "Notify", 0},
   1164      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (NumHardwareBanks),       "Num Hardware Banks", 0},
   1165      1.1  christos     {ACPI_DMT_UINT24,   ACPI_HEST1_OFFSET (Reserved2[0]),           "Reserved2", 0},
   1166      1.1  christos     ACPI_DMT_TERMINATOR
   1167      1.1  christos };
   1168      1.1  christos 
   1169      1.1  christos /* 2: IA32 Non-Maskable Interrupt */
   1170      1.1  christos 
   1171      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest2[] =
   1172      1.1  christos {
   1173      1.1  christos     ACPI_DM_HEST_HEADER,
   1174      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (Reserved),               "Reserved", 0},
   1175      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
   1176      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
   1177      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (MaxRawDataLength),       "Max Raw Data Length", 0},
   1178      1.1  christos     ACPI_DMT_TERMINATOR
   1179      1.1  christos };
   1180      1.1  christos 
   1181      1.1  christos /* 6: PCI Express Root Port AER */
   1182      1.1  christos 
   1183      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest6[] =
   1184      1.1  christos {
   1185      1.1  christos     ACPI_DM_HEST_HEADER,
   1186      1.1  christos     ACPI_DM_HEST_AER,
   1187      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (RootErrorCommand),       "Root Error Command", 0},
   1188      1.1  christos     ACPI_DMT_TERMINATOR
   1189      1.1  christos };
   1190      1.1  christos 
   1191      1.1  christos /* 7: PCI Express AER (AER Endpoint) */
   1192      1.1  christos 
   1193      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest7[] =
   1194      1.1  christos {
   1195      1.1  christos     ACPI_DM_HEST_HEADER,
   1196      1.1  christos     ACPI_DM_HEST_AER,
   1197      1.1  christos     ACPI_DMT_TERMINATOR
   1198      1.1  christos };
   1199      1.1  christos 
   1200      1.1  christos /* 8: PCI Express/PCI-X Bridge AER */
   1201      1.1  christos 
   1202      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest8[] =
   1203      1.1  christos {
   1204      1.1  christos     ACPI_DM_HEST_HEADER,
   1205      1.1  christos     ACPI_DM_HEST_AER,
   1206      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (UncorrectableMask2),     "2nd Uncorrectable Mask", 0},
   1207      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (UncorrectableSeverity2), "2nd Uncorrectable Severity", 0},
   1208      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (AdvancedCapabilities2),  "2nd Advanced Capabilities", 0},
   1209      1.1  christos     ACPI_DMT_TERMINATOR
   1210      1.1  christos };
   1211      1.1  christos 
   1212      1.1  christos /* 9: Generic Hardware Error Source */
   1213      1.1  christos 
   1214      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest9[] =
   1215      1.1  christos {
   1216      1.1  christos     ACPI_DM_HEST_HEADER,
   1217      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST9_OFFSET (RelatedSourceId),        "Related Source Id", 0},
   1218      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST9_OFFSET (Reserved),               "Reserved", 0},
   1219      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST9_OFFSET (Enabled),                "Enabled", 0},
   1220      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
   1221      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
   1222      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (MaxRawDataLength),       "Max Raw Data Length", 0},
   1223      1.1  christos     {ACPI_DMT_GAS,      ACPI_HEST9_OFFSET (ErrorStatusAddress),     "Error Status Address", 0},
   1224      1.1  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST9_OFFSET (Notify),                 "Notify", 0},
   1225      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (ErrorBlockLength),       "Error Status Block Length", 0},
   1226      1.1  christos     ACPI_DMT_TERMINATOR
   1227      1.1  christos };
   1228      1.1  christos 
   1229      1.1  christos /* 10: Generic Hardware Error Source - Version 2 */
   1230      1.1  christos 
   1231      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest10[] =
   1232      1.1  christos {
   1233      1.1  christos     ACPI_DM_HEST_HEADER,
   1234      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST10_OFFSET (RelatedSourceId),       "Related Source Id", 0},
   1235      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST10_OFFSET (Reserved),              "Reserved", 0},
   1236      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST10_OFFSET (Enabled),               "Enabled", 0},
   1237      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (RecordsToPreallocate),  "Records To Preallocate", 0},
   1238      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (MaxSectionsPerRecord),  "Max Sections Per Record", 0},
   1239      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (MaxRawDataLength),      "Max Raw Data Length", 0},
   1240      1.1  christos     {ACPI_DMT_GAS,      ACPI_HEST10_OFFSET (ErrorStatusAddress),    "Error Status Address", 0},
   1241      1.1  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST10_OFFSET (Notify),                "Notify", 0},
   1242      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (ErrorBlockLength),      "Error Status Block Length", 0},
   1243      1.1  christos     {ACPI_DMT_GAS,      ACPI_HEST10_OFFSET (ReadAckRegister),       "Read Ack Register", 0},
   1244      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HEST10_OFFSET (ReadAckPreserve),       "Read Ack Preserve", 0},
   1245      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HEST10_OFFSET (ReadAckWrite),          "Read Ack Write", 0},
   1246      1.1  christos     ACPI_DMT_TERMINATOR
   1247      1.1  christos };
   1248      1.1  christos 
   1249      1.1  christos /* 11: IA32 Deferred Machine Check */
   1250      1.1  christos 
   1251      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest11[] =
   1252      1.1  christos {
   1253      1.1  christos     ACPI_DM_HEST_HEADER,
   1254      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HEST11_OFFSET (Reserved1),             "Reserved1", 0},
   1255      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST11_OFFSET (Flags),                 "Flags (decoded below)", DT_FLAG},
   1256      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HEST11_FLAG_OFFSET (Flags,0),          "Firmware First", 0},
   1257      1.1  christos     {ACPI_DMT_FLAG2,    ACPI_HEST11_FLAG_OFFSET (Flags,0),          "GHES Assist", 0},
   1258      1.1  christos 
   1259      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST11_OFFSET (Enabled),               "Enabled", 0},
   1260      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST11_OFFSET (RecordsToPreallocate),  "Records To Preallocate", 0},
   1261      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HEST11_OFFSET (MaxSectionsPerRecord),  "Max Sections Per Record", 0},
   1262      1.1  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST11_OFFSET (Notify),                "Notify", 0},
   1263      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HEST11_OFFSET (NumHardwareBanks),      "Num Hardware Banks", 0},
   1264      1.1  christos     {ACPI_DMT_UINT24,   ACPI_HEST11_OFFSET (Reserved2[0]),          "Reserved2", 0},
   1265      1.1  christos     ACPI_DMT_TERMINATOR
   1266      1.1  christos };
   1267      1.1  christos 
   1268      1.1  christos /* Notification Structure */
   1269      1.1  christos 
   1270      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHestNotify[] =
   1271      1.1  christos {
   1272      1.1  christos     {ACPI_DMT_HESTNTYP, ACPI_HESTN_OFFSET (Type),                   "Notify Type", 0},
   1273      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTN_OFFSET (Length),                 "Notify Length", DT_LENGTH},
   1274      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HESTN_OFFSET (ConfigWriteEnable),      "Configuration Write Enable", 0},
   1275      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollInterval),           "PollInterval", 0},
   1276      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (Vector),                 "Vector", 0},
   1277      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollingThresholdValue),  "Polling Threshold Value", 0},
   1278      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollingThresholdWindow), "Polling Threshold Window", 0},
   1279      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (ErrorThresholdValue),    "Error Threshold Value", 0},
   1280      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (ErrorThresholdWindow),   "Error Threshold Window", 0},
   1281      1.1  christos     ACPI_DMT_TERMINATOR
   1282      1.1  christos };
   1283      1.1  christos 
   1284      1.1  christos 
   1285      1.1  christos /*
   1286      1.1  christos  * IA32 Error Bank(s) - Follows the ACPI_HEST_IA_MACHINE_CHECK and
   1287      1.1  christos  * ACPI_HEST_IA_CORRECTED structures.
   1288      1.1  christos  */
   1289      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHestBank[] =
   1290      1.1  christos {
   1291      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (BankNumber),             "Bank Number", 0},
   1292      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (ClearStatusOnInit),      "Clear Status On Init", 0},
   1293      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (StatusFormat),           "Status Format", 0},
   1294      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (Reserved),               "Reserved", 0},
   1295      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (ControlRegister),        "Control Register", 0},
   1296      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HESTB_OFFSET (ControlData),            "Control Data", 0},
   1297      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (StatusRegister),         "Status Register", 0},
   1298      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (AddressRegister),        "Address Register", 0},
   1299      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (MiscRegister),           "Misc Register", 0},
   1300      1.1  christos     ACPI_DMT_TERMINATOR
   1301      1.1  christos };
   1302      1.1  christos 
   1303      1.1  christos 
   1304      1.1  christos /*******************************************************************************
   1305      1.1  christos  *
   1306      1.1  christos  * HMAT - Heterogeneous Memory Attributes Table
   1307      1.1  christos  *
   1308      1.1  christos  ******************************************************************************/
   1309      1.1  christos 
   1310      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat[] =
   1311      1.1  christos {
   1312      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT_OFFSET (Reserved),                "Reserved", 0},
   1313      1.1  christos     ACPI_DMT_TERMINATOR
   1314      1.1  christos };
   1315      1.1  christos 
   1316      1.1  christos /* Common HMAT structure header (one per Subtable) */
   1317      1.1  christos 
   1318      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmatHdr[] =
   1319      1.1  christos {
   1320      1.1  christos     {ACPI_DMT_HMAT,     ACPI_HMATH_OFFSET (Type),                   "Structure Type", 0},
   1321      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HMATH_OFFSET (Reserved),               "Reserved", 0},
   1322      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMATH_OFFSET (Length),                 "Length", 0},
   1323      1.1  christos     ACPI_DMT_TERMINATOR
   1324      1.1  christos };
   1325      1.1  christos 
   1326      1.1  christos /* HMAT subtables */
   1327      1.1  christos 
   1328  1.1.1.2  christos /* 0x00: Memory proximity domain attributes */
   1329      1.1  christos 
   1330      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat0[] =
   1331      1.1  christos {
   1332      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HMAT0_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1333      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HMAT0_FLAG_OFFSET (Flags,0),           "Processor Proximity Domain Valid", 0},
   1334      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HMAT0_OFFSET (Reserved1),              "Reserved1", 0},
   1335  1.1.1.4  christos     {ACPI_DMT_UINT32,   ACPI_HMAT0_OFFSET (InitiatorPD),            "Attached Initiator Proximity Domain", 0},
   1336      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT0_OFFSET (MemoryPD),               "Memory Proximity Domain", 0},
   1337      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT0_OFFSET (Reserved2),              "Reserved2", 0},
   1338  1.1.1.2  christos     {ACPI_DMT_UINT64,   ACPI_HMAT0_OFFSET (Reserved3),              "Reserved3", 0},
   1339  1.1.1.2  christos     {ACPI_DMT_UINT64,   ACPI_HMAT0_OFFSET (Reserved4),              "Reserved4", 0},
   1340      1.1  christos     ACPI_DMT_TERMINATOR
   1341      1.1  christos };
   1342      1.1  christos 
   1343      1.1  christos /* 0x01: System Locality Latency and Bandwidth Information */
   1344      1.1  christos 
   1345      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat1[] =
   1346      1.1  christos {
   1347      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HMAT1_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1348  1.1.1.5  christos     {ACPI_DMT_FLAGS4_0, ACPI_HMAT1_FLAG_OFFSET (Flags,0),           "Memory Hierarchy", 0},         /* First 4 bits */
   1349  1.1.1.5  christos     {ACPI_DMT_FLAG4,    ACPI_HMAT1_FLAG_OFFSET (Flags,0),           "Use Minimum Transfer Size", 0},
   1350  1.1.1.5  christos     {ACPI_DMT_FLAG5,    ACPI_HMAT1_FLAG_OFFSET (Flags,0),           "Non-sequential Transfers", 0},
   1351      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HMAT1_OFFSET (DataType),               "Data Type", 0},
   1352  1.1.1.5  christos     {ACPI_DMT_UINT8,    ACPI_HMAT1_OFFSET (MinTransferSize),        "Minimum Transfer Size", 0},
   1353  1.1.1.5  christos     {ACPI_DMT_UINT8,    ACPI_HMAT1_OFFSET (Reserved1),              "Reserved1", 0},
   1354      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT1_OFFSET (NumberOfInitiatorPDs),   "Initiator Proximity Domains #", 0},
   1355      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT1_OFFSET (NumberOfTargetPDs),      "Target Proximity Domains #", 0},
   1356      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HMAT1_OFFSET (Reserved2),              "Reserved2", 0},
   1357      1.1  christos     {ACPI_DMT_UINT64,   ACPI_HMAT1_OFFSET (EntryBaseUnit),          "Entry Base Unit", 0},
   1358      1.1  christos     ACPI_DMT_TERMINATOR
   1359      1.1  christos };
   1360      1.1  christos 
   1361      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat1a[] =
   1362      1.1  christos {
   1363      1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Initiator Proximity Domain List", DT_OPTIONAL},
   1364      1.1  christos     ACPI_DMT_TERMINATOR
   1365      1.1  christos };
   1366      1.1  christos 
   1367      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat1b[] =
   1368      1.1  christos {
   1369      1.1  christos     {ACPI_DMT_UINT32,   0,                                          "Target Proximity Domain List", DT_OPTIONAL},
   1370      1.1  christos     ACPI_DMT_TERMINATOR
   1371      1.1  christos };
   1372      1.1  christos 
   1373      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat1c[] =
   1374      1.1  christos {
   1375      1.1  christos     {ACPI_DMT_UINT16,   0,                                          "Entry", DT_OPTIONAL},
   1376      1.1  christos     ACPI_DMT_TERMINATOR
   1377      1.1  christos };
   1378      1.1  christos 
   1379      1.1  christos /* 0x02: Memory Side Cache Information */
   1380      1.1  christos 
   1381      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat2[] =
   1382      1.1  christos {
   1383      1.1  christos     {ACPI_DMT_UINT32,       ACPI_HMAT2_OFFSET (MemoryPD),               "Memory Proximity Domain", 0},
   1384      1.1  christos     {ACPI_DMT_UINT32,       ACPI_HMAT2_OFFSET (Reserved1),              "Reserved1", 0},
   1385      1.1  christos     {ACPI_DMT_UINT64,       ACPI_HMAT2_OFFSET (CacheSize),              "Memory Side Cache Size", 0},
   1386      1.1  christos     {ACPI_DMT_UINT32,       ACPI_HMAT2_OFFSET (CacheAttributes),        "Cache Attributes (decoded below)", 0},
   1387      1.1  christos     {ACPI_DMT_FLAGS4_0,     ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Total Cache Levels", 0},
   1388      1.1  christos     {ACPI_DMT_FLAGS4_4,     ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Level", 0},
   1389      1.1  christos     {ACPI_DMT_FLAGS4_8,     ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Associativity", 0},
   1390      1.1  christos     {ACPI_DMT_FLAGS4_12,    ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Write Policy", 0},
   1391      1.1  christos     {ACPI_DMT_FLAGS16_16,   ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Line Size", 0},
   1392      1.1  christos     {ACPI_DMT_UINT16,       ACPI_HMAT2_OFFSET (Reserved2),              "Reserved2", 0},
   1393      1.1  christos     {ACPI_DMT_UINT16,       ACPI_HMAT2_OFFSET (NumberOfSMBIOSHandles),  "SMBIOS Handle #", 0},
   1394      1.1  christos     ACPI_DMT_TERMINATOR
   1395      1.1  christos };
   1396      1.1  christos 
   1397      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHmat2a[] =
   1398      1.1  christos {
   1399      1.1  christos     {ACPI_DMT_UINT16,   0,                                          "SMBIOS Handle", DT_OPTIONAL},
   1400      1.1  christos     ACPI_DMT_TERMINATOR
   1401      1.1  christos };
   1402      1.1  christos 
   1403      1.1  christos 
   1404      1.1  christos /*******************************************************************************
   1405      1.1  christos  *
   1406      1.1  christos  * HPET - High Precision Event Timer table
   1407      1.1  christos  *
   1408      1.1  christos  ******************************************************************************/
   1409      1.1  christos 
   1410      1.1  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHpet[] =
   1411      1.1  christos {
   1412      1.1  christos     {ACPI_DMT_UINT32,   ACPI_HPET_OFFSET (Id),                      "Hardware Block ID", 0},
   1413      1.1  christos     {ACPI_DMT_GAS,      ACPI_HPET_OFFSET (Address),                 "Timer Block Register", 0},
   1414      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HPET_OFFSET (Sequence),                "Sequence Number", 0},
   1415      1.1  christos     {ACPI_DMT_UINT16,   ACPI_HPET_OFFSET (MinimumTick),             "Minimum Clock Ticks", 0},
   1416      1.1  christos     {ACPI_DMT_UINT8,    ACPI_HPET_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
   1417      1.1  christos     {ACPI_DMT_FLAG0,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "4K Page Protect", 0},
   1418      1.1  christos     {ACPI_DMT_FLAG1,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "64K Page Protect", 0},
   1419      1.1  christos     ACPI_DMT_TERMINATOR
   1420      1.1  christos };
   1421      1.1  christos /*! [End] no source code translation !*/
   1422