Home | History | Annotate | Line # | Download | only in common
dmtbinfo.c revision 1.10
      1   1.1    jruoho /******************************************************************************
      2   1.1    jruoho  *
      3   1.1    jruoho  * Module Name: dmtbinfo - Table info for non-AML tables
      4   1.1    jruoho  *
      5   1.1    jruoho  *****************************************************************************/
      6   1.1    jruoho 
      7   1.3    jruoho /*
      8   1.9  christos  * Copyright (C) 2000 - 2016, Intel Corp.
      9   1.1    jruoho  * All rights reserved.
     10   1.1    jruoho  *
     11   1.3    jruoho  * Redistribution and use in source and binary forms, with or without
     12   1.3    jruoho  * modification, are permitted provided that the following conditions
     13   1.3    jruoho  * are met:
     14   1.3    jruoho  * 1. Redistributions of source code must retain the above copyright
     15   1.3    jruoho  *    notice, this list of conditions, and the following disclaimer,
     16   1.3    jruoho  *    without modification.
     17   1.3    jruoho  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18   1.3    jruoho  *    substantially similar to the "NO WARRANTY" disclaimer below
     19   1.3    jruoho  *    ("Disclaimer") and any redistribution must be conditioned upon
     20   1.3    jruoho  *    including a substantially similar Disclaimer requirement for further
     21   1.3    jruoho  *    binary redistribution.
     22   1.3    jruoho  * 3. Neither the names of the above-listed copyright holders nor the names
     23   1.3    jruoho  *    of any contributors may be used to endorse or promote products derived
     24   1.3    jruoho  *    from this software without specific prior written permission.
     25   1.3    jruoho  *
     26   1.3    jruoho  * Alternatively, this software may be distributed under the terms of the
     27   1.3    jruoho  * GNU General Public License ("GPL") version 2 as published by the Free
     28   1.3    jruoho  * Software Foundation.
     29   1.3    jruoho  *
     30   1.3    jruoho  * NO WARRANTY
     31   1.3    jruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32   1.3    jruoho  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33   1.3    jruoho  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     34   1.3    jruoho  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35   1.3    jruoho  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36   1.3    jruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37   1.3    jruoho  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38   1.3    jruoho  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39   1.3    jruoho  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40   1.3    jruoho  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41   1.3    jruoho  * POSSIBILITY OF SUCH DAMAGES.
     42   1.3    jruoho  */
     43   1.1    jruoho 
     44   1.1    jruoho #include "acpi.h"
     45   1.1    jruoho #include "accommon.h"
     46   1.1    jruoho #include "acdisasm.h"
     47   1.1    jruoho 
     48   1.1    jruoho /* This module used for application-level code only */
     49   1.1    jruoho 
     50   1.1    jruoho #define _COMPONENT          ACPI_CA_DISASSEMBLER
     51   1.1    jruoho         ACPI_MODULE_NAME    ("dmtbinfo")
     52   1.1    jruoho 
     53   1.1    jruoho /*
     54   1.4    jruoho  * How to add a new table:
     55   1.4    jruoho  *
     56   1.4    jruoho  * - Add the C table definition to the actbl1.h or actbl2.h header.
     57   1.4    jruoho  * - Add ACPI_xxxx_OFFSET macro(s) for the table (and subtables) to list below.
     58   1.4    jruoho  * - Define the table in this file (for the disassembler). If any
     59   1.4    jruoho  *   new data types are required (ACPI_DMT_*), see below.
     60   1.4    jruoho  * - Add an external declaration for the new table definition (AcpiDmTableInfo*)
     61   1.4    jruoho  *     in acdisam.h
     62   1.4    jruoho  * - Add new table definition to the dispatch table in dmtable.c (AcpiDmTableData)
     63   1.4    jruoho  *     If a simple table (with no subtables), no disassembly code is needed.
     64   1.4    jruoho  *     Otherwise, create the AcpiDmDump* function for to disassemble the table
     65   1.4    jruoho  *     and add it to the dmtbdump.c file.
     66   1.4    jruoho  * - Add an external declaration for the new AcpiDmDump* function in acdisasm.h
     67   1.4    jruoho  * - Add the new AcpiDmDump* function to the dispatch table in dmtable.c
     68   1.4    jruoho  * - Create a template for the new table
     69   1.4    jruoho  * - Add data table compiler support
     70   1.4    jruoho  *
     71   1.4    jruoho  * How to add a new data type (ACPI_DMT_*):
     72   1.4    jruoho  *
     73   1.4    jruoho  * - Add new type at the end of the ACPI_DMT list in acdisasm.h
     74   1.4    jruoho  * - Add length and implementation cases in dmtable.c  (disassembler)
     75   1.4    jruoho  * - Add type and length cases in dtutils.c (DT compiler)
     76   1.4    jruoho  */
     77   1.4    jruoho 
     78   1.4    jruoho /*
     79   1.1    jruoho  * Macros used to generate offsets to specific table fields
     80   1.1    jruoho  */
     81   1.5  christos #define ACPI_FACS_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_FACS,f)
     82   1.5  christos #define ACPI_GAS_OFFSET(f)              (UINT16) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f)
     83   1.5  christos #define ACPI_HDR_OFFSET(f)              (UINT16) ACPI_OFFSET (ACPI_TABLE_HEADER,f)
     84   1.5  christos #define ACPI_RSDP_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_RSDP,f)
     85   1.5  christos #define ACPI_BERT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_BERT,f)
     86   1.5  christos #define ACPI_BGRT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_BGRT,f)
     87   1.5  christos #define ACPI_BOOT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_BOOT,f)
     88   1.5  christos #define ACPI_CPEP_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_CPEP,f)
     89   1.5  christos #define ACPI_DBG2_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_DBG2,f)
     90   1.5  christos #define ACPI_DBGP_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_DBGP,f)
     91   1.5  christos #define ACPI_DMAR_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_DMAR,f)
     92   1.5  christos #define ACPI_DRTM_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_DRTM,f)
     93   1.5  christos #define ACPI_ECDT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_ECDT,f)
     94   1.5  christos #define ACPI_EINJ_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_EINJ,f)
     95   1.5  christos #define ACPI_ERST_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_ERST,f)
     96   1.5  christos #define ACPI_GTDT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_GTDT,f)
     97   1.5  christos #define ACPI_HEST_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_HEST,f)
     98   1.5  christos #define ACPI_HPET_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_HPET,f)
     99   1.8  christos #define ACPI_IORT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_IORT,f)
    100   1.5  christos #define ACPI_IVRS_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_IVRS,f)
    101   1.5  christos #define ACPI_MADT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_MADT,f)
    102   1.5  christos #define ACPI_MCFG_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_MCFG,f)
    103   1.5  christos #define ACPI_MCHI_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_MCHI,f)
    104   1.5  christos #define ACPI_MPST_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_MPST,f)
    105   1.5  christos #define ACPI_MSCT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_MSCT,f)
    106   1.8  christos #define ACPI_NFIT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_NFIT,f)
    107   1.5  christos #define ACPI_PCCT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_PCCT,f)
    108   1.5  christos #define ACPI_PMTT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_PMTT,f)
    109   1.5  christos #define ACPI_S3PT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_S3PT,f)
    110   1.5  christos #define ACPI_SBST_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_SBST,f)
    111   1.5  christos #define ACPI_SLIT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_SLIT,f)
    112   1.5  christos #define ACPI_SPCR_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_SPCR,f)
    113   1.5  christos #define ACPI_SPMI_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_SPMI,f)
    114   1.5  christos #define ACPI_SRAT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_SRAT,f)
    115   1.8  christos #define ACPI_STAO_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_STAO,f)
    116   1.8  christos #define ACPI_TCPA_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_HDR,f)
    117   1.5  christos #define ACPI_TPM2_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_TPM2,f)
    118   1.5  christos #define ACPI_UEFI_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_UEFI,f)
    119   1.5  christos #define ACPI_WAET_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_WAET,f)
    120   1.5  christos #define ACPI_WDAT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_WDAT,f)
    121   1.5  christos #define ACPI_WDDT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_WDDT,f)
    122   1.5  christos #define ACPI_WDRT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_WDRT,f)
    123   1.8  christos #define ACPI_WPBT_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_WPBT,f)
    124   1.8  christos #define ACPI_XENV_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_XENV,f)
    125   1.1    jruoho 
    126   1.1    jruoho /* Subtables */
    127   1.1    jruoho 
    128   1.5  christos #define ACPI_ASF0_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_ASF_INFO,f)
    129   1.5  christos #define ACPI_ASF1_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT,f)
    130   1.5  christos #define ACPI_ASF1a_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT_DATA,f)
    131   1.5  christos #define ACPI_ASF2_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_ASF_REMOTE,f)
    132   1.5  christos #define ACPI_ASF2a_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f)
    133   1.5  christos #define ACPI_ASF3_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_ASF_RMCP,f)
    134   1.5  christos #define ACPI_ASF4_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f)
    135   1.5  christos #define ACPI_CPEP0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
    136   1.5  christos #define ACPI_CSRT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_CSRT_GROUP,f)
    137   1.5  christos #define ACPI_CSRT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_CSRT_SHARED_INFO,f)
    138   1.5  christos #define ACPI_CSRT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_CSRT_DESCRIPTOR,f)
    139   1.5  christos #define ACPI_DBG20_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DBG2_DEVICE,f)
    140   1.5  christos #define ACPI_DMARS_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DMAR_DEVICE_SCOPE,f)
    141   1.5  christos #define ACPI_DMAR0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DMAR_HARDWARE_UNIT,f)
    142   1.5  christos #define ACPI_DMAR1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DMAR_RESERVED_MEMORY,f)
    143   1.5  christos #define ACPI_DMAR2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DMAR_ATSR,f)
    144   1.5  christos #define ACPI_DMAR3_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DMAR_RHSA,f)
    145   1.6  christos #define ACPI_DMAR4_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DMAR_ANDD,f)
    146   1.8  christos #define ACPI_DRTM0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST,f)
    147   1.8  christos #define ACPI_DRTM1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST,f)
    148   1.8  christos #define ACPI_DRTM1a_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE,f)
    149   1.8  christos #define ACPI_DRTM2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_DRTM_DPS_ID,f)
    150   1.5  christos #define ACPI_EINJ0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_WHEA_HEADER,f)
    151   1.5  christos #define ACPI_ERST0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_WHEA_HEADER,f)
    152   1.5  christos #define ACPI_FPDTH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f)
    153  1.10  christos #define ACPI_FPDT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_FPDT_BOOT_POINTER,f)
    154  1.10  christos #define ACPI_FPDT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_FPDT_S3PT_POINTER,f)
    155   1.6  christos #define ACPI_GTDT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_GTDT_TIMER_BLOCK,f)
    156   1.6  christos #define ACPI_GTDT0a_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_GTDT_TIMER_ENTRY,f)
    157   1.6  christos #define ACPI_GTDT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_GTDT_WATCHDOG,f)
    158   1.6  christos #define ACPI_GTDTH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_GTDT_HEADER,f)
    159   1.5  christos #define ACPI_HEST0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f)
    160   1.5  christos #define ACPI_HEST1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_IA_CORRECTED,f)
    161   1.5  christos #define ACPI_HEST2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_IA_NMI,f)
    162   1.5  christos #define ACPI_HEST6_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_AER_ROOT,f)
    163   1.5  christos #define ACPI_HEST7_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_AER,f)
    164   1.5  christos #define ACPI_HEST8_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_AER_BRIDGE,f)
    165   1.5  christos #define ACPI_HEST9_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_GENERIC,f)
    166  1.10  christos #define ACPI_HEST10_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_HEST_GENERIC_V2,f)
    167   1.5  christos #define ACPI_HESTN_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_NOTIFY,f)
    168   1.5  christos #define ACPI_HESTB_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_IA_ERROR_BANK,f)
    169   1.8  christos #define ACPI_IORT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_ITS_GROUP,f)
    170   1.8  christos #define ACPI_IORT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_NAMED_COMPONENT,f)
    171   1.8  christos #define ACPI_IORT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_ROOT_COMPLEX,f)
    172   1.8  christos #define ACPI_IORT3_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_SMMU,f)
    173  1.10  christos #define ACPI_IORT4_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_SMMU_V3,f)
    174   1.8  christos #define ACPI_IORTA_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_MEMORY_ACCESS,f)
    175   1.8  christos #define ACPI_IORTH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_NODE,f)
    176   1.8  christos #define ACPI_IORTM_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_ID_MAPPING,f)
    177   1.5  christos #define ACPI_IVRSH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IVRS_HEADER,f)
    178   1.5  christos #define ACPI_IVRS0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IVRS_HARDWARE,f)
    179   1.5  christos #define ACPI_IVRS1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IVRS_MEMORY,f)
    180   1.5  christos #define ACPI_IVRSD_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IVRS_DE_HEADER,f)
    181   1.5  christos #define ACPI_IVRS8A_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8A,f)
    182   1.5  christos #define ACPI_IVRS8B_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8B,f)
    183   1.5  christos #define ACPI_IVRS8C_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8C,f)
    184   1.6  christos #define ACPI_LPITH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_LPIT_HEADER,f)
    185   1.6  christos #define ACPI_LPIT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_LPIT_NATIVE,f)
    186   1.5  christos #define ACPI_MADT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC,f)
    187   1.5  christos #define ACPI_MADT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_IO_APIC,f)
    188   1.5  christos #define ACPI_MADT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_INTERRUPT_OVERRIDE,f)
    189   1.5  christos #define ACPI_MADT3_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_NMI_SOURCE,f)
    190   1.5  christos #define ACPI_MADT4_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC_NMI,f)
    191   1.5  christos #define ACPI_MADT5_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC_OVERRIDE,f)
    192   1.5  christos #define ACPI_MADT6_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_IO_SAPIC,f)
    193   1.5  christos #define ACPI_MADT7_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_LOCAL_SAPIC,f)
    194   1.5  christos #define ACPI_MADT8_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f)
    195   1.5  christos #define ACPI_MADT9_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MADT_LOCAL_X2APIC,f)
    196   1.5  christos #define ACPI_MADT10_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_MADT_LOCAL_X2APIC_NMI,f)
    197   1.5  christos #define ACPI_MADT11_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_INTERRUPT,f)
    198   1.5  christos #define ACPI_MADT12_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_DISTRIBUTOR,f)
    199   1.6  christos #define ACPI_MADT13_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_MSI_FRAME,f)
    200   1.6  christos #define ACPI_MADT14_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f)
    201   1.8  christos #define ACPI_MADT15_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f)
    202   1.5  christos #define ACPI_MADTH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f)
    203   1.5  christos #define ACPI_MCFG0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f)
    204   1.5  christos #define ACPI_MPST0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_NODE,f)
    205   1.5  christos #define ACPI_MPST0A_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_STATE,f)
    206   1.5  christos #define ACPI_MPST0B_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_MPST_COMPONENT,f)
    207   1.5  christos #define ACPI_MPST1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MPST_DATA_HDR,f)
    208   1.5  christos #define ACPI_MPST2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_DATA,f)
    209   1.5  christos #define ACPI_MSCT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MSCT_PROXIMITY,f)
    210   1.5  christos #define ACPI_MTMR0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_MTMR_ENTRY,f)
    211   1.8  christos #define ACPI_NFITH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_NFIT_HEADER,f)
    212   1.8  christos #define ACPI_NFIT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_NFIT_SYSTEM_ADDRESS,f)
    213   1.8  christos #define ACPI_NFIT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_NFIT_MEMORY_MAP,f)
    214   1.8  christos #define ACPI_NFIT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_NFIT_INTERLEAVE,f)
    215   1.8  christos #define ACPI_NFIT3_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_NFIT_SMBIOS,f)
    216   1.8  christos #define ACPI_NFIT4_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_NFIT_CONTROL_REGION,f)
    217   1.8  christos #define ACPI_NFIT5_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_NFIT_DATA_REGION,f)
    218   1.8  christos #define ACPI_NFIT6_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_NFIT_FLUSH_ADDRESS,f)
    219   1.5  christos #define ACPI_PCCT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_PCCT_SUBSPACE,f)
    220   1.6  christos #define ACPI_PCCT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED,f)
    221  1.10  christos #define ACPI_PCCT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED_TYPE2,f)
    222   1.5  christos #define ACPI_PMTT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_PMTT_SOCKET,f)
    223   1.5  christos #define ACPI_PMTT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_PMTT_CONTROLLER,f)
    224   1.5  christos #define ACPI_PMTT1A_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_PMTT_DOMAIN,f)
    225   1.5  christos #define ACPI_PMTT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_PMTT_PHYSICAL_COMPONENT,f)
    226   1.5  christos #define ACPI_PMTTH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_PMTT_HEADER,f)
    227  1.10  christos #define ACPI_S3PTH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f)
    228   1.5  christos #define ACPI_S3PT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f)
    229   1.5  christos #define ACPI_S3PT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_S3PT_SUSPEND,f)
    230   1.7  christos #define ACPI_SLIC_OFFSET(f)             (UINT16) ACPI_OFFSET (ACPI_TABLE_SLIC,f)
    231   1.5  christos #define ACPI_SRATH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f)
    232   1.5  christos #define ACPI_SRAT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SRAT_CPU_AFFINITY,f)
    233   1.5  christos #define ACPI_SRAT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SRAT_MEM_AFFINITY,f)
    234   1.5  christos #define ACPI_SRAT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f)
    235   1.6  christos #define ACPI_SRAT3_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SRAT_GICC_AFFINITY,f)
    236   1.8  christos #define ACPI_TCPA_CLIENT_OFFSET(f)      (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_CLIENT,f)
    237   1.8  christos #define ACPI_TCPA_SERVER_OFFSET(f)      (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_SERVER,f)
    238   1.5  christos #define ACPI_VRTC0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_VRTC_ENTRY,f)
    239   1.5  christos #define ACPI_WDAT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_WDAT_ENTRY,f)
    240   1.1    jruoho 
    241   1.1    jruoho /*
    242   1.1    jruoho  * Simplify access to flag fields by breaking them up into bytes
    243   1.1    jruoho  */
    244   1.5  christos #define ACPI_FLAG_OFFSET(d,f,o)         (UINT16) (ACPI_OFFSET (d,f) + o)
    245   1.1    jruoho 
    246   1.1    jruoho /* Flags */
    247   1.1    jruoho 
    248   1.8  christos #define ACPI_DRTM_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_DRTM,f,o)
    249   1.8  christos #define ACPI_DRTM1a_FLAG_OFFSET(f,o)    ACPI_FLAG_OFFSET (ACPI_DRTM_RESOURCE,f,o)
    250   1.1    jruoho #define ACPI_FADT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_FADT,f,o)
    251   1.1    jruoho #define ACPI_FACS_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_FACS,f,o)
    252   1.1    jruoho #define ACPI_HPET_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_HPET,f,o)
    253   1.1    jruoho #define ACPI_SRAT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_CPU_AFFINITY,f,o)
    254   1.1    jruoho #define ACPI_SRAT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o)
    255   1.1    jruoho #define ACPI_SRAT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o)
    256   1.6  christos #define ACPI_SRAT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_GICC_AFFINITY,f,o)
    257   1.5  christos #define ACPI_GTDT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_GTDT,f,o)
    258   1.6  christos #define ACPI_GTDT0a_FLAG_OFFSET(f,o)    ACPI_FLAG_OFFSET (ACPI_GTDT_TIMER_ENTRY,f,o)
    259   1.6  christos #define ACPI_GTDT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_GTDT_WATCHDOG,f,o)
    260   1.8  christos #define ACPI_IORT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_IORT_SMMU,f,o)
    261  1.10  christos #define ACPI_IORT4_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_IORT_SMMU_V3,f,o)
    262   1.8  christos #define ACPI_IORTA_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_IORT_MEMORY_ACCESS,f,o)
    263   1.8  christos #define ACPI_IORTM_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_IORT_ID_MAPPING,f,o)
    264   1.6  christos #define ACPI_LPITH_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_LPIT_HEADER,f,o)
    265   1.1    jruoho #define ACPI_MADT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_MADT,f,o)
    266   1.1    jruoho #define ACPI_MADT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC,f,o)
    267   1.1    jruoho #define ACPI_MADT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_OVERRIDE,f,o)
    268   1.1    jruoho #define ACPI_MADT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_NMI_SOURCE,f,o)
    269   1.1    jruoho #define ACPI_MADT4_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC_NMI,f,o)
    270   1.1    jruoho #define ACPI_MADT7_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_SAPIC,f,o)
    271   1.1    jruoho #define ACPI_MADT8_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f,o)
    272   1.1    jruoho #define ACPI_MADT9_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC,f,o)
    273   1.1    jruoho #define ACPI_MADT10_FLAG_OFFSET(f,o)    ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC_NMI,f,o)
    274   1.5  christos #define ACPI_MADT11_FLAG_OFFSET(f,o)    ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_INTERRUPT,f,o)
    275   1.6  christos #define ACPI_MADT13_FLAG_OFFSET(f,o)    ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_MSI_FRAME,f,o)
    276   1.5  christos #define ACPI_MPST0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MPST_POWER_NODE,f,o)
    277   1.5  christos #define ACPI_MPST2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_MPST_POWER_DATA,f,o)
    278   1.8  christos #define ACPI_NFIT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_NFIT_SYSTEM_ADDRESS,f,o)
    279   1.8  christos #define ACPI_NFIT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_NFIT_MEMORY_MAP,f,o)
    280   1.8  christos #define ACPI_NFIT4_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_NFIT_CONTROL_REGION,f,o)
    281   1.5  christos #define ACPI_PCCT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_PCCT,f,o)
    282   1.6  christos #define ACPI_PCCT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_PCCT_HW_REDUCED,f,o)
    283  1.10  christos #define ACPI_PCCT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_PCCT_HW_REDUCED_TYPE2,f,o)
    284   1.5  christos #define ACPI_PMTTH_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_PMTT_HEADER,f,o)
    285   1.3    jruoho #define ACPI_WDDT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_WDDT,f,o)
    286   1.3    jruoho #define ACPI_EINJ0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_WHEA_HEADER,f,o)
    287   1.3    jruoho #define ACPI_ERST0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_WHEA_HEADER,f,o)
    288   1.3    jruoho #define ACPI_HEST0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f,o)
    289   1.3    jruoho #define ACPI_HEST1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_HEST_IA_CORRECTED,f,o)
    290   1.3    jruoho #define ACPI_HEST6_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_HEST_AER_ROOT,f,o)
    291   1.1    jruoho 
    292   1.1    jruoho /*
    293   1.1    jruoho  * Required terminator for all tables below
    294   1.1    jruoho  */
    295   1.1    jruoho #define ACPI_DMT_TERMINATOR             {ACPI_DMT_EXIT, 0, NULL, 0}
    296   1.5  christos #define ACPI_DMT_NEW_LINE               {ACPI_DMT_EXTRA_TEXT, 0, "\n", 0}
    297   1.1    jruoho 
    298   1.1    jruoho 
    299   1.1    jruoho /*
    300   1.1    jruoho  * ACPI Table Information, used to dump formatted ACPI tables
    301   1.1    jruoho  *
    302   1.1    jruoho  * Each entry is of the form:  <Field Type, Field Offset, Field Name>
    303   1.1    jruoho  */
    304   1.1    jruoho 
    305   1.1    jruoho /*******************************************************************************
    306   1.1    jruoho  *
    307   1.1    jruoho  * Common ACPI table header
    308   1.1    jruoho  *
    309   1.1    jruoho  ******************************************************************************/
    310   1.1    jruoho 
    311   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHeader[] =
    312   1.1    jruoho {
    313   1.1    jruoho     {ACPI_DMT_SIG,      ACPI_HDR_OFFSET (Signature[0]),             "Signature", 0},
    314   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HDR_OFFSET (Length),                   "Table Length", DT_LENGTH},
    315   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HDR_OFFSET (Revision),                 "Revision", 0},
    316   1.1    jruoho     {ACPI_DMT_CHKSUM,   ACPI_HDR_OFFSET (Checksum),                 "Checksum", 0},
    317   1.1    jruoho     {ACPI_DMT_NAME6,    ACPI_HDR_OFFSET (OemId[0]),                 "Oem ID", 0},
    318   1.1    jruoho     {ACPI_DMT_NAME8,    ACPI_HDR_OFFSET (OemTableId[0]),            "Oem Table ID", 0},
    319   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HDR_OFFSET (OemRevision),              "Oem Revision", 0},
    320   1.1    jruoho     {ACPI_DMT_NAME4,    ACPI_HDR_OFFSET (AslCompilerId[0]),         "Asl Compiler ID", 0},
    321   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HDR_OFFSET (AslCompilerRevision),      "Asl Compiler Revision", 0},
    322   1.1    jruoho     ACPI_DMT_TERMINATOR
    323   1.1    jruoho };
    324   1.1    jruoho 
    325   1.1    jruoho 
    326   1.1    jruoho /*******************************************************************************
    327   1.1    jruoho  *
    328   1.1    jruoho  * GAS - Generic Address Structure
    329   1.1    jruoho  *
    330   1.1    jruoho  ******************************************************************************/
    331   1.1    jruoho 
    332   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoGas[] =
    333   1.1    jruoho {
    334   1.1    jruoho     {ACPI_DMT_SPACEID,  ACPI_GAS_OFFSET (SpaceId),                  "Space ID", 0},
    335   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_GAS_OFFSET (BitWidth),                 "Bit Width", 0},
    336   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_GAS_OFFSET (BitOffset),                "Bit Offset", 0},
    337   1.3    jruoho     {ACPI_DMT_ACCWIDTH, ACPI_GAS_OFFSET (AccessWidth),              "Encoded Access Width", 0},
    338   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_GAS_OFFSET (Address),                  "Address", 0},
    339   1.1    jruoho     ACPI_DMT_TERMINATOR
    340   1.1    jruoho };
    341   1.1    jruoho 
    342   1.1    jruoho 
    343   1.1    jruoho /*******************************************************************************
    344   1.1    jruoho  *
    345   1.1    jruoho  * RSDP - Root System Description Pointer (Signature is "RSD PTR ")
    346   1.1    jruoho  *
    347   1.1    jruoho  ******************************************************************************/
    348   1.1    jruoho 
    349   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoRsdp1[] =
    350   1.1    jruoho {
    351   1.1    jruoho     {ACPI_DMT_NAME8,    ACPI_RSDP_OFFSET (Signature[0]),            "Signature", 0},
    352   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_RSDP_OFFSET (Checksum),                "Checksum", 0},
    353   1.1    jruoho     {ACPI_DMT_NAME6,    ACPI_RSDP_OFFSET (OemId[0]),                "Oem ID", 0},
    354   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_RSDP_OFFSET (Revision),                "Revision", 0},
    355   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_RSDP_OFFSET (RsdtPhysicalAddress),     "RSDT Address", 0},
    356   1.1    jruoho     ACPI_DMT_TERMINATOR
    357   1.1    jruoho };
    358   1.1    jruoho 
    359   1.1    jruoho /* ACPI 2.0+ Extensions */
    360   1.1    jruoho 
    361   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoRsdp2[] =
    362   1.1    jruoho {
    363   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_RSDP_OFFSET (Length),                  "Length", DT_LENGTH},
    364   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_RSDP_OFFSET (XsdtPhysicalAddress),     "XSDT Address", 0},
    365   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_RSDP_OFFSET (ExtendedChecksum),        "Extended Checksum", 0},
    366   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_RSDP_OFFSET (Reserved[0]),             "Reserved", 0},
    367   1.1    jruoho     ACPI_DMT_TERMINATOR
    368   1.1    jruoho };
    369   1.1    jruoho 
    370   1.1    jruoho 
    371   1.1    jruoho /*******************************************************************************
    372   1.1    jruoho  *
    373   1.1    jruoho  * FACS - Firmware ACPI Control Structure
    374   1.1    jruoho  *
    375   1.1    jruoho  ******************************************************************************/
    376   1.1    jruoho 
    377   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoFacs[] =
    378   1.1    jruoho {
    379   1.1    jruoho     {ACPI_DMT_NAME4,    ACPI_FACS_OFFSET (Signature[0]),            "Signature", 0},
    380   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (Length),                  "Length", DT_LENGTH},
    381   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (HardwareSignature),       "Hardware Signature", 0},
    382   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (FirmwareWakingVector),    "32 Firmware Waking Vector", 0},
    383   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (GlobalLock),              "Global Lock", 0},
    384   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
    385   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_FACS_FLAG_OFFSET (Flags,0),            "S4BIOS Support Present", 0},
    386   1.1    jruoho     {ACPI_DMT_FLAG1,    ACPI_FACS_FLAG_OFFSET (Flags,0),            "64-bit Wake Supported (V2)", 0},
    387   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_FACS_OFFSET (XFirmwareWakingVector),   "64 Firmware Waking Vector", 0},
    388   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FACS_OFFSET (Version),                 "Version", 0},
    389   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_FACS_OFFSET (Reserved[0]),             "Reserved", 0},
    390   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FACS_OFFSET (OspmFlags),               "OspmFlags (decoded below)", DT_FLAG},
    391   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_FACS_FLAG_OFFSET (OspmFlags,0),        "64-bit Wake Env Required (V2)", 0},
    392   1.1    jruoho     ACPI_DMT_TERMINATOR
    393   1.1    jruoho };
    394   1.1    jruoho 
    395   1.1    jruoho 
    396   1.1    jruoho /*******************************************************************************
    397   1.1    jruoho  *
    398   1.1    jruoho  * FADT - Fixed ACPI Description Table (Signature is FACP)
    399   1.1    jruoho  *
    400   1.1    jruoho  ******************************************************************************/
    401   1.1    jruoho 
    402   1.1    jruoho /* ACPI 1.0 FADT (Version 1) */
    403   1.1    jruoho 
    404   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoFadt1[] =
    405   1.1    jruoho {
    406   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Facs),                    "FACS Address", 0},
    407   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Dsdt),                    "DSDT Address", DT_NON_ZERO},
    408   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Model),                   "Model", 0},
    409   1.1    jruoho     {ACPI_DMT_FADTPM,   ACPI_FADT_OFFSET (PreferredProfile),        "PM Profile", 0},
    410   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (SciInterrupt),            "SCI Interrupt", 0},
    411   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (SmiCommand),              "SMI Command Port", 0},
    412   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (AcpiEnable),              "ACPI Enable Value", 0},
    413   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (AcpiDisable),             "ACPI Disable Value", 0},
    414   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (S4BiosRequest),           "S4BIOS Command", 0},
    415   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (PstateControl),           "P-State Control", 0},
    416   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm1aEventBlock),          "PM1A Event Block Address", 0},
    417   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm1bEventBlock),          "PM1B Event Block Address", 0},
    418   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm1aControlBlock),        "PM1A Control Block Address", 0},
    419   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm1bControlBlock),        "PM1B Control Block Address", 0},
    420   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Pm2ControlBlock),         "PM2 Control Block Address", 0},
    421   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (PmTimerBlock),            "PM Timer Block Address", 0},
    422   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Gpe0Block),               "GPE0 Block Address", 0},
    423   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Gpe1Block),               "GPE1 Block Address", 0},
    424   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Pm1EventLength),          "PM1 Event Block Length", 0},
    425   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Pm1ControlLength),        "PM1 Control Block Length", 0},
    426   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Pm2ControlLength),        "PM2 Control Block Length", 0},
    427   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (PmTimerLength),           "PM Timer Block Length", 0},
    428   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Gpe0BlockLength),         "GPE0 Block Length", 0},
    429   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Gpe1BlockLength),         "GPE1 Block Length", 0},
    430   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Gpe1Base),                "GPE1 Base Offset", 0},
    431   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (CstControl),              "_CST Support", 0},
    432   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (C2Latency),               "C2 Latency", 0},
    433   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (C3Latency),               "C3 Latency", 0},
    434   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (FlushSize),               "CPU Cache Size", 0},
    435   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (FlushStride),             "Cache Flush Stride", 0},
    436   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (DutyOffset),              "Duty Cycle Offset", 0},
    437   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (DutyWidth),               "Duty Cycle Width", 0},
    438   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (DayAlarm),                "RTC Day Alarm Index", 0},
    439   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (MonthAlarm),              "RTC Month Alarm Index", 0},
    440   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Century),                 "RTC Century Index", 0},
    441   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (BootFlags),               "Boot Flags (decoded below)", DT_FLAG},
    442   1.1    jruoho 
    443   1.1    jruoho     /* Boot Architecture Flags byte 0 */
    444   1.1    jruoho 
    445   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "Legacy Devices Supported (V2)", 0},
    446   1.1    jruoho     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "8042 Present on ports 60/64 (V2)", 0},
    447   1.1    jruoho     {ACPI_DMT_FLAG2,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "VGA Not Present (V4)", 0},
    448   1.1    jruoho     {ACPI_DMT_FLAG3,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "MSI Not Supported (V4)", 0},
    449   1.1    jruoho     {ACPI_DMT_FLAG4,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "PCIe ASPM Not Supported (V4)", 0},
    450   1.5  christos     {ACPI_DMT_FLAG5,    ACPI_FADT_FLAG_OFFSET (BootFlags,0),        "CMOS RTC Not Present (V5)", 0},
    451   1.1    jruoho 
    452   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (Reserved),                "Reserved", 0},
    453   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_FADT_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
    454   1.1    jruoho 
    455   1.1    jruoho     /* Flags byte 0 */
    456   1.1    jruoho 
    457   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "WBINVD instruction is operational (V1)", 0},
    458   1.1    jruoho     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "WBINVD flushes all caches (V1)", 0},
    459   1.1    jruoho     {ACPI_DMT_FLAG2,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "All CPUs support C1 (V1)", 0},
    460   1.1    jruoho     {ACPI_DMT_FLAG3,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "C2 works on MP system (V1)", 0},
    461   1.1    jruoho     {ACPI_DMT_FLAG4,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "Control Method Power Button (V1)", 0},
    462   1.1    jruoho     {ACPI_DMT_FLAG5,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "Control Method Sleep Button (V1)", 0},
    463   1.1    jruoho     {ACPI_DMT_FLAG6,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "RTC wake not in fixed reg space (V1)", 0},
    464   1.1    jruoho     {ACPI_DMT_FLAG7,    ACPI_FADT_FLAG_OFFSET (Flags,0),            "RTC can wake system from S4 (V1)", 0},
    465   1.1    jruoho 
    466   1.1    jruoho     /* Flags byte 1 */
    467   1.1    jruoho 
    468   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "32-bit PM Timer (V1)", 0},
    469   1.1    jruoho     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Docking Supported (V1)", 0},
    470   1.1    jruoho     {ACPI_DMT_FLAG2,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Reset Register Supported (V2)", 0},
    471   1.1    jruoho     {ACPI_DMT_FLAG3,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Sealed Case (V3)", 0},
    472   1.1    jruoho     {ACPI_DMT_FLAG4,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Headless - No Video (V3)", 0},
    473   1.1    jruoho     {ACPI_DMT_FLAG5,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Use native instr after SLP_TYPx (V3)", 0},
    474   1.1    jruoho     {ACPI_DMT_FLAG6,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "PCIEXP_WAK Bits Supported (V4)", 0},
    475   1.1    jruoho     {ACPI_DMT_FLAG7,    ACPI_FADT_FLAG_OFFSET (Flags,1),            "Use Platform Timer (V4)", 0},
    476   1.1    jruoho 
    477   1.1    jruoho     /* Flags byte 2 */
    478   1.1    jruoho 
    479   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "RTC_STS valid on S4 wake (V4)", 0},
    480   1.1    jruoho     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "Remote Power-on capable (V4)", 0},
    481   1.1    jruoho     {ACPI_DMT_FLAG2,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "Use APIC Cluster Model (V4)", 0},
    482   1.1    jruoho     {ACPI_DMT_FLAG3,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "Use APIC Physical Destination Mode (V4)", 0},
    483   1.5  christos     {ACPI_DMT_FLAG4,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "Hardware Reduced (V5)", 0},
    484   1.5  christos     {ACPI_DMT_FLAG5,    ACPI_FADT_FLAG_OFFSET (Flags,2),            "Low Power S0 Idle (V5)", 0},
    485   1.1    jruoho     ACPI_DMT_TERMINATOR
    486   1.1    jruoho };
    487   1.1    jruoho 
    488   1.1    jruoho /* ACPI 1.0 MS Extensions (FADT version 2) */
    489   1.1    jruoho 
    490   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoFadt2[] =
    491   1.1    jruoho {
    492   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (ResetRegister),           "Reset Register", 0},
    493   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (ResetValue),              "Value to cause reset", 0},
    494   1.6  christos     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (ArmBootFlags),            "Reserved", 0},
    495   1.6  christos     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (MinorRevision),           "Reserved", 0},
    496   1.1    jruoho     ACPI_DMT_TERMINATOR
    497   1.1    jruoho };
    498   1.1    jruoho 
    499   1.6  christos /* ACPI 2.0+ Extensions (FADT version 3, 4, and 5) */
    500   1.1    jruoho 
    501   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoFadt3[] =
    502   1.1    jruoho {
    503   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (ResetRegister),           "Reset Register", 0},
    504   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (ResetValue),              "Value to cause reset", 0},
    505   1.6  christos     {ACPI_DMT_UINT16,   ACPI_FADT_OFFSET (ArmBootFlags),            "ARM Flags (decoded below)", DT_FLAG},
    506   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_FADT_FLAG_OFFSET(ArmBootFlags,0),      "PSCI Compliant", 0},
    507   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_FADT_FLAG_OFFSET(ArmBootFlags,0),      "Must use HVC for PSCI", 0},
    508   1.6  christos     ACPI_DMT_NEW_LINE,
    509   1.6  christos     {ACPI_DMT_UINT8,    ACPI_FADT_OFFSET (MinorRevision),           "FADT Minor Revision", 0},
    510   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_FADT_OFFSET (XFacs),                   "FACS Address", 0},
    511   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_FADT_OFFSET (XDsdt),                   "DSDT Address", 0},
    512   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm1aEventBlock),         "PM1A Event Block", 0},
    513   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm1bEventBlock),         "PM1B Event Block", 0},
    514   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm1aControlBlock),       "PM1A Control Block", 0},
    515   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm1bControlBlock),       "PM1B Control Block", 0},
    516   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPm2ControlBlock),        "PM2 Control Block", 0},
    517   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XPmTimerBlock),           "PM Timer Block", 0},
    518   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XGpe0Block),              "GPE0 Block", 0},
    519   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (XGpe1Block),              "GPE1 Block", 0},
    520   1.1    jruoho     ACPI_DMT_TERMINATOR
    521   1.1    jruoho };
    522   1.1    jruoho 
    523   1.5  christos /* ACPI 5.0 Extensions (FADT version 5) */
    524   1.5  christos 
    525   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFadt5[] =
    526   1.5  christos {
    527   1.5  christos     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (SleepControl),            "Sleep Control Register", 0},
    528   1.5  christos     {ACPI_DMT_GAS,      ACPI_FADT_OFFSET (SleepStatus),             "Sleep Status Register", 0},
    529   1.5  christos     ACPI_DMT_TERMINATOR
    530   1.5  christos };
    531   1.5  christos 
    532   1.8  christos /* ACPI 6.0 Extensions (FADT version 6) */
    533   1.8  christos 
    534   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFadt6[] =
    535   1.8  christos {
    536   1.8  christos     {ACPI_DMT_UINT64,   ACPI_FADT_OFFSET (HypervisorId),            "Hypervisor ID", 0},
    537   1.8  christos     ACPI_DMT_TERMINATOR
    538   1.8  christos };
    539   1.8  christos 
    540   1.1    jruoho 
    541   1.1    jruoho /*
    542   1.1    jruoho  * Remaining tables are not consumed directly by the ACPICA subsystem
    543   1.1    jruoho  */
    544   1.1    jruoho 
    545   1.1    jruoho /*******************************************************************************
    546   1.1    jruoho  *
    547   1.1    jruoho  * ASF - Alert Standard Format table (Signature "ASF!")
    548   1.1    jruoho  *
    549   1.1    jruoho  ******************************************************************************/
    550   1.1    jruoho 
    551   1.1    jruoho /* Common Subtable header (one per Subtable) */
    552   1.1    jruoho 
    553   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoAsfHdr[] =
    554   1.1    jruoho {
    555   1.1    jruoho     {ACPI_DMT_ASF,      ACPI_ASF0_OFFSET (Header.Type),             "Subtable Type", 0},
    556   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (Header.Reserved),         "Reserved", 0},
    557   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_ASF0_OFFSET (Header.Length),           "Length", DT_LENGTH},
    558   1.1    jruoho     ACPI_DMT_TERMINATOR
    559   1.1    jruoho };
    560   1.1    jruoho 
    561   1.1    jruoho /* 0: ASF Information */
    562   1.1    jruoho 
    563   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf0[] =
    564   1.1    jruoho {
    565   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (MinResetValue),           "Minimum Reset Value", 0},
    566   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (MinPollInterval),         "Minimum Polling Interval", 0},
    567   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_ASF0_OFFSET (SystemId),                "System ID", 0},
    568   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_ASF0_OFFSET (MfgId),                   "Manufacturer ID", 0},
    569   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF0_OFFSET (Flags),                   "Flags", 0},
    570   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_ASF0_OFFSET (Reserved2[0]),            "Reserved", 0},
    571   1.1    jruoho     ACPI_DMT_TERMINATOR
    572   1.1    jruoho };
    573   1.1    jruoho 
    574   1.1    jruoho /* 1: ASF Alerts */
    575   1.1    jruoho 
    576   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf1[] =
    577   1.1    jruoho {
    578   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (AssertMask),              "AssertMask", 0},
    579   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (DeassertMask),            "DeassertMask", 0},
    580   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (Alerts),                  "Alert Count", 0},
    581   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1_OFFSET (DataLength),              "Alert Data Length", 0},
    582   1.1    jruoho     ACPI_DMT_TERMINATOR
    583   1.1    jruoho };
    584   1.1    jruoho 
    585   1.1    jruoho /* 1a: ASF Alert data */
    586   1.1    jruoho 
    587   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf1a[] =
    588   1.1    jruoho {
    589   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Address),                "Address", 0},
    590   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Command),                "Command", 0},
    591   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Mask),                   "Mask", 0},
    592   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Value),                  "Value", 0},
    593   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SensorType),             "SensorType", 0},
    594   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Type),                   "Type", 0},
    595   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Offset),                 "Offset", 0},
    596   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SourceType),             "SourceType", 0},
    597   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Severity),               "Severity", 0},
    598   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (SensorNumber),           "SensorNumber", 0},
    599   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Entity),                 "Entity", 0},
    600   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF1a_OFFSET (Instance),               "Instance", 0},
    601   1.1    jruoho     ACPI_DMT_TERMINATOR
    602   1.1    jruoho };
    603   1.1    jruoho 
    604   1.1    jruoho /* 2: ASF Remote Control */
    605   1.1    jruoho 
    606   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf2[] =
    607   1.1    jruoho {
    608   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF2_OFFSET (Controls),                "Control Count", 0},
    609   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF2_OFFSET (DataLength),              "Control Data Length", 0},
    610   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_ASF2_OFFSET (Reserved2),               "Reserved", 0},
    611   1.1    jruoho     ACPI_DMT_TERMINATOR
    612   1.1    jruoho };
    613   1.1    jruoho 
    614   1.1    jruoho /* 2a: ASF Control data */
    615   1.1    jruoho 
    616   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf2a[] =
    617   1.1    jruoho {
    618   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Function),               "Function", 0},
    619   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Address),                "Address", 0},
    620   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Command),                "Command", 0},
    621   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF2a_OFFSET (Value),                  "Value", 0},
    622   1.1    jruoho     ACPI_DMT_TERMINATOR
    623   1.1    jruoho };
    624   1.1    jruoho 
    625   1.1    jruoho /* 3: ASF RMCP Boot Options */
    626   1.1    jruoho 
    627   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf3[] =
    628   1.1    jruoho {
    629   1.3    jruoho     {ACPI_DMT_BUF7,     ACPI_ASF3_OFFSET (Capabilities[0]),         "Capabilities", 0},
    630   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF3_OFFSET (CompletionCode),          "Completion Code", 0},
    631   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_ASF3_OFFSET (EnterpriseId),            "Enterprise ID", 0},
    632   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF3_OFFSET (Command),                 "Command", 0},
    633   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (Parameter),               "Parameter", 0},
    634   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (BootOptions),             "Boot Options", 0},
    635   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_ASF3_OFFSET (OemParameters),           "Oem Parameters", 0},
    636   1.1    jruoho     ACPI_DMT_TERMINATOR
    637   1.1    jruoho };
    638   1.1    jruoho 
    639   1.1    jruoho /* 4: ASF Address */
    640   1.1    jruoho 
    641   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoAsf4[] =
    642   1.1    jruoho {
    643   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF4_OFFSET (EpromAddress),            "Eprom Address", 0},
    644   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ASF4_OFFSET (Devices),                 "Device Count", DT_COUNT},
    645   1.1    jruoho     ACPI_DMT_TERMINATOR
    646   1.1    jruoho };
    647   1.1    jruoho 
    648   1.1    jruoho 
    649   1.1    jruoho /*******************************************************************************
    650   1.1    jruoho  *
    651   1.1    jruoho  * BERT -  Boot Error Record table
    652   1.1    jruoho  *
    653   1.1    jruoho  ******************************************************************************/
    654   1.1    jruoho 
    655   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoBert[] =
    656   1.1    jruoho {
    657   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_BERT_OFFSET (RegionLength),            "Boot Error Region Length", 0},
    658   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_BERT_OFFSET (Address),                 "Boot Error Region Address", 0},
    659   1.1    jruoho     ACPI_DMT_TERMINATOR
    660   1.1    jruoho };
    661   1.1    jruoho 
    662   1.1    jruoho 
    663   1.1    jruoho /*******************************************************************************
    664   1.1    jruoho  *
    665   1.5  christos  * BGRT -  Boot Graphics Resource Table (ACPI 5.0)
    666   1.5  christos  *
    667   1.5  christos  ******************************************************************************/
    668   1.5  christos 
    669   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoBgrt[] =
    670   1.5  christos {
    671   1.5  christos     {ACPI_DMT_UINT16,   ACPI_BGRT_OFFSET (Version),                 "Version", 0},
    672   1.5  christos     {ACPI_DMT_UINT8,    ACPI_BGRT_OFFSET (Status),                  "Status", 0},
    673   1.5  christos     {ACPI_DMT_UINT8,    ACPI_BGRT_OFFSET (ImageType),               "Image Type", 0},
    674   1.5  christos     {ACPI_DMT_UINT64,   ACPI_BGRT_OFFSET (ImageAddress),            "Image Address", 0},
    675   1.5  christos     {ACPI_DMT_UINT32,   ACPI_BGRT_OFFSET (ImageOffsetX),            "Image OffsetX", 0},
    676   1.5  christos     {ACPI_DMT_UINT32,   ACPI_BGRT_OFFSET (ImageOffsetY),            "Image OffsetY", 0},
    677   1.5  christos     ACPI_DMT_TERMINATOR
    678   1.5  christos };
    679   1.5  christos 
    680   1.5  christos 
    681   1.5  christos /*******************************************************************************
    682   1.5  christos  *
    683   1.1    jruoho  * BOOT - Simple Boot Flag Table
    684   1.1    jruoho  *
    685   1.1    jruoho  ******************************************************************************/
    686   1.1    jruoho 
    687   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoBoot[] =
    688   1.1    jruoho {
    689   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_BOOT_OFFSET (CmosIndex),               "Boot Register Index", 0},
    690   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_BOOT_OFFSET (Reserved[0]),             "Reserved", 0},
    691   1.1    jruoho     ACPI_DMT_TERMINATOR
    692   1.1    jruoho };
    693   1.1    jruoho 
    694   1.1    jruoho 
    695   1.1    jruoho /*******************************************************************************
    696   1.1    jruoho  *
    697   1.1    jruoho  * CPEP - Corrected Platform Error Polling table
    698   1.1    jruoho  *
    699   1.1    jruoho  ******************************************************************************/
    700   1.1    jruoho 
    701   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoCpep[] =
    702   1.1    jruoho {
    703   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_CPEP_OFFSET (Reserved),                "Reserved", 0},
    704   1.1    jruoho     ACPI_DMT_TERMINATOR
    705   1.1    jruoho };
    706   1.1    jruoho 
    707   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoCpep0[] =
    708   1.1    jruoho {
    709   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Header.Type),            "Subtable Type", 0},
    710   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Header.Length),          "Length", DT_LENGTH},
    711   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Id),                     "Processor ID", 0},
    712   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_CPEP0_OFFSET (Eid),                    "Processor EID", 0},
    713   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_CPEP0_OFFSET (Interval),               "Polling Interval", 0},
    714   1.1    jruoho     ACPI_DMT_TERMINATOR
    715   1.1    jruoho };
    716   1.1    jruoho 
    717   1.1    jruoho 
    718   1.1    jruoho /*******************************************************************************
    719   1.1    jruoho  *
    720   1.5  christos  * CSRT - Core System Resource Table
    721   1.5  christos  *
    722   1.5  christos  ******************************************************************************/
    723   1.5  christos 
    724   1.5  christos /* Main table consists only of the standard ACPI table header */
    725   1.5  christos 
    726   1.5  christos /* Resource Group subtable */
    727   1.5  christos 
    728   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt0[] =
    729   1.5  christos {
    730   1.8  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (Length),                 "Length", DT_LENGTH},
    731   1.5  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (VendorId),               "Vendor ID", 0},
    732   1.5  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (SubvendorId),            "Subvendor ID", 0},
    733   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (DeviceId),               "Device ID", 0},
    734   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (SubdeviceId),            "Subdevice ID", 0},
    735   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (Revision),               "Revision", 0},
    736   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT0_OFFSET (Reserved),               "Reserved", 0},
    737   1.5  christos     {ACPI_DMT_UINT32,   ACPI_CSRT0_OFFSET (SharedInfoLength),       "Shared Info Length", 0},
    738   1.5  christos     ACPI_DMT_TERMINATOR
    739   1.5  christos };
    740   1.5  christos 
    741   1.5  christos /* Shared Info subtable */
    742   1.5  christos 
    743   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt1[] =
    744   1.5  christos {
    745   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (MajorVersion),           "Major Version", 0},
    746   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (MinorVersion),           "Minor Version", 0},
    747   1.5  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MmioBaseLow),            "MMIO Base Address Low", 0},
    748   1.5  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MmioBaseHigh),           "MMIO Base Address High", 0},
    749   1.5  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (GsiInterrupt),           "GSI Interrupt", 0},
    750   1.5  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (InterruptPolarity),      "Interrupt Polarity", 0},
    751   1.5  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (InterruptMode),          "Interrupt Mode", 0},
    752   1.5  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (NumChannels),            "Num Channels", 0},
    753   1.5  christos     {ACPI_DMT_UINT8,    ACPI_CSRT1_OFFSET (DmaAddressWidth),        "DMA Address Width", 0},
    754   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (BaseRequestLine),        "Base Request Line", 0},
    755   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT1_OFFSET (NumHandshakeSignals),    "Num Handshake Signals", 0},
    756   1.5  christos     {ACPI_DMT_UINT32,   ACPI_CSRT1_OFFSET (MaxBlockSize),           "Max Block Size", 0},
    757   1.5  christos     ACPI_DMT_TERMINATOR
    758   1.5  christos };
    759   1.5  christos 
    760   1.5  christos 
    761   1.5  christos /* Resource Descriptor subtable */
    762   1.5  christos 
    763   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt2[] =
    764   1.5  christos {
    765   1.8  christos     {ACPI_DMT_UINT32,   ACPI_CSRT2_OFFSET (Length),                 "Length", DT_LENGTH},
    766   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT2_OFFSET (Type),                   "Type", 0},
    767   1.5  christos     {ACPI_DMT_UINT16,   ACPI_CSRT2_OFFSET (Subtype),                "Subtype", 0},
    768   1.5  christos     {ACPI_DMT_UINT32,   ACPI_CSRT2_OFFSET (Uid),                    "UID", 0},
    769   1.5  christos     ACPI_DMT_TERMINATOR
    770   1.5  christos };
    771   1.5  christos 
    772   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoCsrt2a[] =
    773   1.8  christos {
    774   1.8  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "ResourceInfo", DT_OPTIONAL},
    775   1.8  christos     ACPI_DMT_TERMINATOR
    776   1.8  christos };
    777   1.8  christos 
    778   1.5  christos 
    779   1.5  christos /*******************************************************************************
    780   1.5  christos  *
    781   1.5  christos  * DBG2 - Debug Port Table 2
    782   1.5  christos  *
    783   1.5  christos  ******************************************************************************/
    784   1.5  christos 
    785   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2[] =
    786   1.5  christos {
    787   1.5  christos     {ACPI_DMT_UINT32,   ACPI_DBG2_OFFSET (InfoOffset),              "Info Offset", 0},
    788   1.5  christos     {ACPI_DMT_UINT32,   ACPI_DBG2_OFFSET (InfoCount),               "Info Count", 0},
    789   1.5  christos     ACPI_DMT_TERMINATOR
    790   1.5  christos };
    791   1.5  christos 
    792   1.5  christos /* Debug Device Information Subtable */
    793   1.5  christos 
    794   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Device[] =
    795   1.5  christos {
    796   1.5  christos     {ACPI_DMT_UINT8,    ACPI_DBG20_OFFSET (Revision),               "Revision", 0},
    797   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (Length),                 "Length", DT_LENGTH},
    798   1.5  christos     {ACPI_DMT_UINT8,    ACPI_DBG20_OFFSET (RegisterCount),          "Register Count", 0},
    799   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (NamepathLength),         "Namepath Length", 0},
    800   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (NamepathOffset),         "Namepath Offset", 0},
    801   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (OemDataLength),          "OEM Data Length", DT_DESCRIBES_OPTIONAL},
    802   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (OemDataOffset),          "OEM Data Offset", DT_DESCRIBES_OPTIONAL},
    803   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (PortType),               "Port Type", 0},
    804   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (PortSubtype),            "Port Subtype", 0},
    805   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (Reserved),               "Reserved", 0},
    806   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (BaseAddressOffset),      "Base Address Offset", 0},
    807   1.5  christos     {ACPI_DMT_UINT16,   ACPI_DBG20_OFFSET (AddressSizeOffset),      "Address Size Offset", 0},
    808   1.5  christos     ACPI_DMT_TERMINATOR
    809   1.5  christos };
    810   1.5  christos 
    811   1.5  christos /* Variable-length data for the subtable */
    812   1.5  christos 
    813   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Addr[] =
    814   1.5  christos {
    815   1.5  christos     {ACPI_DMT_GAS,      0,                                          "Base Address Register", 0},
    816   1.5  christos     ACPI_DMT_TERMINATOR
    817   1.5  christos };
    818   1.5  christos 
    819   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Size[] =
    820   1.5  christos {
    821   1.5  christos     {ACPI_DMT_UINT32,   0,                                          "Address Size", 0},
    822   1.5  christos     ACPI_DMT_TERMINATOR
    823   1.5  christos };
    824   1.5  christos 
    825   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2Name[] =
    826   1.5  christos {
    827   1.5  christos     {ACPI_DMT_STRING,   0,                                          "Namepath", 0},
    828   1.5  christos     ACPI_DMT_TERMINATOR
    829   1.5  christos };
    830   1.5  christos 
    831   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDbg2OemData[] =
    832   1.5  christos {
    833   1.8  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "OEM Data", DT_OPTIONAL},
    834   1.5  christos     ACPI_DMT_TERMINATOR
    835   1.5  christos };
    836   1.5  christos 
    837   1.5  christos 
    838   1.5  christos /*******************************************************************************
    839   1.5  christos  *
    840   1.1    jruoho  * DBGP - Debug Port
    841   1.1    jruoho  *
    842   1.1    jruoho  ******************************************************************************/
    843   1.1    jruoho 
    844   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoDbgp[] =
    845   1.1    jruoho {
    846   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DBGP_OFFSET (Type),                    "Interface Type", 0},
    847   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_DBGP_OFFSET (Reserved[0]),             "Reserved", 0},
    848   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_DBGP_OFFSET (DebugPort),               "Debug Port Register", 0},
    849   1.1    jruoho     ACPI_DMT_TERMINATOR
    850   1.1    jruoho };
    851   1.1    jruoho 
    852   1.1    jruoho 
    853   1.1    jruoho /*******************************************************************************
    854   1.1    jruoho  *
    855   1.1    jruoho  * DMAR - DMA Remapping table
    856   1.1    jruoho  *
    857   1.1    jruoho  ******************************************************************************/
    858   1.1    jruoho 
    859   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar[] =
    860   1.1    jruoho {
    861   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMAR_OFFSET (Width),                   "Host Address Width", 0},
    862   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMAR_OFFSET (Flags),                   "Flags", 0},
    863   1.5  christos     {ACPI_DMT_BUF10,    ACPI_DMAR_OFFSET (Reserved[0]),             "Reserved", 0},
    864   1.1    jruoho     ACPI_DMT_TERMINATOR
    865   1.1    jruoho };
    866   1.1    jruoho 
    867   1.1    jruoho /* Common Subtable header (one per Subtable) */
    868   1.1    jruoho 
    869   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoDmarHdr[] =
    870   1.1    jruoho {
    871   1.1    jruoho     {ACPI_DMT_DMAR,     ACPI_DMAR0_OFFSET (Header.Type),            "Subtable Type", 0},
    872   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_DMAR0_OFFSET (Header.Length),          "Length", DT_LENGTH},
    873   1.1    jruoho     ACPI_DMT_TERMINATOR
    874   1.1    jruoho };
    875   1.1    jruoho 
    876   1.1    jruoho /* Common device scope entry */
    877   1.1    jruoho 
    878   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoDmarScope[] =
    879   1.1    jruoho {
    880   1.6  christos     {ACPI_DMT_DMAR_SCOPE, ACPI_DMARS_OFFSET (EntryType),            "Device Scope Type", 0},
    881   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (Length),                 "Entry Length", DT_LENGTH},
    882   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_DMARS_OFFSET (Reserved),               "Reserved", 0},
    883   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (EnumerationId),          "Enumeration ID", 0},
    884   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMARS_OFFSET (Bus),                    "PCI Bus Number", 0},
    885   1.1    jruoho     ACPI_DMT_TERMINATOR
    886   1.1    jruoho };
    887   1.1    jruoho 
    888   1.1    jruoho /* DMAR Subtables */
    889   1.1    jruoho 
    890   1.1    jruoho /* 0: Hardware Unit Definition */
    891   1.1    jruoho 
    892   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar0[] =
    893   1.1    jruoho {
    894   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMAR0_OFFSET (Flags),                  "Flags", 0},
    895   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMAR0_OFFSET (Reserved),               "Reserved", 0},
    896   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_DMAR0_OFFSET (Segment),                "PCI Segment Number", 0},
    897   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_DMAR0_OFFSET (Address),                "Register Base Address", 0},
    898   1.1    jruoho     ACPI_DMT_TERMINATOR
    899   1.1    jruoho };
    900   1.1    jruoho 
    901   1.1    jruoho /* 1: Reserved Memory Definition */
    902   1.1    jruoho 
    903   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar1[] =
    904   1.1    jruoho {
    905   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_DMAR1_OFFSET (Reserved),               "Reserved", 0},
    906   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_DMAR1_OFFSET (Segment),                "PCI Segment Number", 0},
    907   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_DMAR1_OFFSET (BaseAddress),            "Base Address", 0},
    908   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_DMAR1_OFFSET (EndAddress),             "End Address (limit)", 0},
    909   1.1    jruoho     ACPI_DMT_TERMINATOR
    910   1.1    jruoho };
    911   1.1    jruoho 
    912   1.1    jruoho /* 2: Root Port ATS Capability Definition */
    913   1.1    jruoho 
    914   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar2[] =
    915   1.1    jruoho {
    916   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMAR2_OFFSET (Flags),                  "Flags", 0},
    917   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_DMAR2_OFFSET (Reserved),               "Reserved", 0},
    918   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_DMAR2_OFFSET (Segment),                "PCI Segment Number", 0},
    919   1.1    jruoho     ACPI_DMT_TERMINATOR
    920   1.1    jruoho };
    921   1.1    jruoho 
    922   1.1    jruoho /* 3: Remapping Hardware Static Affinity Structure */
    923   1.1    jruoho 
    924   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar3[] =
    925   1.1    jruoho {
    926   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_DMAR3_OFFSET (Reserved),               "Reserved", 0},
    927   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_DMAR3_OFFSET (BaseAddress),            "Base Address", 0},
    928   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_DMAR3_OFFSET (ProximityDomain),        "Proximity Domain", 0},
    929   1.1    jruoho     ACPI_DMT_TERMINATOR
    930   1.1    jruoho };
    931   1.1    jruoho 
    932   1.6  christos /* 4: ACPI Namespace Device Declaration Structure */
    933   1.6  christos 
    934   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDmar4[] =
    935   1.6  christos {
    936   1.6  christos     {ACPI_DMT_UINT24,   ACPI_DMAR4_OFFSET (Reserved[0]),            "Reserved", 0},
    937   1.6  christos     {ACPI_DMT_UINT8,    ACPI_DMAR4_OFFSET (DeviceNumber),           "Device Number", 0},
    938   1.6  christos     {ACPI_DMT_STRING,   ACPI_DMAR4_OFFSET (DeviceName[0]),          "Device Name", 0},
    939   1.6  christos     ACPI_DMT_TERMINATOR
    940   1.6  christos };
    941   1.6  christos 
    942   1.1    jruoho 
    943   1.1    jruoho /*******************************************************************************
    944   1.1    jruoho  *
    945   1.5  christos  * DRTM - Dynamic Root of Trust for Measurement table
    946   1.5  christos  *
    947   1.5  christos  ******************************************************************************/
    948   1.5  christos 
    949   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm[] =
    950   1.5  christos {
    951   1.8  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryBaseAddress),        "Entry Base Address", 0},
    952   1.8  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryLength),             "Entry Length", 0},
    953   1.8  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (EntryAddress32),          "Entry 32", 0},
    954   1.8  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (EntryAddress64),          "Entry 64", 0},
    955   1.8  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (ExitAddress),             "Exit Address", 0},
    956   1.8  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (LogAreaAddress),          "Log Area Start", 0},
    957   1.8  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (LogAreaLength),           "Log Area Length", 0},
    958   1.8  christos     {ACPI_DMT_UINT64,   ACPI_DRTM_OFFSET (ArchDependentAddress),    "Arch Dependent Address", 0},
    959   1.8  christos     {ACPI_DMT_UINT32,   ACPI_DRTM_OFFSET (Flags),                   "Flags (decoded below)", 0},
    960   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Namespace in TCB", 0},
    961   1.8  christos     {ACPI_DMT_FLAG1,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Gap Code on S3 Resume", 0},
    962   1.8  christos     {ACPI_DMT_FLAG2,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "Gap Code on DLME_Exit", 0},
    963   1.8  christos     {ACPI_DMT_FLAG3,    ACPI_DRTM_FLAG_OFFSET (Flags, 0),           "PCR_Authorities Changed", 0},
    964   1.8  christos     ACPI_DMT_TERMINATOR
    965   1.8  christos };
    966   1.8  christos 
    967   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm0[] =
    968   1.8  christos {
    969   1.8  christos     {ACPI_DMT_UINT32,   ACPI_DRTM0_OFFSET (ValidatedTableCount),    "Validated Table Count", DT_COUNT},
    970   1.8  christos     ACPI_DMT_TERMINATOR
    971   1.8  christos };
    972   1.8  christos 
    973   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm0a[] =
    974   1.8  christos {
    975   1.8  christos     {ACPI_DMT_UINT64,   0,                                          "Table Address", DT_OPTIONAL},
    976   1.8  christos     ACPI_DMT_TERMINATOR
    977   1.8  christos };
    978   1.8  christos 
    979   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm1[] =
    980   1.8  christos {
    981   1.8  christos     {ACPI_DMT_UINT32,   ACPI_DRTM1_OFFSET (ResourceCount),          "Resource Count", DT_COUNT},
    982   1.8  christos     ACPI_DMT_TERMINATOR
    983   1.8  christos };
    984   1.5  christos 
    985   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm1a[] =
    986   1.8  christos {
    987   1.8  christos     {ACPI_DMT_UINT56,   ACPI_DRTM1a_OFFSET (Size[0]),               "Size", DT_OPTIONAL},
    988   1.8  christos     {ACPI_DMT_UINT8,    ACPI_DRTM1a_OFFSET (Type),                  "Type", 0},
    989   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_DRTM1a_FLAG_OFFSET (Type, 0),          "Resource Type", 0},
    990   1.8  christos     {ACPI_DMT_FLAG7,    ACPI_DRTM1a_FLAG_OFFSET (Type, 0),          "Protections", 0},
    991   1.8  christos     {ACPI_DMT_UINT64,   ACPI_DRTM1a_OFFSET (Address),               "Address", 0},
    992   1.8  christos     ACPI_DMT_TERMINATOR
    993   1.8  christos };
    994   1.8  christos 
    995   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoDrtm2[] =
    996   1.8  christos {
    997   1.8  christos     {ACPI_DMT_UINT32,   ACPI_DRTM2_OFFSET (DpsIdLength),            "DLME Platform Id Length", DT_COUNT},
    998   1.8  christos     {ACPI_DMT_BUF16,    ACPI_DRTM2_OFFSET (DpsId),                  "DLME Platform Id", DT_COUNT},
    999   1.5  christos     ACPI_DMT_TERMINATOR
   1000   1.5  christos };
   1001   1.5  christos 
   1002   1.5  christos 
   1003   1.5  christos /*******************************************************************************
   1004   1.5  christos  *
   1005   1.1    jruoho  * ECDT - Embedded Controller Boot Resources Table
   1006   1.1    jruoho  *
   1007   1.1    jruoho  ******************************************************************************/
   1008   1.1    jruoho 
   1009   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoEcdt[] =
   1010   1.1    jruoho {
   1011   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_ECDT_OFFSET (Control),                 "Command/Status Register", 0},
   1012   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_ECDT_OFFSET (Data),                    "Data Register", 0},
   1013   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_ECDT_OFFSET (Uid),                     "UID", 0},
   1014   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_ECDT_OFFSET (Gpe),                     "GPE Number", 0},
   1015   1.1    jruoho     {ACPI_DMT_STRING,   ACPI_ECDT_OFFSET (Id[0]),                   "Namepath", 0},
   1016   1.1    jruoho     ACPI_DMT_TERMINATOR
   1017   1.1    jruoho };
   1018   1.1    jruoho 
   1019   1.1    jruoho 
   1020   1.1    jruoho /*******************************************************************************
   1021   1.1    jruoho  *
   1022   1.1    jruoho  * EINJ - Error Injection table
   1023   1.1    jruoho  *
   1024   1.1    jruoho  ******************************************************************************/
   1025   1.1    jruoho 
   1026   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoEinj[] =
   1027   1.1    jruoho {
   1028   1.3    jruoho     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (HeaderLength),            "Injection Header Length", 0},
   1029   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_EINJ_OFFSET (Flags),                   "Flags", 0},
   1030   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_EINJ_OFFSET (Reserved[0]),             "Reserved", 0},
   1031   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_EINJ_OFFSET (Entries),                 "Injection Entry Count", 0},
   1032   1.1    jruoho     ACPI_DMT_TERMINATOR
   1033   1.1    jruoho };
   1034   1.1    jruoho 
   1035   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoEinj0[] =
   1036   1.1    jruoho {
   1037   1.3    jruoho     {ACPI_DMT_EINJACT,  ACPI_EINJ0_OFFSET (Action),                 "Action", 0},
   1038   1.3    jruoho     {ACPI_DMT_EINJINST, ACPI_EINJ0_OFFSET (Instruction),            "Instruction", 0},
   1039   1.3    jruoho     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1040   1.3    jruoho     {ACPI_DMT_FLAG0,    ACPI_EINJ0_FLAG_OFFSET (Flags,0),           "Preserve Register Bits", 0},
   1041   1.3    jruoho 
   1042   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_EINJ0_OFFSET (Reserved),               "Reserved", 0},
   1043   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_EINJ0_OFFSET (RegisterRegion),         "Register Region", 0},
   1044   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_EINJ0_OFFSET (Value),                  "Value", 0},
   1045   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_EINJ0_OFFSET (Mask),                   "Mask", 0},
   1046   1.1    jruoho     ACPI_DMT_TERMINATOR
   1047   1.1    jruoho };
   1048   1.1    jruoho 
   1049   1.1    jruoho 
   1050   1.1    jruoho /*******************************************************************************
   1051   1.1    jruoho  *
   1052   1.1    jruoho  * ERST - Error Record Serialization table
   1053   1.1    jruoho  *
   1054   1.1    jruoho  ******************************************************************************/
   1055   1.1    jruoho 
   1056   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoErst[] =
   1057   1.1    jruoho {
   1058   1.3    jruoho     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (HeaderLength),            "Serialization Header Length", 0},
   1059   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (Reserved),                "Reserved", 0},
   1060   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_ERST_OFFSET (Entries),                 "Instruction Entry Count", 0},
   1061   1.1    jruoho     ACPI_DMT_TERMINATOR
   1062   1.1    jruoho };
   1063   1.1    jruoho 
   1064   1.3    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoErst0[] =
   1065   1.3    jruoho {
   1066   1.3    jruoho     {ACPI_DMT_ERSTACT,  ACPI_ERST0_OFFSET (Action),                 "Action", 0},
   1067   1.3    jruoho     {ACPI_DMT_ERSTINST, ACPI_ERST0_OFFSET (Instruction),            "Instruction", 0},
   1068   1.3    jruoho     {ACPI_DMT_UINT8,    ACPI_ERST0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1069   1.3    jruoho     {ACPI_DMT_FLAG0,    ACPI_ERST0_FLAG_OFFSET (Flags,0),           "Preserve Register Bits", 0},
   1070   1.3    jruoho 
   1071   1.3    jruoho     {ACPI_DMT_UINT8,    ACPI_ERST0_OFFSET (Reserved),               "Reserved", 0},
   1072   1.3    jruoho     {ACPI_DMT_GAS,      ACPI_ERST0_OFFSET (RegisterRegion),         "Register Region", 0},
   1073   1.3    jruoho     {ACPI_DMT_UINT64,   ACPI_ERST0_OFFSET (Value),                  "Value", 0},
   1074   1.3    jruoho     {ACPI_DMT_UINT64,   ACPI_ERST0_OFFSET (Mask),                   "Mask", 0},
   1075   1.3    jruoho     ACPI_DMT_TERMINATOR
   1076   1.3    jruoho };
   1077   1.3    jruoho 
   1078   1.1    jruoho 
   1079   1.1    jruoho /*******************************************************************************
   1080   1.1    jruoho  *
   1081   1.5  christos  * FPDT - Firmware Performance Data Table (ACPI 5.0)
   1082   1.5  christos  *
   1083   1.5  christos  ******************************************************************************/
   1084   1.5  christos 
   1085   1.5  christos /* Main table consists of only the standard ACPI header - subtables follow */
   1086   1.5  christos 
   1087   1.5  christos /* FPDT subtable header */
   1088   1.5  christos 
   1089   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdtHdr[] =
   1090   1.5  christos {
   1091   1.5  christos     {ACPI_DMT_UINT16,   ACPI_FPDTH_OFFSET (Type),                   "Subtable Type", 0},
   1092   1.5  christos     {ACPI_DMT_UINT8,    ACPI_FPDTH_OFFSET (Length),                 "Length", DT_LENGTH},
   1093   1.5  christos     {ACPI_DMT_UINT8,    ACPI_FPDTH_OFFSET (Revision),               "Revision", 0},
   1094   1.5  christos     ACPI_DMT_TERMINATOR
   1095   1.5  christos };
   1096   1.5  christos 
   1097   1.5  christos /* 0: Firmware Basic Boot Performance Record */
   1098   1.5  christos 
   1099   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdt0[] =
   1100   1.5  christos {
   1101   1.5  christos     {ACPI_DMT_UINT32,   ACPI_FPDT0_OFFSET (Reserved),               "Reserved", 0},
   1102  1.10  christos     {ACPI_DMT_UINT64,   ACPI_FPDT1_OFFSET (Address),                "FPDT Boot Record Address", 0},
   1103   1.5  christos     ACPI_DMT_TERMINATOR
   1104   1.5  christos };
   1105   1.5  christos 
   1106   1.5  christos /* 1: S3 Performance Table Pointer Record */
   1107   1.5  christos 
   1108   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoFpdt1[] =
   1109   1.5  christos {
   1110   1.5  christos     {ACPI_DMT_UINT32,   ACPI_FPDT1_OFFSET (Reserved),               "Reserved", 0},
   1111  1.10  christos     {ACPI_DMT_UINT64,   ACPI_FPDT1_OFFSET (Address),                "S3PT Record Address", 0},
   1112   1.5  christos     ACPI_DMT_TERMINATOR
   1113   1.5  christos };
   1114   1.5  christos 
   1115  1.10  christos #if 0
   1116  1.10  christos     /* Boot Performance Record, not supported at this time. */
   1117  1.10  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ResetEnd),               "Reset End", 0},
   1118  1.10  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (LoadStart),              "Load Image Start", 0},
   1119  1.10  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (StartupStart),           "Start Image Start", 0},
   1120  1.10  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ExitServicesEntry),      "Exit Services Entry", 0},
   1121  1.10  christos     {ACPI_DMT_UINT64,   ACPI_FPDT0_OFFSET (ExitServicesExit),       "Exit Services Exit", 0},
   1122  1.10  christos #endif
   1123   1.5  christos 
   1124   1.5  christos /*******************************************************************************
   1125   1.5  christos  *
   1126   1.5  christos  * GTDT - Generic Timer Description Table
   1127   1.5  christos  *
   1128   1.5  christos  ******************************************************************************/
   1129   1.5  christos 
   1130   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt[] =
   1131   1.5  christos {
   1132   1.6  christos     {ACPI_DMT_UINT64,   ACPI_GTDT_OFFSET (CounterBlockAddresss),    "Counter Block Address", 0},
   1133   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (Reserved),                "Reserved", 0},
   1134   1.5  christos     ACPI_DMT_NEW_LINE,
   1135   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (SecureEl1Interrupt),      "Secure EL1 Interrupt", 0},
   1136   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (SecureEl1Flags),          "EL1 Flags (decoded below)", DT_FLAG},
   1137   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Trigger Mode", 0},
   1138   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Polarity", 0},
   1139   1.6  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (SecureEl1Flags,0),   "Always On", 0},
   1140   1.5  christos     ACPI_DMT_NEW_LINE,
   1141   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl1Interrupt),   "Non-Secure EL1 Interrupt", 0},
   1142   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl1Flags),       "NEL1 Flags (decoded below)", DT_FLAG},
   1143   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Trigger Mode", 0},
   1144   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Polarity", 0},
   1145   1.6  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl1Flags,0),"Always On", 0},
   1146   1.5  christos     ACPI_DMT_NEW_LINE,
   1147   1.5  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (VirtualTimerInterrupt),   "Virtual Timer Interrupt", 0},
   1148   1.5  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (VirtualTimerFlags),       "VT Flags (decoded below)", DT_FLAG},
   1149   1.5  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Trigger Mode", 0},
   1150   1.5  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Polarity", 0},
   1151   1.6  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (VirtualTimerFlags,0),"Always On", 0},
   1152   1.6  christos     ACPI_DMT_NEW_LINE,
   1153   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl2Interrupt),   "Non-Secure EL2 Interrupt", 0},
   1154   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (NonSecureEl2Flags),       "NEL2 Flags (decoded below)", DT_FLAG},
   1155   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Trigger Mode", 0},
   1156   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Polarity", 0},
   1157   1.6  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT_FLAG_OFFSET (NonSecureEl2Flags,0),"Always On", 0},
   1158   1.6  christos     {ACPI_DMT_UINT64,   ACPI_GTDT_OFFSET (CounterReadBlockAddress), "Counter Read Block Address", 0},
   1159   1.5  christos     ACPI_DMT_NEW_LINE,
   1160   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (PlatformTimerCount),      "Platform Timer Count", 0},
   1161   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT_OFFSET (PlatformTimerOffset),     "Platform Timer Offset", 0},
   1162   1.6  christos     ACPI_DMT_TERMINATOR
   1163   1.6  christos };
   1164   1.6  christos 
   1165   1.6  christos /* GTDT Subtable header (one per Subtable) */
   1166   1.6  christos 
   1167   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdtHdr[] =
   1168   1.6  christos {
   1169   1.6  christos     {ACPI_DMT_GTDT,     ACPI_GTDTH_OFFSET (Type),                   "Subtable Type", 0},
   1170   1.6  christos     {ACPI_DMT_UINT16,   ACPI_GTDTH_OFFSET (Length),                 "Length", DT_LENGTH},
   1171   1.6  christos     ACPI_DMT_TERMINATOR
   1172   1.6  christos };
   1173   1.6  christos 
   1174   1.6  christos /* GTDT Subtables */
   1175   1.6  christos 
   1176   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt0[] =
   1177   1.6  christos {
   1178   1.6  christos     {ACPI_DMT_UINT8,    ACPI_GTDT0_OFFSET (Reserved),               "Reserved", 0},
   1179   1.6  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0_OFFSET (BlockAddress),           "Block Address", 0},
   1180   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0_OFFSET (TimerCount),             "Timer Count", 0},
   1181   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0_OFFSET (TimerOffset),            "Timer Offset", 0},
   1182   1.6  christos     ACPI_DMT_TERMINATOR
   1183   1.6  christos };
   1184   1.6  christos 
   1185   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt0a[] =
   1186   1.6  christos {
   1187   1.6  christos     {ACPI_DMT_UINT8 ,   ACPI_GTDT0a_OFFSET (FrameNumber),               "Frame Number", 0},
   1188   1.6  christos     {ACPI_DMT_UINT24,   ACPI_GTDT0a_OFFSET (Reserved[0]),               "Reserved", 0},
   1189   1.6  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0a_OFFSET (BaseAddress),               "Base Address", 0},
   1190   1.6  christos     {ACPI_DMT_UINT64,   ACPI_GTDT0a_OFFSET (El0BaseAddress),            "EL0 Base Address", 0},
   1191   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (TimerInterrupt),            "Timer Interrupt", 0},
   1192   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (TimerFlags),                "Timer Flags (decoded below)", 0},
   1193   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (TimerFlags,0),         "Trigger Mode", 0},
   1194   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (TimerFlags,0),         "Polarity", 0},
   1195   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (VirtualTimerInterrupt),     "Virtual Timer Interrupt", 0},
   1196   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (VirtualTimerFlags),         "Virtual Timer Flags (decoded below)", 0},
   1197   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (VirtualTimerFlags,0),  "Trigger Mode", 0},
   1198   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (VirtualTimerFlags,0),  "Polarity", 0},
   1199   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT0a_OFFSET (CommonFlags),               "Common Flags (decoded below)", 0},
   1200   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT0a_FLAG_OFFSET (CommonFlags,0),        "Secure", 0},
   1201   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT0a_FLAG_OFFSET (CommonFlags,0),        "Always On", 0},
   1202   1.6  christos     ACPI_DMT_TERMINATOR
   1203   1.6  christos };
   1204   1.6  christos 
   1205   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoGtdt1[] =
   1206   1.6  christos {
   1207   1.6  christos     {ACPI_DMT_UINT8,    ACPI_GTDT1_OFFSET (Reserved),               "Reserved", 0},
   1208   1.6  christos     {ACPI_DMT_UINT64,   ACPI_GTDT1_OFFSET (RefreshFrameAddress),    "Refresh Frame Address", 0},
   1209   1.6  christos     {ACPI_DMT_UINT64,   ACPI_GTDT1_OFFSET (ControlFrameAddress),    "Control Frame Address", 0},
   1210   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT1_OFFSET (TimerInterrupt),         "Timer Interrupt", 0},
   1211   1.6  christos     {ACPI_DMT_UINT32,   ACPI_GTDT1_OFFSET (TimerFlags),             "Timer Flags (decoded below)", DT_FLAG},
   1212   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Trigger Mode", 0},
   1213   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Polarity", 0},
   1214   1.6  christos     {ACPI_DMT_FLAG2,    ACPI_GTDT1_FLAG_OFFSET (TimerFlags,0),      "Security", 0},
   1215   1.5  christos     ACPI_DMT_TERMINATOR
   1216   1.5  christos };
   1217   1.5  christos 
   1218   1.5  christos 
   1219   1.5  christos /*******************************************************************************
   1220   1.5  christos  *
   1221   1.1    jruoho  * HEST - Hardware Error Source table
   1222   1.1    jruoho  *
   1223   1.1    jruoho  ******************************************************************************/
   1224   1.1    jruoho 
   1225   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHest[] =
   1226   1.1    jruoho {
   1227   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST_OFFSET (ErrorSourceCount),        "Error Source Count", 0},
   1228   1.1    jruoho     ACPI_DMT_TERMINATOR
   1229   1.1    jruoho };
   1230   1.1    jruoho 
   1231   1.1    jruoho /* Common HEST structures for subtables */
   1232   1.1    jruoho 
   1233   1.1    jruoho #define ACPI_DM_HEST_HEADER \
   1234   1.1    jruoho     {ACPI_DMT_HEST,     ACPI_HEST0_OFFSET (Header.Type),            "Subtable Type", 0}, \
   1235   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST0_OFFSET (Header.SourceId),        "Source Id", 0}
   1236   1.1    jruoho 
   1237   1.1    jruoho #define ACPI_DM_HEST_AER \
   1238   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved1),              "Reserved", 0}, \
   1239   1.3    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Flags),                  "Flags (decoded below)", DT_FLAG}, \
   1240   1.3    jruoho     {ACPI_DMT_FLAG0,    ACPI_HEST6_FLAG_OFFSET (Aer.Flags,0),           "Firmware First", 0}, \
   1241   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST6_OFFSET (Aer.Enabled),                "Enabled", 0}, \
   1242   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.RecordsToPreallocate),   "Records To Preallocate", 0}, \
   1243   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.MaxSectionsPerRecord),   "Max Sections Per Record", 0}, \
   1244   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.Bus),                    "Bus", 0}, \
   1245   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Device),                 "Device", 0}, \
   1246   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Function),               "Function", 0}, \
   1247   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.DeviceControl),          "DeviceControl", 0}, \
   1248   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST6_OFFSET (Aer.Reserved2),              "Reserved", 0}, \
   1249   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableMask),      "Uncorrectable Mask", 0}, \
   1250   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.UncorrectableSeverity),  "Uncorrectable Severity", 0}, \
   1251   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.CorrectableMask),        "Correctable Mask", 0}, \
   1252   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (Aer.AdvancedCapabilities),   "Advanced Capabilities", 0}
   1253   1.1    jruoho 
   1254   1.1    jruoho 
   1255   1.1    jruoho /* HEST Subtables */
   1256   1.1    jruoho 
   1257   1.1    jruoho /* 0: IA32 Machine Check Exception */
   1258   1.1    jruoho 
   1259   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHest0[] =
   1260   1.1    jruoho {
   1261   1.1    jruoho     ACPI_DM_HEST_HEADER,
   1262   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST0_OFFSET (Reserved1),              "Reserved1", 0},
   1263   1.3    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1264   1.3    jruoho     {ACPI_DMT_FLAG0,    ACPI_HEST0_FLAG_OFFSET (Flags,0),           "Firmware First", 0},
   1265   1.3    jruoho 
   1266   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (Enabled),                "Enabled", 0},
   1267   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST0_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
   1268   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST0_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
   1269   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_HEST0_OFFSET (GlobalCapabilityData),   "Global Capability Data", 0},
   1270   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_HEST0_OFFSET (GlobalControlData),      "Global Control Data", 0},
   1271   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST0_OFFSET (NumHardwareBanks),       "Num Hardware Banks", 0},
   1272   1.3    jruoho     {ACPI_DMT_UINT56,   ACPI_HEST0_OFFSET (Reserved3[0]),           "Reserved2", 0},
   1273   1.1    jruoho     ACPI_DMT_TERMINATOR
   1274   1.1    jruoho };
   1275   1.1    jruoho 
   1276   1.1    jruoho /* 1: IA32 Corrected Machine Check */
   1277   1.1    jruoho 
   1278   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHest1[] =
   1279   1.1    jruoho {
   1280   1.1    jruoho     ACPI_DM_HEST_HEADER,
   1281   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST1_OFFSET (Reserved1),              "Reserved1", 0},
   1282   1.3    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1283   1.3    jruoho     {ACPI_DMT_FLAG0,    ACPI_HEST1_FLAG_OFFSET (Flags,0),           "Firmware First", 0},
   1284   1.3    jruoho 
   1285   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (Enabled),                "Enabled", 0},
   1286   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST1_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
   1287   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST1_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
   1288   1.1    jruoho     {ACPI_DMT_HESTNTFY, ACPI_HEST1_OFFSET (Notify),                 "Notify", 0},
   1289   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST1_OFFSET (NumHardwareBanks),       "Num Hardware Banks", 0},
   1290   1.3    jruoho     {ACPI_DMT_UINT24,   ACPI_HEST1_OFFSET (Reserved2[0]),           "Reserved2", 0},
   1291   1.1    jruoho     ACPI_DMT_TERMINATOR
   1292   1.1    jruoho };
   1293   1.1    jruoho 
   1294   1.1    jruoho /* 2: IA32 Non-Maskable Interrupt */
   1295   1.1    jruoho 
   1296   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHest2[] =
   1297   1.1    jruoho {
   1298   1.1    jruoho     ACPI_DM_HEST_HEADER,
   1299   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (Reserved),               "Reserved", 0},
   1300   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
   1301   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
   1302   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST2_OFFSET (MaxRawDataLength),       "Max Raw Data Length", 0},
   1303   1.1    jruoho     ACPI_DMT_TERMINATOR
   1304   1.1    jruoho };
   1305   1.1    jruoho 
   1306   1.1    jruoho /* 6: PCI Express Root Port AER */
   1307   1.1    jruoho 
   1308   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHest6[] =
   1309   1.1    jruoho {
   1310   1.1    jruoho     ACPI_DM_HEST_HEADER,
   1311   1.1    jruoho     ACPI_DM_HEST_AER,
   1312   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST6_OFFSET (RootErrorCommand),       "Root Error Command", 0},
   1313   1.1    jruoho     ACPI_DMT_TERMINATOR
   1314   1.1    jruoho };
   1315   1.1    jruoho 
   1316   1.1    jruoho /* 7: PCI Express AER (AER Endpoint) */
   1317   1.1    jruoho 
   1318   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHest7[] =
   1319   1.1    jruoho {
   1320   1.1    jruoho     ACPI_DM_HEST_HEADER,
   1321   1.1    jruoho     ACPI_DM_HEST_AER,
   1322   1.1    jruoho     ACPI_DMT_TERMINATOR
   1323   1.1    jruoho };
   1324   1.1    jruoho 
   1325   1.1    jruoho /* 8: PCI Express/PCI-X Bridge AER */
   1326   1.1    jruoho 
   1327   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHest8[] =
   1328   1.1    jruoho {
   1329   1.1    jruoho     ACPI_DM_HEST_HEADER,
   1330   1.1    jruoho     ACPI_DM_HEST_AER,
   1331   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (UncorrectableMask2),     "2nd Uncorrectable Mask", 0},
   1332   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (UncorrectableSeverity2), "2nd Uncorrectable Severity", 0},
   1333   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST8_OFFSET (AdvancedCapabilities2),  "2nd Advanced Capabilities", 0},
   1334   1.1    jruoho     ACPI_DMT_TERMINATOR
   1335   1.1    jruoho };
   1336   1.1    jruoho 
   1337   1.1    jruoho /* 9: Generic Hardware Error Source */
   1338   1.1    jruoho 
   1339   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHest9[] =
   1340   1.1    jruoho {
   1341   1.1    jruoho     ACPI_DM_HEST_HEADER,
   1342   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HEST9_OFFSET (RelatedSourceId),        "Related Source Id", 0},
   1343   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST9_OFFSET (Reserved),               "Reserved", 0},
   1344   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HEST9_OFFSET (Enabled),                "Enabled", 0},
   1345   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (RecordsToPreallocate),   "Records To Preallocate", 0},
   1346   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (MaxSectionsPerRecord),   "Max Sections Per Record", 0},
   1347   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (MaxRawDataLength),       "Max Raw Data Length", 0},
   1348   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_HEST9_OFFSET (ErrorStatusAddress),     "Error Status Address", 0},
   1349   1.1    jruoho     {ACPI_DMT_HESTNTFY, ACPI_HEST9_OFFSET (Notify),                 "Notify", 0},
   1350   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HEST9_OFFSET (ErrorBlockLength),       "Error Status Block Length", 0},
   1351   1.1    jruoho     ACPI_DMT_TERMINATOR
   1352   1.1    jruoho };
   1353   1.1    jruoho 
   1354  1.10  christos /* 10: Generic Hardware Error Source - Version 2 */
   1355  1.10  christos 
   1356  1.10  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoHest10[] =
   1357  1.10  christos {
   1358  1.10  christos     ACPI_DM_HEST_HEADER,
   1359  1.10  christos     {ACPI_DMT_UINT16,   ACPI_HEST10_OFFSET (RelatedSourceId),       "Related Source Id", 0},
   1360  1.10  christos     {ACPI_DMT_UINT8,    ACPI_HEST10_OFFSET (Reserved),              "Reserved", 0},
   1361  1.10  christos     {ACPI_DMT_UINT8,    ACPI_HEST10_OFFSET (Enabled),               "Enabled", 0},
   1362  1.10  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (RecordsToPreallocate),  "Records To Preallocate", 0},
   1363  1.10  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (MaxSectionsPerRecord),  "Max Sections Per Record", 0},
   1364  1.10  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (MaxRawDataLength),      "Max Raw Data Length", 0},
   1365  1.10  christos     {ACPI_DMT_GAS,      ACPI_HEST10_OFFSET (ErrorStatusAddress),    "Error Status Address", 0},
   1366  1.10  christos     {ACPI_DMT_HESTNTFY, ACPI_HEST10_OFFSET (Notify),                "Notify", 0},
   1367  1.10  christos     {ACPI_DMT_UINT32,   ACPI_HEST10_OFFSET (ErrorBlockLength),      "Error Status Block Length", 0},
   1368  1.10  christos     {ACPI_DMT_GAS,      ACPI_HEST10_OFFSET (ReadAckRegister),       "Read Ack Register", 0},
   1369  1.10  christos     {ACPI_DMT_UINT64,   ACPI_HEST10_OFFSET (ReadAckPreserve),       "Read Ack Preserve", 0},
   1370  1.10  christos     {ACPI_DMT_UINT64,   ACPI_HEST10_OFFSET (ReadAckWrite),          "Read Ack Write", 0},
   1371  1.10  christos     ACPI_DMT_TERMINATOR
   1372  1.10  christos };
   1373  1.10  christos 
   1374   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHestNotify[] =
   1375   1.1    jruoho {
   1376   1.1    jruoho     {ACPI_DMT_HESTNTYP, ACPI_HESTN_OFFSET (Type),                   "Notify Type", 0},
   1377   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HESTN_OFFSET (Length),                 "Notify Length", DT_LENGTH},
   1378   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HESTN_OFFSET (ConfigWriteEnable),      "Configuration Write Enable", 0},
   1379   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollInterval),           "PollInterval", 0},
   1380   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (Vector),                 "Vector", 0},
   1381   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollingThresholdValue),  "Polling Threshold Value", 0},
   1382   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (PollingThresholdWindow), "Polling Threshold Window", 0},
   1383   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (ErrorThresholdValue),    "Error Threshold Value", 0},
   1384   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTN_OFFSET (ErrorThresholdWindow),   "Error Threshold Window", 0},
   1385   1.1    jruoho     ACPI_DMT_TERMINATOR
   1386   1.1    jruoho };
   1387   1.1    jruoho 
   1388   1.1    jruoho 
   1389   1.1    jruoho /*
   1390   1.1    jruoho  * IA32 Error Bank(s) - Follows the ACPI_HEST_IA_MACHINE_CHECK and
   1391   1.1    jruoho  * ACPI_HEST_IA_CORRECTED structures.
   1392   1.1    jruoho  */
   1393   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHestBank[] =
   1394   1.1    jruoho {
   1395   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (BankNumber),             "Bank Number", 0},
   1396   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (ClearStatusOnInit),      "Clear Status On Init", 0},
   1397   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (StatusFormat),           "Status Format", 0},
   1398   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HESTB_OFFSET (Reserved),               "Reserved", 0},
   1399   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (ControlRegister),        "Control Register", 0},
   1400   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_HESTB_OFFSET (ControlData),            "Control Data", 0},
   1401   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (StatusRegister),         "Status Register", 0},
   1402   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (AddressRegister),        "Address Register", 0},
   1403   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HESTB_OFFSET (MiscRegister),           "Misc Register", 0},
   1404   1.1    jruoho     ACPI_DMT_TERMINATOR
   1405   1.1    jruoho };
   1406   1.1    jruoho 
   1407   1.1    jruoho 
   1408   1.1    jruoho /*******************************************************************************
   1409   1.1    jruoho  *
   1410   1.1    jruoho  * HPET - High Precision Event Timer table
   1411   1.1    jruoho  *
   1412   1.1    jruoho  ******************************************************************************/
   1413   1.1    jruoho 
   1414   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoHpet[] =
   1415   1.1    jruoho {
   1416   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_HPET_OFFSET (Id),                      "Hardware Block ID", 0},
   1417   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_HPET_OFFSET (Address),                 "Timer Block Register", 0},
   1418   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HPET_OFFSET (Sequence),                "Sequence Number", 0},
   1419   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_HPET_OFFSET (MinimumTick),             "Minimum Clock Ticks", 0},
   1420   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_HPET_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
   1421   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "4K Page Protect", 0},
   1422   1.1    jruoho     {ACPI_DMT_FLAG1,    ACPI_HPET_FLAG_OFFSET (Flags,0),            "64K Page Protect", 0},
   1423   1.1    jruoho     ACPI_DMT_TERMINATOR
   1424   1.1    jruoho };
   1425   1.1    jruoho 
   1426   1.1    jruoho 
   1427   1.1    jruoho /*******************************************************************************
   1428   1.1    jruoho  *
   1429   1.8  christos  * IORT - IO Remapping Table
   1430   1.8  christos  *
   1431   1.8  christos  ******************************************************************************/
   1432   1.8  christos 
   1433   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort[] =
   1434   1.8  christos {
   1435   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT_OFFSET (NodeCount),               "Node Count", 0},
   1436   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT_OFFSET (NodeOffset),              "Node Offset", 0},
   1437   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT_OFFSET (Reserved),                "Reserved", 0},
   1438   1.8  christos     ACPI_DMT_TERMINATOR
   1439   1.8  christos };
   1440   1.8  christos 
   1441   1.8  christos /* Optional padding field */
   1442   1.8  christos 
   1443   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIortPad[] =
   1444   1.8  christos {
   1445   1.8  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "Optional Padding", DT_OPTIONAL},
   1446   1.8  christos     ACPI_DMT_TERMINATOR
   1447   1.8  christos };
   1448   1.8  christos 
   1449   1.8  christos /* Common Subtable header (one per Subtable) */
   1450   1.8  christos 
   1451   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIortHdr[] =
   1452   1.8  christos {
   1453   1.8  christos     {ACPI_DMT_UINT8,    ACPI_IORTH_OFFSET (Type),                   "Type", 0},
   1454   1.8  christos     {ACPI_DMT_UINT16,   ACPI_IORTH_OFFSET (Length),                 "Length", DT_LENGTH},
   1455   1.8  christos     {ACPI_DMT_UINT8,    ACPI_IORTH_OFFSET (Revision),               "Revision", 0},
   1456   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTH_OFFSET (Reserved),               "Reserved", 0},
   1457   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTH_OFFSET (MappingCount),           "Mapping Count", 0},
   1458   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTH_OFFSET (MappingOffset),          "Mapping Offset", 0},
   1459   1.8  christos     ACPI_DMT_TERMINATOR
   1460   1.8  christos };
   1461   1.8  christos 
   1462   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIortMap[] =
   1463   1.8  christos {
   1464   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (InputBase),              "Input base", DT_OPTIONAL},
   1465   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (IdCount),                "ID Count", 0},
   1466   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (OutputBase),             "Output Base", 0},
   1467   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (OutputReference),        "Output Reference", 0},
   1468   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTM_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1469   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_IORTM_FLAG_OFFSET (Flags, 0),          "Single Mapping", 0},
   1470   1.8  christos     ACPI_DMT_TERMINATOR
   1471   1.8  christos };
   1472   1.8  christos 
   1473   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIortAcc[] =
   1474   1.8  christos {
   1475   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORTA_OFFSET (CacheCoherency),         "Cache Coherency", 0},
   1476   1.8  christos     {ACPI_DMT_UINT8,    ACPI_IORTA_OFFSET (Hints),                  "Hints (decoded below)", 0},
   1477   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_IORTA_FLAG_OFFSET (Hints, 0),          "Transient", 0},
   1478   1.8  christos     {ACPI_DMT_FLAG1,    ACPI_IORTA_FLAG_OFFSET (Hints, 0),          "Write Allocate", 0},
   1479   1.8  christos     {ACPI_DMT_FLAG2,    ACPI_IORTA_FLAG_OFFSET (Hints, 0),          "Read Allocate", 0},
   1480   1.8  christos     {ACPI_DMT_FLAG3,    ACPI_IORTA_FLAG_OFFSET (Hints, 0),          "Override", 0},
   1481   1.8  christos     {ACPI_DMT_UINT16,   ACPI_IORTA_OFFSET (Reserved),               "Reserved", 0},
   1482   1.8  christos     {ACPI_DMT_UINT8,    ACPI_IORTA_OFFSET (MemoryFlags),            "Memory Flags (decoded below)", 0},
   1483   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0),    "Coherency", 0},
   1484   1.8  christos     {ACPI_DMT_FLAG1,    ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0),    "Device Attribute", 0},
   1485   1.8  christos     ACPI_DMT_TERMINATOR
   1486   1.8  christos };
   1487   1.8  christos 
   1488   1.8  christos /* IORT subtables */
   1489   1.8  christos 
   1490   1.8  christos /* 0x00: ITS Group */
   1491   1.8  christos 
   1492   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort0[] =
   1493   1.8  christos {
   1494   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT0_OFFSET (ItsCount),               "ItsCount", 0},
   1495   1.8  christos     ACPI_DMT_TERMINATOR
   1496   1.8  christos };
   1497   1.8  christos 
   1498   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort0a[] =
   1499   1.8  christos {
   1500   1.8  christos     {ACPI_DMT_UINT32,   0,                                          "Identifiers", DT_OPTIONAL},
   1501   1.8  christos     ACPI_DMT_TERMINATOR
   1502   1.8  christos };
   1503   1.8  christos 
   1504   1.8  christos /* 0x01: Named Component */
   1505   1.8  christos 
   1506   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort1[] =
   1507   1.8  christos {
   1508   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT1_OFFSET (NodeFlags),              "Node Flags", 0},
   1509   1.8  christos     {ACPI_DMT_IORTMEM,  ACPI_IORT1_OFFSET (MemoryProperties),       "Memory Properties", 0},
   1510   1.8  christos     {ACPI_DMT_UINT8,    ACPI_IORT1_OFFSET (MemoryAddressLimit),     "Memory Size Limit", 0},
   1511   1.8  christos     {ACPI_DMT_STRING,   ACPI_IORT1_OFFSET (DeviceName[0]),          "Device Name", 0},
   1512   1.8  christos     ACPI_DMT_TERMINATOR
   1513   1.8  christos };
   1514   1.8  christos 
   1515   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort1a[] =
   1516   1.8  christos {
   1517   1.8  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "Padding", DT_OPTIONAL},
   1518   1.8  christos     ACPI_DMT_TERMINATOR
   1519   1.8  christos };
   1520   1.8  christos 
   1521   1.8  christos /* 0x02: PCI Root Complex */
   1522   1.8  christos 
   1523   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort2[] =
   1524   1.8  christos {
   1525   1.8  christos     {ACPI_DMT_IORTMEM,  ACPI_IORT2_OFFSET (MemoryProperties),       "Memory Properties", 0},
   1526   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT2_OFFSET (AtsAttribute),           "ATS Attribute", 0},
   1527   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT2_OFFSET (PciSegmentNumber),       "PCI Segment Number", 0},
   1528   1.8  christos     ACPI_DMT_TERMINATOR
   1529   1.8  christos };
   1530   1.8  christos 
   1531   1.8  christos /* 0x03: SMMUv1/2 */
   1532   1.8  christos 
   1533   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort3[] =
   1534   1.8  christos {
   1535   1.8  christos     {ACPI_DMT_UINT64,   ACPI_IORT3_OFFSET (BaseAddress),            "Base Address", 0},
   1536   1.8  christos     {ACPI_DMT_UINT64,   ACPI_IORT3_OFFSET (Span),                   "Span", 0},
   1537   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (Model),                  "Model", 0},
   1538   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1539   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_IORT3_FLAG_OFFSET (Flags, 0),          "DVM Supported", 0},
   1540   1.8  christos     {ACPI_DMT_FLAG1,    ACPI_IORT3_FLAG_OFFSET (Flags, 0),          "Coherent Walk", 0},
   1541   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (GlobalInterruptOffset),  "Global Interrupt Offset", 0},
   1542   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (ContextInterruptCount),  "Context Interrupt Count", 0},
   1543   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (ContextInterruptOffset), "Context Interrupt Offset", 0},
   1544   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (PmuInterruptCount),      "PMU Interrupt Count", 0},
   1545   1.8  christos     {ACPI_DMT_UINT32,   ACPI_IORT3_OFFSET (PmuInterruptOffset),     "PMU Interrupt Offset", 0},
   1546   1.8  christos     ACPI_DMT_TERMINATOR
   1547   1.8  christos };
   1548   1.8  christos 
   1549   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort3a[] =
   1550   1.8  christos {
   1551   1.8  christos     {ACPI_DMT_UINT64,   0,                                          "SMMU_NSgIrpt Interrupt", 0},
   1552   1.8  christos     {ACPI_DMT_UINT64,   0,                                          "SMMU_NSgCfgIrpt Interrupt", 0},
   1553   1.8  christos     ACPI_DMT_TERMINATOR
   1554   1.8  christos };
   1555   1.8  christos 
   1556   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort3b[] =
   1557   1.8  christos {
   1558   1.8  christos     {ACPI_DMT_UINT64,   0,                                          "Context Interrupt", DT_OPTIONAL},
   1559   1.8  christos     ACPI_DMT_TERMINATOR
   1560   1.8  christos };
   1561   1.8  christos 
   1562   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort3c[] =
   1563   1.8  christos {
   1564   1.8  christos     {ACPI_DMT_UINT64,   0,                                          "PMU Interrupt", DT_OPTIONAL},
   1565   1.8  christos     ACPI_DMT_TERMINATOR
   1566   1.8  christos };
   1567   1.8  christos 
   1568  1.10  christos /* 0x04: SMMUv3 */
   1569  1.10  christos 
   1570  1.10  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoIort4[] =
   1571  1.10  christos {
   1572  1.10  christos     {ACPI_DMT_UINT64,   ACPI_IORT4_OFFSET (BaseAddress),            "Base Address", 0},
   1573  1.10  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (Flags),                  "Flags (decoded below)", 0},
   1574  1.10  christos     {ACPI_DMT_FLAG0,    ACPI_IORT4_FLAG_OFFSET (Flags, 0),          "COHACC Override", 0},
   1575  1.10  christos     {ACPI_DMT_FLAG1,    ACPI_IORT4_FLAG_OFFSET (Flags, 0),          "HTTU Override", 0},
   1576  1.10  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (Reserved),               "Reserved", 0},
   1577  1.10  christos     {ACPI_DMT_UINT64,   ACPI_IORT4_OFFSET (VatosAddress),           "VATOS Address", 0},
   1578  1.10  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (Model),                  "Model", 0},
   1579  1.10  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (EventGsiv),              "Event GSIV", 0},
   1580  1.10  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (PriGsiv),                "PRI GSIV", 0},
   1581  1.10  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (GerrGsiv),               "GERR GSIV", 0},
   1582  1.10  christos     {ACPI_DMT_UINT32,   ACPI_IORT4_OFFSET (SyncGsiv),               "Sync GSIV", 0},
   1583  1.10  christos     ACPI_DMT_TERMINATOR
   1584  1.10  christos };
   1585   1.8  christos 
   1586   1.8  christos /*******************************************************************************
   1587   1.8  christos  *
   1588   1.1    jruoho  * IVRS - I/O Virtualization Reporting Structure
   1589   1.1    jruoho  *
   1590   1.1    jruoho  ******************************************************************************/
   1591   1.1    jruoho 
   1592   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs[] =
   1593   1.1    jruoho {
   1594   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_IVRS_OFFSET (Info),                    "Virtualization Info", 0},
   1595   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_IVRS_OFFSET (Reserved),                "Reserved", 0},
   1596   1.1    jruoho     ACPI_DMT_TERMINATOR
   1597   1.1    jruoho };
   1598   1.1    jruoho 
   1599   1.1    jruoho /* Common Subtable header (one per Subtable) */
   1600   1.1    jruoho 
   1601   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrsHdr[] =
   1602   1.1    jruoho {
   1603   1.1    jruoho     {ACPI_DMT_IVRS,     ACPI_IVRSH_OFFSET (Type),                   "Subtable Type", 0},
   1604   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_IVRSH_OFFSET (Flags),                  "Flags", 0},
   1605   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRSH_OFFSET (Length),                 "Length", DT_LENGTH},
   1606   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRSH_OFFSET (DeviceId),               "DeviceId", 0},
   1607   1.1    jruoho     ACPI_DMT_TERMINATOR
   1608   1.1    jruoho };
   1609   1.1    jruoho 
   1610   1.1    jruoho /* IVRS subtables */
   1611   1.1    jruoho 
   1612   1.1    jruoho /* 0x10: I/O Virtualization Hardware Definition (IVHD) Block */
   1613   1.1    jruoho 
   1614   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs0[] =
   1615   1.1    jruoho {
   1616   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRS0_OFFSET (CapabilityOffset),       "Capability Offset", 0},
   1617   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_IVRS0_OFFSET (BaseAddress),            "Base Address", 0},
   1618   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRS0_OFFSET (PciSegmentGroup),        "PCI Segment Group", 0},
   1619   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRS0_OFFSET (Info),                   "Virtualization Info", 0},
   1620   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_IVRS0_OFFSET (Reserved),               "Reserved", 0},
   1621   1.1    jruoho     ACPI_DMT_TERMINATOR
   1622   1.1    jruoho };
   1623   1.1    jruoho 
   1624   1.1    jruoho /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition (IVMD) Block */
   1625   1.1    jruoho 
   1626   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs1[] =
   1627   1.1    jruoho {
   1628   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRS1_OFFSET (AuxData),                "Auxiliary Data", 0},
   1629   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_IVRS1_OFFSET (Reserved),               "Reserved", 0},
   1630   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_IVRS1_OFFSET (StartAddress),           "Start Address", 0},
   1631   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_IVRS1_OFFSET (MemoryLength),           "Memory Length", 0},
   1632   1.1    jruoho     ACPI_DMT_TERMINATOR
   1633   1.1    jruoho };
   1634   1.1    jruoho 
   1635   1.1    jruoho /* Device entry header for IVHD block */
   1636   1.1    jruoho 
   1637   1.1    jruoho #define ACPI_DMT_IVRS_DE_HEADER \
   1638   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_IVRSD_OFFSET (Type),                   "Entry Type", 0}, \
   1639   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRSD_OFFSET (Id),                     "Device ID", 0}, \
   1640   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_IVRSD_OFFSET (DataSetting),            "Data Setting", 0}
   1641   1.1    jruoho 
   1642   1.1    jruoho /* 4-byte device entry */
   1643   1.1    jruoho 
   1644   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs4[] =
   1645   1.1    jruoho {
   1646   1.1    jruoho     ACPI_DMT_IVRS_DE_HEADER,
   1647   1.1    jruoho     {ACPI_DMT_EXIT,     0,                                          NULL, 0},
   1648   1.1    jruoho };
   1649   1.1    jruoho 
   1650   1.1    jruoho /* 8-byte device entry */
   1651   1.1    jruoho 
   1652   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs8a[] =
   1653   1.1    jruoho {
   1654   1.1    jruoho     ACPI_DMT_IVRS_DE_HEADER,
   1655   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_IVRS8A_OFFSET (Reserved1),             "Reserved", 0},
   1656   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRS8A_OFFSET (UsedId),                "Source Used Device ID", 0},
   1657   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_IVRS8A_OFFSET (Reserved2),             "Reserved", 0},
   1658   1.1    jruoho     ACPI_DMT_TERMINATOR
   1659   1.1    jruoho };
   1660   1.1    jruoho 
   1661   1.1    jruoho /* 8-byte device entry */
   1662   1.1    jruoho 
   1663   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs8b[] =
   1664   1.1    jruoho {
   1665   1.1    jruoho     ACPI_DMT_IVRS_DE_HEADER,
   1666   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_IVRS8B_OFFSET (ExtendedData),          "Extended Data", 0},
   1667   1.1    jruoho     ACPI_DMT_TERMINATOR
   1668   1.1    jruoho };
   1669   1.1    jruoho 
   1670   1.1    jruoho /* 8-byte device entry */
   1671   1.1    jruoho 
   1672   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs8c[] =
   1673   1.1    jruoho {
   1674   1.1    jruoho     ACPI_DMT_IVRS_DE_HEADER,
   1675   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_IVRS8C_OFFSET (Handle),                "Handle", 0},
   1676   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_IVRS8C_OFFSET (UsedId),                "Source Used Device ID", 0},
   1677   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_IVRS8C_OFFSET (Variety),               "Variety", 0},
   1678   1.1    jruoho     ACPI_DMT_TERMINATOR
   1679   1.1    jruoho };
   1680   1.1    jruoho 
   1681   1.1    jruoho 
   1682   1.1    jruoho /*******************************************************************************
   1683   1.1    jruoho  *
   1684   1.6  christos  * LPIT - Low Power Idle Table
   1685   1.6  christos  *
   1686   1.6  christos  ******************************************************************************/
   1687   1.6  christos 
   1688   1.6  christos /* Main table consists only of the standard ACPI table header */
   1689   1.6  christos 
   1690   1.6  christos /* Common Subtable header (one per Subtable) */
   1691   1.6  christos 
   1692   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoLpitHdr[] =
   1693   1.6  christos {
   1694   1.6  christos     {ACPI_DMT_LPIT,     ACPI_LPITH_OFFSET (Type),                   "Subtable Type", 0},
   1695   1.6  christos     {ACPI_DMT_UINT32,   ACPI_LPITH_OFFSET (Length),                 "Length", DT_LENGTH},
   1696   1.6  christos     {ACPI_DMT_UINT16,   ACPI_LPITH_OFFSET (UniqueId),               "Unique ID", 0},
   1697   1.6  christos     {ACPI_DMT_UINT16,   ACPI_LPITH_OFFSET (Reserved),               "Reserved", 0},
   1698   1.6  christos     {ACPI_DMT_UINT32,   ACPI_LPITH_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1699   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_LPITH_FLAG_OFFSET (Flags, 0),          "State Disabled", 0},
   1700   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_LPITH_FLAG_OFFSET (Flags, 0),          "No Counter", 0},
   1701   1.6  christos     ACPI_DMT_TERMINATOR
   1702   1.6  christos };
   1703   1.6  christos 
   1704   1.6  christos /* LPIT Subtables */
   1705   1.6  christos 
   1706   1.6  christos /* 0: Native C-state */
   1707   1.6  christos 
   1708   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoLpit0[] =
   1709   1.6  christos {
   1710   1.6  christos     {ACPI_DMT_GAS,      ACPI_LPIT0_OFFSET (EntryTrigger),           "Entry Trigger", 0},
   1711   1.6  christos     {ACPI_DMT_UINT32,   ACPI_LPIT0_OFFSET (Residency),              "Residency", 0},
   1712   1.6  christos     {ACPI_DMT_UINT32,   ACPI_LPIT0_OFFSET (Latency),                "Latency", 0},
   1713   1.6  christos     {ACPI_DMT_GAS,      ACPI_LPIT0_OFFSET (ResidencyCounter),       "Residency Counter", 0},
   1714   1.6  christos     {ACPI_DMT_UINT64,   ACPI_LPIT0_OFFSET (CounterFrequency),       "Counter Frequency", 0},
   1715   1.6  christos     ACPI_DMT_TERMINATOR
   1716   1.6  christos };
   1717   1.6  christos 
   1718   1.6  christos 
   1719   1.6  christos /*******************************************************************************
   1720   1.6  christos  *
   1721   1.1    jruoho  * MADT - Multiple APIC Description Table and subtables
   1722   1.1    jruoho  *
   1723   1.1    jruoho  ******************************************************************************/
   1724   1.1    jruoho 
   1725   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt[] =
   1726   1.1    jruoho {
   1727   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT_OFFSET (Address),                 "Local Apic Address", 0},
   1728   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
   1729   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_MADT_FLAG_OFFSET (Flags,0),            "PC-AT Compatibility", 0},
   1730   1.1    jruoho     ACPI_DMT_TERMINATOR
   1731   1.1    jruoho };
   1732   1.1    jruoho 
   1733   1.1    jruoho /* Common Subtable header (one per Subtable) */
   1734   1.1    jruoho 
   1735   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadtHdr[] =
   1736   1.1    jruoho {
   1737   1.1    jruoho     {ACPI_DMT_MADT,     ACPI_MADTH_OFFSET (Type),                   "Subtable Type", 0},
   1738   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADTH_OFFSET (Length),                 "Length", DT_LENGTH},
   1739   1.1    jruoho     ACPI_DMT_TERMINATOR
   1740   1.1    jruoho };
   1741   1.1    jruoho 
   1742   1.1    jruoho /* MADT Subtables */
   1743   1.1    jruoho 
   1744   1.1    jruoho /* 0: processor APIC */
   1745   1.1    jruoho 
   1746   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt0[] =
   1747   1.1    jruoho {
   1748   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT0_OFFSET (ProcessorId),            "Processor ID", 0},
   1749   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT0_OFFSET (Id),                     "Local Apic ID", 0},
   1750   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT0_OFFSET (LapicFlags),             "Flags (decoded below)", DT_FLAG},
   1751   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_MADT0_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled", 0},
   1752   1.1    jruoho     ACPI_DMT_TERMINATOR
   1753   1.1    jruoho };
   1754   1.1    jruoho 
   1755   1.1    jruoho /* 1: IO APIC */
   1756   1.1    jruoho 
   1757   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt1[] =
   1758   1.1    jruoho {
   1759   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT1_OFFSET (Id),                     "I/O Apic ID", 0},
   1760   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT1_OFFSET (Reserved),               "Reserved", 0},
   1761   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT1_OFFSET (Address),                "Address", 0},
   1762   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT1_OFFSET (GlobalIrqBase),          "Interrupt", 0},
   1763   1.1    jruoho     ACPI_DMT_TERMINATOR
   1764   1.1    jruoho };
   1765   1.1    jruoho 
   1766   1.1    jruoho /* 2: Interrupt Override */
   1767   1.1    jruoho 
   1768   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt2[] =
   1769   1.1    jruoho {
   1770   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT2_OFFSET (Bus),                    "Bus", 0},
   1771   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT2_OFFSET (SourceIrq),              "Source", 0},
   1772   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT2_OFFSET (GlobalIrq),              "Interrupt", 0},
   1773   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_MADT2_OFFSET (IntiFlags),              "Flags (decoded below)", DT_FLAG},
   1774   1.1    jruoho     {ACPI_DMT_FLAGS0,   ACPI_MADT2_FLAG_OFFSET (IntiFlags,0),       "Polarity", 0},
   1775   1.1    jruoho     {ACPI_DMT_FLAGS2,   ACPI_MADT2_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode", 0},
   1776   1.1    jruoho     ACPI_DMT_TERMINATOR
   1777   1.1    jruoho };
   1778   1.1    jruoho 
   1779   1.1    jruoho /* 3: NMI Sources */
   1780   1.1    jruoho 
   1781   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt3[] =
   1782   1.1    jruoho {
   1783   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_MADT3_OFFSET (IntiFlags),              "Flags (decoded below)", DT_FLAG},
   1784   1.1    jruoho     {ACPI_DMT_FLAGS0,   ACPI_MADT3_FLAG_OFFSET (IntiFlags,0),       "Polarity", 0},
   1785   1.1    jruoho     {ACPI_DMT_FLAGS2,   ACPI_MADT3_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode", 0},
   1786   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT3_OFFSET (GlobalIrq),              "Interrupt", 0},
   1787   1.1    jruoho     ACPI_DMT_TERMINATOR
   1788   1.1    jruoho };
   1789   1.1    jruoho 
   1790   1.1    jruoho /* 4: Local APIC NMI */
   1791   1.1    jruoho 
   1792   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt4[] =
   1793   1.1    jruoho {
   1794   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT4_OFFSET (ProcessorId),            "Processor ID", 0},
   1795   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_MADT4_OFFSET (IntiFlags),              "Flags (decoded below)", DT_FLAG},
   1796   1.1    jruoho     {ACPI_DMT_FLAGS0,   ACPI_MADT4_FLAG_OFFSET (IntiFlags,0),       "Polarity", 0},
   1797   1.1    jruoho     {ACPI_DMT_FLAGS2,   ACPI_MADT4_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode", 0},
   1798   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT4_OFFSET (Lint),                   "Interrupt Input LINT", 0},
   1799   1.1    jruoho     ACPI_DMT_TERMINATOR
   1800   1.1    jruoho };
   1801   1.1    jruoho 
   1802   1.1    jruoho /* 5: Address Override */
   1803   1.1    jruoho 
   1804   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt5[] =
   1805   1.1    jruoho {
   1806   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_MADT5_OFFSET (Reserved),               "Reserved", 0},
   1807   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_MADT5_OFFSET (Address),                "APIC Address", 0},
   1808   1.1    jruoho     ACPI_DMT_TERMINATOR
   1809   1.1    jruoho };
   1810   1.1    jruoho 
   1811   1.1    jruoho /* 6: I/O Sapic */
   1812   1.1    jruoho 
   1813   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt6[] =
   1814   1.1    jruoho {
   1815   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT6_OFFSET (Id),                     "I/O Sapic ID", 0},
   1816   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT6_OFFSET (Reserved),               "Reserved", 0},
   1817   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT6_OFFSET (GlobalIrqBase),          "Interrupt Base", 0},
   1818   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_MADT6_OFFSET (Address),                "Address", 0},
   1819   1.1    jruoho     ACPI_DMT_TERMINATOR
   1820   1.1    jruoho };
   1821   1.1    jruoho 
   1822   1.1    jruoho /* 7: Local Sapic */
   1823   1.1    jruoho 
   1824   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt7[] =
   1825   1.1    jruoho {
   1826   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (ProcessorId),            "Processor ID", 0},
   1827   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (Id),                     "Local Sapic ID", 0},
   1828   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT7_OFFSET (Eid),                    "Local Sapic EID", 0},
   1829   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_MADT7_OFFSET (Reserved[0]),            "Reserved", 0},
   1830   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT7_OFFSET (LapicFlags),             "Flags (decoded below)", DT_FLAG},
   1831   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_MADT7_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled", 0},
   1832   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT7_OFFSET (Uid),                    "Processor UID", 0},
   1833   1.1    jruoho     {ACPI_DMT_STRING,   ACPI_MADT7_OFFSET (UidString[0]),           "Processor UID String", 0},
   1834   1.1    jruoho     ACPI_DMT_TERMINATOR
   1835   1.1    jruoho };
   1836   1.1    jruoho 
   1837   1.1    jruoho /* 8: Platform Interrupt Source */
   1838   1.1    jruoho 
   1839   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt8[] =
   1840   1.1    jruoho {
   1841   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_MADT8_OFFSET (IntiFlags),              "Flags (decoded below)", DT_FLAG},
   1842   1.1    jruoho     {ACPI_DMT_FLAGS0,   ACPI_MADT8_FLAG_OFFSET (IntiFlags,0),       "Polarity", 0},
   1843   1.1    jruoho     {ACPI_DMT_FLAGS2,   ACPI_MADT8_FLAG_OFFSET (IntiFlags,0),       "Trigger Mode", 0},
   1844   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Type),                   "InterruptType", 0},
   1845   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Id),                     "Processor ID", 0},
   1846   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (Eid),                    "Processor EID", 0},
   1847   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT8_OFFSET (IoSapicVector),          "I/O Sapic Vector", 0},
   1848   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT8_OFFSET (GlobalIrq),              "Interrupt", 0},
   1849   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT8_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   1850   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_MADT8_OFFSET (Flags),                  "CPEI Override", 0},
   1851   1.1    jruoho     ACPI_DMT_TERMINATOR
   1852   1.1    jruoho };
   1853   1.1    jruoho 
   1854   1.1    jruoho /* 9: Processor Local X2_APIC (ACPI 4.0) */
   1855   1.1    jruoho 
   1856   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt9[] =
   1857   1.1    jruoho {
   1858   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_MADT9_OFFSET (Reserved),               "Reserved", 0},
   1859   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (LocalApicId),            "Processor x2Apic ID", 0},
   1860   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (LapicFlags),             "Flags (decoded below)", DT_FLAG},
   1861   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_MADT9_FLAG_OFFSET (LapicFlags,0),      "Processor Enabled", 0},
   1862   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT9_OFFSET (Uid),                    "Processor UID", 0},
   1863   1.1    jruoho     ACPI_DMT_TERMINATOR
   1864   1.1    jruoho };
   1865   1.1    jruoho 
   1866   1.1    jruoho /* 10: Local X2_APIC NMI (ACPI 4.0) */
   1867   1.1    jruoho 
   1868   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt10[] =
   1869   1.1    jruoho {
   1870   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_MADT10_OFFSET (IntiFlags),             "Flags (decoded below)", DT_FLAG},
   1871   1.1    jruoho     {ACPI_DMT_FLAGS0,   ACPI_MADT10_FLAG_OFFSET (IntiFlags,0),      "Polarity", 0},
   1872   1.1    jruoho     {ACPI_DMT_FLAGS2,   ACPI_MADT10_FLAG_OFFSET (IntiFlags,0),      "Trigger Mode", 0},
   1873   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MADT10_OFFSET (Uid),                   "Processor UID", 0},
   1874   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MADT10_OFFSET (Lint),                  "Interrupt Input LINT", 0},
   1875   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_MADT10_OFFSET (Reserved[0]),           "Reserved", 0},
   1876   1.1    jruoho     ACPI_DMT_TERMINATOR
   1877   1.1    jruoho };
   1878   1.1    jruoho 
   1879   1.5  christos /* 11: Generic Interrupt Controller (ACPI 5.0) */
   1880   1.5  christos 
   1881   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt11[] =
   1882   1.5  christos {
   1883   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MADT11_OFFSET (Reserved),              "Reserved", 0},
   1884   1.6  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (CpuInterfaceNumber),    "CPU Interface Number", 0},
   1885   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (Uid),                   "Processor UID", 0},
   1886   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (Flags),                 "Flags (decoded below)", DT_FLAG},
   1887   1.5  christos     {ACPI_DMT_FLAG0,    ACPI_MADT11_FLAG_OFFSET (Flags,0),          "Processor Enabled", 0},
   1888   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_MADT11_FLAG_OFFSET (Flags,0),          "Performance Interrupt Trigger Mode", 0},
   1889   1.6  christos     {ACPI_DMT_FLAG2,    ACPI_MADT11_FLAG_OFFSET (Flags,0),          "Virtual GIC Interrupt Trigger Mode", 0},
   1890   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (ParkingVersion),        "Parking Protocol Version", 0},
   1891   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (PerformanceInterrupt),  "Performance Interrupt", 0},
   1892   1.5  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (ParkedAddress),         "Parked Address", 0},
   1893   1.5  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (BaseAddress),           "Base Address", 0},
   1894   1.6  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (GicvBaseAddress),       "Virtual GIC Base Address", 0},
   1895   1.6  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (GichBaseAddress),       "Hypervisor GIC Base Address", 0},
   1896   1.6  christos     {ACPI_DMT_UINT32,   ACPI_MADT11_OFFSET (VgicInterrupt),         "Virtual GIC Interrupt", 0},
   1897   1.6  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (GicrBaseAddress),       "Redistributor Base Address", 0},
   1898   1.6  christos     {ACPI_DMT_UINT64,   ACPI_MADT11_OFFSET (ArmMpidr),              "ARM MPIDR", 0},
   1899   1.8  christos     {ACPI_DMT_UINT8,    ACPI_MADT11_OFFSET (EfficiencyClass),       "Efficiency Class", 0},
   1900   1.8  christos     {ACPI_DMT_UINT24,   ACPI_MADT11_OFFSET (Reserved2[0]),          "Reserved", 0},
   1901   1.5  christos     ACPI_DMT_TERMINATOR
   1902   1.5  christos };
   1903   1.5  christos 
   1904   1.5  christos /* 12: Generic Interrupt Distributor (ACPI 5.0) */
   1905   1.5  christos 
   1906   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt12[] =
   1907   1.5  christos {
   1908   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MADT12_OFFSET (Reserved),              "Reserved", 0},
   1909   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MADT12_OFFSET (GicId),                 "Local GIC Hardware ID", 0},
   1910   1.5  christos     {ACPI_DMT_UINT64,   ACPI_MADT12_OFFSET (BaseAddress),           "Base Address", 0},
   1911   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MADT12_OFFSET (GlobalIrqBase),         "Interrupt Base", 0},
   1912   1.8  christos     {ACPI_DMT_UINT8,    ACPI_MADT12_OFFSET (Version),               "Version", 0},
   1913   1.8  christos     {ACPI_DMT_UINT24,   ACPI_MADT12_OFFSET (Reserved2[0]),          "Reserved", 0},
   1914   1.5  christos    ACPI_DMT_TERMINATOR
   1915   1.5  christos };
   1916   1.5  christos 
   1917   1.6  christos /* 13: Generic MSI Frame (ACPI 5.1) */
   1918   1.6  christos 
   1919   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt13[] =
   1920   1.6  christos {
   1921   1.6  christos     {ACPI_DMT_UINT16,   ACPI_MADT13_OFFSET (Reserved),              "Reserved", 0},
   1922   1.6  christos     {ACPI_DMT_UINT32,   ACPI_MADT13_OFFSET (MsiFrameId),            "MSI Frame ID", 0},
   1923   1.6  christos     {ACPI_DMT_UINT64,   ACPI_MADT13_OFFSET (BaseAddress),           "Base Address", 0},
   1924   1.6  christos     {ACPI_DMT_UINT32,   ACPI_MADT13_OFFSET (Flags),                 "Flags (decoded below)", DT_FLAG},
   1925   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_MADT13_FLAG_OFFSET (Flags,0),          "Select SPI", 0},
   1926   1.6  christos     {ACPI_DMT_UINT16,   ACPI_MADT13_OFFSET (SpiCount),              "SPI Count", 0},
   1927   1.6  christos     {ACPI_DMT_UINT16,   ACPI_MADT13_OFFSET (SpiBase),               "SPI Base", 0},
   1928   1.6  christos    ACPI_DMT_TERMINATOR
   1929   1.6  christos };
   1930   1.6  christos 
   1931   1.6  christos /* 14: Generic Redistributor (ACPI 5.1) */
   1932   1.6  christos 
   1933   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt14[] =
   1934   1.6  christos {
   1935   1.6  christos     {ACPI_DMT_UINT16,   ACPI_MADT14_OFFSET (Reserved),              "Reserved", 0},
   1936   1.6  christos     {ACPI_DMT_UINT64,   ACPI_MADT14_OFFSET (BaseAddress),           "Base Address", 0},
   1937   1.6  christos     {ACPI_DMT_UINT32,   ACPI_MADT14_OFFSET (Length),                "Length", 0},
   1938   1.6  christos    ACPI_DMT_TERMINATOR
   1939   1.6  christos };
   1940   1.6  christos 
   1941   1.8  christos /* 15: Generic Translator (ACPI 6.0) */
   1942   1.8  christos 
   1943   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMadt15[] =
   1944   1.8  christos {
   1945   1.8  christos     {ACPI_DMT_UINT16,   ACPI_MADT15_OFFSET (Reserved),              "Reserved", 0},
   1946   1.8  christos     {ACPI_DMT_UINT32,   ACPI_MADT15_OFFSET (TranslationId),         "Translation ID", 0},
   1947   1.8  christos     {ACPI_DMT_UINT64,   ACPI_MADT15_OFFSET (BaseAddress),           "Base Address", 0},
   1948   1.8  christos     {ACPI_DMT_UINT32,   ACPI_MADT15_OFFSET (Reserved2),             "Reserved", 0},
   1949   1.8  christos    ACPI_DMT_TERMINATOR
   1950   1.8  christos };
   1951   1.1    jruoho 
   1952   1.1    jruoho /*******************************************************************************
   1953   1.1    jruoho  *
   1954   1.1    jruoho  * MCFG - PCI Memory Mapped Configuration table and Subtable
   1955   1.1    jruoho  *
   1956   1.1    jruoho  ******************************************************************************/
   1957   1.1    jruoho 
   1958   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMcfg[] =
   1959   1.1    jruoho {
   1960   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_MCFG_OFFSET (Reserved[0]),             "Reserved", 0},
   1961   1.1    jruoho     ACPI_DMT_TERMINATOR
   1962   1.1    jruoho };
   1963   1.1    jruoho 
   1964   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMcfg0[] =
   1965   1.1    jruoho {
   1966   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_MCFG0_OFFSET (Address),                "Base Address", 0},
   1967   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_MCFG0_OFFSET (PciSegment),             "Segment Group Number", 0},
   1968   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCFG0_OFFSET (StartBusNumber),         "Start Bus Number", 0},
   1969   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCFG0_OFFSET (EndBusNumber),           "End Bus Number", 0},
   1970   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MCFG0_OFFSET (Reserved),               "Reserved", 0},
   1971   1.1    jruoho     ACPI_DMT_TERMINATOR
   1972   1.1    jruoho };
   1973   1.1    jruoho 
   1974   1.1    jruoho 
   1975   1.1    jruoho /*******************************************************************************
   1976   1.1    jruoho  *
   1977   1.1    jruoho  * MCHI - Management Controller Host Interface table
   1978   1.1    jruoho  *
   1979   1.1    jruoho  ******************************************************************************/
   1980   1.1    jruoho 
   1981   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMchi[] =
   1982   1.1    jruoho {
   1983   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (InterfaceType),           "Interface Type", 0},
   1984   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (Protocol),                "Protocol", 0},
   1985   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_MCHI_OFFSET (ProtocolData),            "Protocol Data", 0},
   1986   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (InterruptType),           "Interrupt Type", 0},
   1987   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (Gpe),                     "Gpe", 0},
   1988   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciDeviceFlag),           "Pci Device Flag", 0},
   1989   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MCHI_OFFSET (GlobalInterrupt),         "Global Interrupt", 0},
   1990   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_MCHI_OFFSET (ControlRegister),         "Control Register", 0},
   1991   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciSegment),              "Pci Segment", 0},
   1992   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciBus),                  "Pci Bus", 0},
   1993   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciDevice),               "Pci Device", 0},
   1994   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MCHI_OFFSET (PciFunction),             "Pci Function", 0},
   1995   1.1    jruoho     ACPI_DMT_TERMINATOR
   1996   1.1    jruoho };
   1997   1.1    jruoho 
   1998   1.1    jruoho 
   1999   1.1    jruoho /*******************************************************************************
   2000   1.1    jruoho  *
   2001   1.5  christos  * MPST - Memory Power State Table
   2002   1.5  christos  *
   2003   1.5  christos  ******************************************************************************/
   2004   1.5  christos 
   2005   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst[] =
   2006   1.5  christos {
   2007   1.5  christos     {ACPI_DMT_UINT8,    ACPI_MPST_OFFSET (ChannelId),               "Channel ID", 0},
   2008   1.5  christos     {ACPI_DMT_UINT24,   ACPI_MPST_OFFSET (Reserved1[0]),            "Reserved", 0},
   2009   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MPST_OFFSET (PowerNodeCount),          "Power Node Count", 0},
   2010   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MPST_OFFSET (Reserved2),               "Reserved", 0},
   2011   1.5  christos     ACPI_DMT_TERMINATOR
   2012   1.5  christos };
   2013   1.5  christos 
   2014   1.5  christos /* MPST subtables */
   2015   1.5  christos 
   2016   1.5  christos /* 0: Memory Power Node Structure */
   2017   1.5  christos 
   2018   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst0[] =
   2019   1.5  christos {
   2020   1.5  christos     {ACPI_DMT_UINT8,    ACPI_MPST0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   2021   1.5  christos     {ACPI_DMT_FLAG0,    ACPI_MPST0_FLAG_OFFSET (Flags,0),           "Node Enabled", 0},
   2022   1.5  christos     {ACPI_DMT_FLAG1,    ACPI_MPST0_FLAG_OFFSET (Flags,0),           "Power Managed", 0},
   2023   1.5  christos     {ACPI_DMT_FLAG2,    ACPI_MPST0_FLAG_OFFSET (Flags,0),           "Hot Plug Capable", 0},
   2024   1.5  christos 
   2025   1.5  christos     {ACPI_DMT_UINT8,    ACPI_MPST0_OFFSET (Reserved1),              "Reserved", 0},
   2026   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MPST0_OFFSET (NodeId),                 "Node ID", 0},
   2027   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MPST0_OFFSET (Length),                 "Length", 0},
   2028   1.5  christos     {ACPI_DMT_UINT64,   ACPI_MPST0_OFFSET (RangeAddress),           "Range Address", 0},
   2029   1.5  christos     {ACPI_DMT_UINT64,   ACPI_MPST0_OFFSET (RangeLength),            "Range Length", 0},
   2030   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MPST0_OFFSET (NumPowerStates),         "Num Power States", 0},
   2031   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MPST0_OFFSET (NumPhysicalComponents),  "Num Physical Components", 0},
   2032   1.5  christos     ACPI_DMT_TERMINATOR
   2033   1.5  christos };
   2034   1.5  christos 
   2035   1.5  christos /* 0A: Sub-subtable - Memory Power State Structure (follows Memory Power Node above) */
   2036   1.5  christos 
   2037   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst0A[] =
   2038   1.5  christos {
   2039   1.5  christos     {ACPI_DMT_UINT8,    ACPI_MPST0A_OFFSET (PowerState),            "Power State", 0},
   2040   1.5  christos     {ACPI_DMT_UINT8,    ACPI_MPST0A_OFFSET (InfoIndex),             "InfoIndex", 0},
   2041   1.5  christos     ACPI_DMT_TERMINATOR
   2042   1.5  christos };
   2043   1.5  christos 
   2044   1.5  christos /* 0B: Sub-subtable - Physical Component ID Structure (follows Memory Power State(s) above) */
   2045   1.5  christos 
   2046   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst0B[] =
   2047   1.5  christos {
   2048   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MPST0B_OFFSET (ComponentId),           "Component Id", 0},
   2049   1.5  christos     ACPI_DMT_TERMINATOR
   2050   1.5  christos };
   2051   1.5  christos 
   2052   1.5  christos /* 01: Power Characteristics Count (follows all Power Node(s) above) */
   2053   1.5  christos 
   2054   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst1[] =
   2055   1.5  christos {
   2056   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MPST1_OFFSET (CharacteristicsCount),   "Characteristics Count", 0},
   2057   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MPST1_OFFSET (Reserved),               "Reserved", 0},
   2058   1.5  christos     ACPI_DMT_TERMINATOR
   2059   1.5  christos };
   2060   1.5  christos 
   2061   1.5  christos /* 02: Memory Power State Characteristics Structure */
   2062   1.5  christos 
   2063   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMpst2[] =
   2064   1.5  christos {
   2065   1.5  christos     {ACPI_DMT_UINT8,    ACPI_MPST2_OFFSET (StructureId),            "Structure ID", 0},
   2066   1.5  christos     {ACPI_DMT_UINT8,    ACPI_MPST2_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   2067   1.5  christos     {ACPI_DMT_FLAG0,    ACPI_MPST2_FLAG_OFFSET (Flags,0),           "Memory Preserved", 0},
   2068   1.5  christos     {ACPI_DMT_FLAG1,    ACPI_MPST2_FLAG_OFFSET (Flags,0),           "Auto Entry", 0},
   2069   1.5  christos     {ACPI_DMT_FLAG2,    ACPI_MPST2_FLAG_OFFSET (Flags,0),           "Auto Exit", 0},
   2070   1.5  christos 
   2071   1.5  christos     {ACPI_DMT_UINT16,   ACPI_MPST2_OFFSET (Reserved1),              "Reserved", 0},
   2072   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MPST2_OFFSET (AveragePower),           "Average Power", 0},
   2073   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MPST2_OFFSET (PowerSaving),            "Power Saving", 0},
   2074   1.5  christos     {ACPI_DMT_UINT64,   ACPI_MPST2_OFFSET (ExitLatency),            "Exit Latency", 0},
   2075   1.5  christos     {ACPI_DMT_UINT64,   ACPI_MPST2_OFFSET (Reserved2),              "Reserved", 0},
   2076   1.5  christos     ACPI_DMT_TERMINATOR
   2077   1.5  christos };
   2078   1.5  christos 
   2079   1.5  christos 
   2080   1.5  christos /*******************************************************************************
   2081   1.5  christos  *
   2082   1.1    jruoho  * MSCT - Maximum System Characteristics Table (ACPI 4.0)
   2083   1.1    jruoho  *
   2084   1.1    jruoho  ******************************************************************************/
   2085   1.1    jruoho 
   2086   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMsct[] =
   2087   1.1    jruoho {
   2088   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MSCT_OFFSET (ProximityOffset),         "Proximity Offset", 0},
   2089   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MSCT_OFFSET (MaxProximityDomains),     "Max Proximity Domains", 0},
   2090   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MSCT_OFFSET (MaxClockDomains),         "Max Clock Domains", 0},
   2091   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_MSCT_OFFSET (MaxAddress),              "Max Physical Address", 0},
   2092   1.1    jruoho     ACPI_DMT_TERMINATOR
   2093   1.1    jruoho };
   2094   1.1    jruoho 
   2095   1.1    jruoho /* Subtable - Maximum Proximity Domain Information. Version 1 */
   2096   1.1    jruoho 
   2097   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoMsct0[] =
   2098   1.1    jruoho {
   2099   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MSCT0_OFFSET (Revision),               "Revision", 0},
   2100   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_MSCT0_OFFSET (Length),                 "Length", DT_LENGTH},
   2101   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MSCT0_OFFSET (RangeStart),             "Domain Range Start", 0},
   2102   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MSCT0_OFFSET (RangeEnd),               "Domain Range End", 0},
   2103   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_MSCT0_OFFSET (ProcessorCapacity),      "Processor Capacity", 0},
   2104   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_MSCT0_OFFSET (MemoryCapacity),         "Memory Capacity", 0},
   2105   1.1    jruoho     ACPI_DMT_TERMINATOR
   2106   1.1    jruoho };
   2107   1.1    jruoho 
   2108   1.1    jruoho 
   2109   1.1    jruoho /*******************************************************************************
   2110   1.1    jruoho  *
   2111   1.5  christos  * MTMR - MID Timer Table
   2112   1.5  christos  *
   2113   1.5  christos  ******************************************************************************/
   2114   1.5  christos 
   2115   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMtmr[] =
   2116   1.5  christos {
   2117   1.5  christos     ACPI_DMT_TERMINATOR
   2118   1.5  christos };
   2119   1.5  christos 
   2120   1.5  christos /* MTMR Subtables - MTMR Entry */
   2121   1.5  christos 
   2122   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoMtmr0[] =
   2123   1.5  christos {
   2124   1.5  christos     {ACPI_DMT_GAS,      ACPI_MTMR0_OFFSET (PhysicalAddress),        "PhysicalAddress", 0},
   2125   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MTMR0_OFFSET (Frequency),              "Frequency", 0},
   2126   1.5  christos     {ACPI_DMT_UINT32,   ACPI_MTMR0_OFFSET (Irq),                    "IRQ", 0},
   2127   1.5  christos     ACPI_DMT_TERMINATOR
   2128   1.5  christos };
   2129   1.5  christos 
   2130   1.5  christos 
   2131   1.5  christos /*******************************************************************************
   2132   1.5  christos  *
   2133   1.8  christos  * NFIT - NVDIMM Firmware Interface Table and Subtables - (ACPI 6.0)
   2134   1.8  christos  *
   2135   1.8  christos  ******************************************************************************/
   2136   1.8  christos 
   2137   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit[] =
   2138   1.8  christos {
   2139   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT_OFFSET (Reserved),                "Reserved", 0},
   2140   1.8  christos     ACPI_DMT_TERMINATOR
   2141   1.8  christos };
   2142   1.8  christos 
   2143   1.8  christos /* Common Subtable header */
   2144   1.8  christos 
   2145   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfitHdr[] =
   2146   1.8  christos {
   2147   1.8  christos     {ACPI_DMT_NFIT,     ACPI_NFITH_OFFSET (Type),                   "Subtable Type", 0},
   2148   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFITH_OFFSET (Length),                 "Length", DT_LENGTH},
   2149   1.8  christos     ACPI_DMT_TERMINATOR
   2150   1.8  christos };
   2151   1.8  christos 
   2152   1.8  christos /* 0: System Physical Address Range Structure */
   2153   1.8  christos 
   2154   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit0[] =
   2155   1.8  christos {
   2156   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT0_OFFSET (RangeIndex),             "Range Index", 0},
   2157   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   2158   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_NFIT0_FLAG_OFFSET (Flags,0),           "Add/Online Operation Only", 0},
   2159   1.8  christos     {ACPI_DMT_FLAG1,    ACPI_NFIT0_FLAG_OFFSET (Flags,0),           "Proximity Domain Valid", 0},
   2160   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT0_OFFSET (Reserved),               "Reserved", 0},
   2161   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT0_OFFSET (ProximityDomain),        "Proximity Domain", 0},
   2162   1.8  christos     {ACPI_DMT_UUID,     ACPI_NFIT0_OFFSET (RangeGuid[0]),           "Address Range GUID", 0},
   2163   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT0_OFFSET (Address),                "Address Range Base", 0},
   2164   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT0_OFFSET (Length),                 "Address Range Length", 0},
   2165   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT0_OFFSET (MemoryMapping),          "Memory Map Attribute", 0},
   2166   1.8  christos     ACPI_DMT_TERMINATOR
   2167   1.8  christos };
   2168   1.8  christos 
   2169   1.8  christos /* 1: Memory Device to System Address Range Map Structure */
   2170   1.8  christos 
   2171   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit1[] =
   2172   1.8  christos {
   2173   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT1_OFFSET (DeviceHandle),           "Device Handle", 0},
   2174   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (PhysicalId),             "Physical Id", 0},
   2175   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (RegionId),               "Region Id", 0},
   2176   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (RangeIndex),             "Range Index", 0},
   2177   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (RegionIndex),            "Control Region Index", 0},
   2178   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT1_OFFSET (RegionSize),             "Region Size", 0},
   2179   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT1_OFFSET (RegionOffset),           "Region Offset", 0},
   2180   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT1_OFFSET (Address),                "Address Region Base", 0},
   2181   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (InterleaveIndex),        "Interleave Index", 0},
   2182   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (InterleaveWays),         "Interleave Ways", 0},
   2183   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (Flags),                  "Flags", DT_FLAG},
   2184   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Save to device failed", 0},
   2185   1.8  christos     {ACPI_DMT_FLAG1,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Restore from device failed", 0},
   2186   1.8  christos     {ACPI_DMT_FLAG2,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Platform flush failed", 0},
   2187   1.8  christos     {ACPI_DMT_FLAG3,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Device not armed", 0},
   2188   1.8  christos     {ACPI_DMT_FLAG4,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Health events observed", 0},
   2189   1.8  christos     {ACPI_DMT_FLAG5,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Health events enabled", 0},
   2190  1.10  christos     {ACPI_DMT_FLAG6,    ACPI_NFIT1_FLAG_OFFSET (Flags,0),           "Mapping failed", 0},
   2191   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT1_OFFSET (Reserved),               "Reserved", 0},
   2192   1.8  christos     ACPI_DMT_TERMINATOR
   2193   1.8  christos };
   2194   1.8  christos 
   2195   1.8  christos /* 2: Interleave Structure */
   2196   1.8  christos 
   2197   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit2[] =
   2198   1.8  christos {
   2199   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT2_OFFSET (InterleaveIndex),        "Interleave Index", 0},
   2200   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT2_OFFSET (Reserved),               "Reserved", 0},
   2201   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT2_OFFSET (LineCount),              "Line Count", 0},
   2202   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT2_OFFSET (LineSize),               "Line Size", 0},
   2203   1.8  christos     ACPI_DMT_TERMINATOR
   2204   1.8  christos };
   2205   1.8  christos 
   2206   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit2a[] =
   2207   1.8  christos {
   2208   1.8  christos     {ACPI_DMT_UINT32,   0,                                          "Line Offset", DT_OPTIONAL},
   2209   1.8  christos     ACPI_DMT_TERMINATOR
   2210   1.8  christos };
   2211   1.8  christos 
   2212   1.8  christos /* 3: SMBIOS Management Information Structure */
   2213   1.8  christos 
   2214   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit3[] =
   2215   1.8  christos {
   2216   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT3_OFFSET (Reserved),               "Reserved", 0},
   2217   1.8  christos     ACPI_DMT_TERMINATOR
   2218   1.8  christos };
   2219   1.8  christos 
   2220   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit3a[] =
   2221   1.8  christos {
   2222   1.8  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "SMBIOS Table Entries", DT_OPTIONAL},
   2223   1.8  christos     ACPI_DMT_TERMINATOR
   2224   1.8  christos };
   2225   1.8  christos 
   2226   1.8  christos /* 4: NVDIMM Control Region Structure */
   2227   1.8  christos 
   2228   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit4[] =
   2229   1.8  christos {
   2230   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (RegionIndex),            "Region Index", 0},
   2231   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (VendorId),               "Vendor Id", 0},
   2232   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (DeviceId),               "Device Id", 0},
   2233   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (RevisionId),             "Revision Id", 0},
   2234   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (SubsystemVendorId),      "Subsystem Vendor Id", 0},
   2235   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (SubsystemDeviceId),      "Subsystem Device Id", 0},
   2236   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (SubsystemRevisionId),    "Subsystem Revision Id", 0},
   2237  1.10  christos     {ACPI_DMT_UINT8,    ACPI_NFIT4_OFFSET (ValidFields),            "Valid Fields", 0},
   2238  1.10  christos     {ACPI_DMT_UINT8,    ACPI_NFIT4_OFFSET (ManufacturingLocation),  "Manufacturing Location", 0},
   2239  1.10  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (ManufacturingDate),      "Manufacturing Date", 0},
   2240  1.10  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (Reserved[0]),            "Reserved", 0},
   2241   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT4_OFFSET (SerialNumber),           "Serial Number", 0},
   2242   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (Code),                   "Code", 0},
   2243   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (Windows),                "Window Count", 0},
   2244   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (WindowSize),             "Window Size", 0},
   2245   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (CommandOffset),          "Command Offset", 0},
   2246   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (CommandSize),            "Command Size", 0},
   2247   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (StatusOffset),           "Status Offset", 0},
   2248   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT4_OFFSET (StatusSize),             "Status Size", 0},
   2249   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT4_OFFSET (Flags),                  "Flags", DT_FLAG},
   2250   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_NFIT4_FLAG_OFFSET (Flags,0),           "Windows buffered", 0},
   2251   1.8  christos     {ACPI_DMT_UINT48,   ACPI_NFIT4_OFFSET (Reserved1[0]),           "Reserved1", 0},
   2252   1.8  christos     ACPI_DMT_TERMINATOR
   2253   1.8  christos };
   2254   1.8  christos 
   2255   1.8  christos /* 5: NVDIMM Block Data Window Region Structure */
   2256   1.8  christos 
   2257   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit5[] =
   2258   1.8  christos {
   2259   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT5_OFFSET (RegionIndex),            "Region Index", 0},
   2260   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT5_OFFSET (Windows),                "Window Count", 0},
   2261   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT5_OFFSET (Offset),                 "Offset", 0},
   2262   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT5_OFFSET (Size),                   "Size", 0},
   2263   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT5_OFFSET (Capacity),               "Capacity", 0},
   2264   1.8  christos     {ACPI_DMT_UINT64,   ACPI_NFIT5_OFFSET (StartAddress),           "Start Address", 0},
   2265   1.8  christos     ACPI_DMT_TERMINATOR
   2266   1.8  christos };
   2267   1.8  christos 
   2268   1.8  christos /* 6: Flush Hint Address Structure */
   2269   1.8  christos 
   2270   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit6[] =
   2271   1.8  christos {
   2272   1.8  christos     {ACPI_DMT_UINT32,   ACPI_NFIT6_OFFSET (DeviceHandle),           "Device Handle", 0},
   2273   1.8  christos     {ACPI_DMT_UINT16,   ACPI_NFIT6_OFFSET (HintCount),              "Hint Count", 0},
   2274   1.8  christos     {ACPI_DMT_UINT48,   ACPI_NFIT6_OFFSET (Reserved[0]),            "Reserved", 0},
   2275   1.8  christos     ACPI_DMT_TERMINATOR
   2276   1.8  christos };
   2277   1.8  christos 
   2278   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoNfit6a[] =
   2279   1.8  christos {
   2280   1.8  christos     {ACPI_DMT_UINT64,   0,                                          "Hint Address", DT_OPTIONAL},
   2281   1.8  christos     ACPI_DMT_TERMINATOR
   2282   1.8  christos };
   2283   1.8  christos 
   2284   1.8  christos 
   2285   1.8  christos /*******************************************************************************
   2286   1.8  christos  *
   2287   1.5  christos  * PCCT - Platform Communications Channel Table (ACPI 5.0)
   2288   1.5  christos  *
   2289   1.5  christos  ******************************************************************************/
   2290   1.5  christos 
   2291   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct[] =
   2292   1.5  christos {
   2293   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PCCT_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
   2294   1.5  christos     {ACPI_DMT_FLAG0,    ACPI_PCCT_FLAG_OFFSET (Flags,0),            "Doorbell", 0},
   2295   1.5  christos     {ACPI_DMT_UINT64,   ACPI_PCCT_OFFSET (Reserved),                "Reserved", 0},
   2296   1.5  christos     ACPI_DMT_TERMINATOR
   2297   1.5  christos };
   2298   1.5  christos 
   2299   1.5  christos /* PCCT subtables */
   2300   1.5  christos 
   2301   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcctHdr[] =
   2302   1.5  christos {
   2303   1.5  christos     {ACPI_DMT_PCCT,     ACPI_PCCT0_OFFSET (Header.Type),            "Subtable Type", 0},
   2304   1.5  christos     {ACPI_DMT_UINT8,    ACPI_PCCT0_OFFSET (Header.Length),          "Length", DT_LENGTH},
   2305   1.5  christos     ACPI_DMT_TERMINATOR
   2306   1.5  christos };
   2307   1.5  christos 
   2308   1.5  christos /* 0: Generic Communications Subspace */
   2309   1.5  christos 
   2310   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct0[] =
   2311   1.5  christos {
   2312   1.5  christos     {ACPI_DMT_UINT48,   ACPI_PCCT0_OFFSET (Reserved[0]),            "Reserved", 0},
   2313   1.5  christos     {ACPI_DMT_UINT64,   ACPI_PCCT0_OFFSET (BaseAddress),            "Base Address", 0},
   2314   1.5  christos     {ACPI_DMT_UINT64,   ACPI_PCCT0_OFFSET (Length),                 "Address Length", 0},
   2315   1.5  christos     {ACPI_DMT_GAS,      ACPI_PCCT0_OFFSET (DoorbellRegister),       "Doorbell Register", 0},
   2316   1.5  christos     {ACPI_DMT_UINT64,   ACPI_PCCT0_OFFSET (PreserveMask),           "Preserve Mask", 0},
   2317   1.5  christos     {ACPI_DMT_UINT64,   ACPI_PCCT0_OFFSET (WriteMask),              "Write Mask", 0},
   2318   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PCCT0_OFFSET (Latency),                "Command Latency", 0},
   2319   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PCCT0_OFFSET (MaxAccessRate),          "Maximum Access Rate", 0},
   2320   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PCCT0_OFFSET (MinTurnaroundTime),      "Minimum Turnaround Time", 0},
   2321   1.5  christos     ACPI_DMT_TERMINATOR
   2322   1.5  christos };
   2323   1.5  christos 
   2324   1.6  christos /* 1: HW-reduced Communications Subspace (ACPI 5.1) */
   2325   1.6  christos 
   2326   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct1[] =
   2327   1.6  christos {
   2328   1.6  christos     {ACPI_DMT_UINT32,   ACPI_PCCT1_OFFSET (DoorbellInterrupt),      "Doorbell Interrupt", 0},
   2329   1.6  christos     {ACPI_DMT_UINT8,    ACPI_PCCT1_OFFSET (Flags),                  "Flags (Decoded Below)", DT_FLAG},
   2330   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_PCCT1_FLAG_OFFSET (Flags,0),           "Polarity", 0},
   2331   1.6  christos     {ACPI_DMT_FLAG1,    ACPI_PCCT1_FLAG_OFFSET (Flags,0),           "Mode", 0},
   2332   1.6  christos     {ACPI_DMT_UINT8,    ACPI_PCCT1_OFFSET (Reserved),               "Reserved", 0},
   2333   1.6  christos     {ACPI_DMT_UINT64,   ACPI_PCCT1_OFFSET (BaseAddress),            "Base Address", 0},
   2334   1.6  christos     {ACPI_DMT_UINT64,   ACPI_PCCT1_OFFSET (Length),                 "Address Length", 0},
   2335   1.6  christos     {ACPI_DMT_GAS,      ACPI_PCCT1_OFFSET (DoorbellRegister),       "Doorbell Register", 0},
   2336   1.6  christos     {ACPI_DMT_UINT64,   ACPI_PCCT1_OFFSET (PreserveMask),           "Preserve Mask", 0},
   2337   1.6  christos     {ACPI_DMT_UINT64,   ACPI_PCCT1_OFFSET (WriteMask),              "Write Mask", 0},
   2338   1.6  christos     {ACPI_DMT_UINT32,   ACPI_PCCT1_OFFSET (Latency),                "Command Latency", 0},
   2339   1.6  christos     {ACPI_DMT_UINT32,   ACPI_PCCT1_OFFSET (MaxAccessRate),          "Maximum Access Rate", 0},
   2340   1.6  christos     {ACPI_DMT_UINT16,   ACPI_PCCT1_OFFSET (MinTurnaroundTime),      "Minimum Turnaround Time", 0},
   2341   1.6  christos     ACPI_DMT_TERMINATOR
   2342   1.6  christos };
   2343   1.6  christos 
   2344  1.10  christos /* 2: HW-reduced Communications Subspace Type 2 (ACPI 6.1) */
   2345  1.10  christos 
   2346  1.10  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPcct2[] =
   2347  1.10  christos {
   2348  1.10  christos     {ACPI_DMT_UINT32,   ACPI_PCCT2_OFFSET (DoorbellInterrupt),      "Doorbell Interrupt", 0},
   2349  1.10  christos     {ACPI_DMT_UINT8,    ACPI_PCCT2_OFFSET (Flags),                  "Flags (Decoded Below)", DT_FLAG},
   2350  1.10  christos     {ACPI_DMT_FLAG0,    ACPI_PCCT2_FLAG_OFFSET (Flags,0),           "Polarity", 0},
   2351  1.10  christos     {ACPI_DMT_FLAG1,    ACPI_PCCT2_FLAG_OFFSET (Flags,0),           "Mode", 0},
   2352  1.10  christos     {ACPI_DMT_UINT8,    ACPI_PCCT2_OFFSET (Reserved),               "Reserved", 0},
   2353  1.10  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (BaseAddress),            "Base Address", 0},
   2354  1.10  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (Length),                 "Address Length", 0},
   2355  1.10  christos     {ACPI_DMT_GAS,      ACPI_PCCT2_OFFSET (DoorbellRegister),       "Doorbell Register", 0},
   2356  1.10  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (PreserveMask),           "Preserve Mask", 0},
   2357  1.10  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (WriteMask),              "Write Mask", 0},
   2358  1.10  christos     {ACPI_DMT_UINT32,   ACPI_PCCT2_OFFSET (Latency),                "Command Latency", 0},
   2359  1.10  christos     {ACPI_DMT_UINT32,   ACPI_PCCT2_OFFSET (MaxAccessRate),          "Maximum Access Rate", 0},
   2360  1.10  christos     {ACPI_DMT_UINT16,   ACPI_PCCT2_OFFSET (MinTurnaroundTime),      "Minimum Turnaround Time", 0},
   2361  1.10  christos     {ACPI_DMT_GAS,      ACPI_PCCT2_OFFSET (DoorbellAckRegister),    "Doorbell ACK Register", 0},
   2362  1.10  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (AckPreserveMask),        "ACK Preserve Mask", 0},
   2363  1.10  christos     {ACPI_DMT_UINT64,   ACPI_PCCT2_OFFSET (AckWriteMask),           "ACK Write Mask", 0},
   2364  1.10  christos     ACPI_DMT_TERMINATOR
   2365  1.10  christos };
   2366  1.10  christos 
   2367   1.5  christos 
   2368   1.5  christos /*******************************************************************************
   2369   1.5  christos  *
   2370   1.5  christos  * PMTT - Platform Memory Topology Table
   2371   1.5  christos  *
   2372   1.5  christos  ******************************************************************************/
   2373   1.5  christos 
   2374   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt[] =
   2375   1.5  christos {
   2376   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PMTT_OFFSET (Reserved),                "Reserved", 0},
   2377   1.5  christos     ACPI_DMT_TERMINATOR
   2378   1.5  christos };
   2379   1.5  christos 
   2380   1.5  christos /* Common Subtable header (one per Subtable) */
   2381   1.5  christos 
   2382   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmttHdr[] =
   2383   1.5  christos {
   2384   1.5  christos     {ACPI_DMT_PMTT,     ACPI_PMTTH_OFFSET (Type),                   "Subtable Type", 0},
   2385   1.5  christos     {ACPI_DMT_UINT8,    ACPI_PMTTH_OFFSET (Reserved1),              "Reserved", 0},
   2386   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTTH_OFFSET (Length),                 "Length", DT_LENGTH},
   2387   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTTH_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   2388   1.5  christos     {ACPI_DMT_FLAG0,    ACPI_PMTTH_FLAG_OFFSET (Flags,0),           "Top-level Device", 0},
   2389   1.5  christos     {ACPI_DMT_FLAG1,    ACPI_PMTTH_FLAG_OFFSET (Flags,0),           "Physical Element", 0},
   2390   1.5  christos     {ACPI_DMT_FLAGS2,   ACPI_PMTTH_FLAG_OFFSET (Flags,0),           "Memory Type", 0},
   2391   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTTH_OFFSET (Reserved2),              "Reserved", 0},
   2392   1.5  christos     ACPI_DMT_TERMINATOR
   2393   1.5  christos };
   2394   1.5  christos 
   2395   1.5  christos /* PMTT Subtables */
   2396   1.5  christos 
   2397   1.5  christos /* 0: Socket */
   2398   1.5  christos 
   2399   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt0[] =
   2400   1.5  christos {
   2401   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTT0_OFFSET (SocketId),               "Socket ID", 0},
   2402   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTT0_OFFSET (Reserved),               "Reserved", 0},
   2403   1.5  christos     ACPI_DMT_TERMINATOR
   2404   1.5  christos };
   2405   1.5  christos 
   2406   1.5  christos /* 1: Memory Controller */
   2407   1.5  christos 
   2408   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt1[] =
   2409   1.5  christos {
   2410   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1_OFFSET (ReadLatency),            "Read Latency", 0},
   2411   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1_OFFSET (WriteLatency),           "Write Latency", 0},
   2412   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1_OFFSET (ReadBandwidth),          "Read Bandwidth", 0},
   2413   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1_OFFSET (WriteBandwidth),         "Write Bandwidth", 0},
   2414   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTT1_OFFSET (AccessWidth),            "Access Width", 0},
   2415   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTT1_OFFSET (Alignment),              "Alignment", 0},
   2416   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTT1_OFFSET (Reserved),               "Reserved", 0},
   2417   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTT1_OFFSET (DomainCount),            "Domain Count", 0},
   2418   1.5  christos     ACPI_DMT_TERMINATOR
   2419   1.5  christos };
   2420   1.5  christos 
   2421   1.5  christos /* 1a: Proximity Domain */
   2422   1.5  christos 
   2423   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt1a[] =
   2424   1.5  christos {
   2425   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PMTT1A_OFFSET (ProximityDomain),       "Proximity Domain", 0},
   2426   1.5  christos     ACPI_DMT_TERMINATOR
   2427   1.5  christos };
   2428   1.5  christos 
   2429   1.5  christos /* 2: Physical Component */
   2430   1.5  christos 
   2431   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoPmtt2[] =
   2432   1.5  christos {
   2433   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTT2_OFFSET (ComponentId),            "Component ID", 0},
   2434   1.5  christos     {ACPI_DMT_UINT16,   ACPI_PMTT2_OFFSET (Reserved),               "Reserved", 0},
   2435   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PMTT2_OFFSET (MemorySize),             "Memory Size", 0},
   2436   1.5  christos     {ACPI_DMT_UINT32,   ACPI_PMTT2_OFFSET (BiosHandle),             "Bios Handle", 0},
   2437   1.5  christos     ACPI_DMT_TERMINATOR
   2438   1.5  christos };
   2439   1.5  christos 
   2440   1.5  christos 
   2441   1.5  christos /*******************************************************************************
   2442   1.5  christos  *
   2443   1.5  christos  * S3PT - S3 Performance Table
   2444   1.5  christos  *
   2445   1.5  christos  ******************************************************************************/
   2446   1.5  christos 
   2447   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoS3pt[] =
   2448   1.5  christos {
   2449   1.5  christos     {ACPI_DMT_SIG,     ACPI_S3PT_OFFSET (Signature[0]),             "Signature", 0},
   2450   1.5  christos     {ACPI_DMT_UINT32,  ACPI_S3PT_OFFSET (Length),                   "Length", DT_LENGTH},
   2451   1.5  christos     ACPI_DMT_TERMINATOR
   2452   1.5  christos };
   2453   1.5  christos 
   2454   1.5  christos /* S3PT subtable header */
   2455   1.5  christos 
   2456   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoS3ptHdr[] =
   2457   1.5  christos {
   2458   1.5  christos     {ACPI_DMT_UINT16,  ACPI_S3PTH_OFFSET (Type),                    "Type", 0},
   2459   1.5  christos     {ACPI_DMT_UINT8,   ACPI_S3PTH_OFFSET (Length),                  "Length", DT_LENGTH},
   2460   1.5  christos     {ACPI_DMT_UINT8,   ACPI_S3PTH_OFFSET (Revision),                "Revision", 0},
   2461   1.5  christos     ACPI_DMT_TERMINATOR
   2462   1.5  christos };
   2463   1.5  christos 
   2464   1.5  christos /* 0: Basic S3 Resume Performance Record */
   2465   1.5  christos 
   2466   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoS3pt0[] =
   2467   1.5  christos {
   2468   1.5  christos     {ACPI_DMT_UINT32,  ACPI_S3PT0_OFFSET (ResumeCount),             "Resume Count", 0},
   2469   1.5  christos     {ACPI_DMT_UINT64,  ACPI_S3PT0_OFFSET (FullResume),              "Full Resume", 0},
   2470   1.5  christos     {ACPI_DMT_UINT64,  ACPI_S3PT0_OFFSET (AverageResume),           "Average Resume", 0},
   2471   1.5  christos     ACPI_DMT_TERMINATOR
   2472   1.5  christos };
   2473   1.5  christos 
   2474   1.5  christos /* 1: Basic S3 Suspend Performance Record */
   2475   1.5  christos 
   2476   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoS3pt1[] =
   2477   1.5  christos {
   2478   1.5  christos     {ACPI_DMT_UINT64,  ACPI_S3PT1_OFFSET (SuspendStart),            "Suspend Start", 0},
   2479   1.5  christos     {ACPI_DMT_UINT64,  ACPI_S3PT1_OFFSET (SuspendEnd),              "Suspend End", 0},
   2480   1.5  christos     ACPI_DMT_TERMINATOR
   2481   1.5  christos };
   2482   1.5  christos 
   2483   1.5  christos 
   2484   1.5  christos /*******************************************************************************
   2485   1.5  christos  *
   2486   1.1    jruoho  * SBST - Smart Battery Specification Table
   2487   1.1    jruoho  *
   2488   1.1    jruoho  ******************************************************************************/
   2489   1.1    jruoho 
   2490   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSbst[] =
   2491   1.1    jruoho {
   2492   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (WarningLevel),            "Warning Level", 0},
   2493   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (LowLevel),                "Low Level", 0},
   2494   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SBST_OFFSET (CriticalLevel),           "Critical Level", 0},
   2495   1.1    jruoho     ACPI_DMT_TERMINATOR
   2496   1.1    jruoho };
   2497   1.1    jruoho 
   2498   1.1    jruoho 
   2499   1.1    jruoho /*******************************************************************************
   2500   1.1    jruoho  *
   2501   1.7  christos  * SLIC - Software Licensing Description Table. This table contains the standard
   2502   1.7  christos  * ACPI header followed by proprietary data structures
   2503   1.1    jruoho  *
   2504   1.1    jruoho  ******************************************************************************/
   2505   1.1    jruoho 
   2506   1.7  christos /* Single subtable, a proprietary format, so treat it as a buffer */
   2507   1.4    jruoho 
   2508   1.7  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSlic[] =
   2509   1.1    jruoho {
   2510   1.7  christos     {ACPI_DMT_RAW_BUFFER, 0,                                        "Software Licensing Structure", 0},
   2511   1.1    jruoho     ACPI_DMT_TERMINATOR
   2512   1.1    jruoho };
   2513   1.1    jruoho 
   2514   1.1    jruoho 
   2515   1.1    jruoho /*******************************************************************************
   2516   1.1    jruoho  *
   2517   1.1    jruoho  * SLIT - System Locality Information Table
   2518   1.1    jruoho  *
   2519   1.1    jruoho  ******************************************************************************/
   2520   1.1    jruoho 
   2521   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSlit[] =
   2522   1.1    jruoho {
   2523   1.7  christos     {ACPI_DMT_UINT64,   ACPI_SLIT_OFFSET (LocalityCount),           "Localities", 0},
   2524   1.1    jruoho     ACPI_DMT_TERMINATOR
   2525   1.1    jruoho };
   2526   1.1    jruoho 
   2527   1.1    jruoho 
   2528   1.1    jruoho /*******************************************************************************
   2529   1.1    jruoho  *
   2530   1.1    jruoho  * SPCR - Serial Port Console Redirection table
   2531   1.1    jruoho  *
   2532   1.1    jruoho  ******************************************************************************/
   2533   1.1    jruoho 
   2534   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSpcr[] =
   2535   1.1    jruoho {
   2536   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (InterfaceType),           "Interface Type", 0},
   2537   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_SPCR_OFFSET (Reserved[0]),             "Reserved", 0},
   2538   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_SPCR_OFFSET (SerialPort),              "Serial Port Register", 0},
   2539   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (InterruptType),           "Interrupt Type", 0},
   2540   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PcInterrupt),             "PCAT-compatible IRQ", 0},
   2541   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SPCR_OFFSET (Interrupt),               "Interrupt", 0},
   2542   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (BaudRate),                "Baud Rate", 0},
   2543   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (Parity),                  "Parity", 0},
   2544   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (StopBits),                "Stop Bits", 0},
   2545   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (FlowControl),             "Flow Control", 0},
   2546   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (TerminalType),            "Terminal Type", 0},
   2547   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (Reserved2),               "Reserved", 0},
   2548   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_SPCR_OFFSET (PciDeviceId),             "PCI Device ID", 0},
   2549   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_SPCR_OFFSET (PciVendorId),             "PCI Vendor ID", 0},
   2550   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PciBus),                  "PCI Bus", 0},
   2551   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PciDevice),               "PCI Device", 0},
   2552   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PciFunction),             "PCI Function", 0},
   2553   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SPCR_OFFSET (PciFlags),                "PCI Flags", 0},
   2554   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPCR_OFFSET (PciSegment),              "PCI Segment", 0},
   2555   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SPCR_OFFSET (Reserved2),               "Reserved", 0},
   2556   1.1    jruoho     ACPI_DMT_TERMINATOR
   2557   1.1    jruoho };
   2558   1.1    jruoho 
   2559   1.1    jruoho 
   2560   1.1    jruoho /*******************************************************************************
   2561   1.1    jruoho  *
   2562   1.1    jruoho  * SPMI - Server Platform Management Interface table
   2563   1.1    jruoho  *
   2564   1.1    jruoho  ******************************************************************************/
   2565   1.1    jruoho 
   2566   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSpmi[] =
   2567   1.1    jruoho {
   2568   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (InterfaceType),           "Interface Type", 0},
   2569   1.6  christos     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (Reserved),                "Reserved", DT_NON_ZERO}, /* Value must be 1 */
   2570   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_SPMI_OFFSET (SpecRevision),            "IPMI Spec Version", 0},
   2571   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (InterruptType),           "Interrupt Type", 0},
   2572   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (GpeNumber),               "GPE Number", 0},
   2573   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (Reserved1),               "Reserved", 0},
   2574   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciDeviceFlag),           "PCI Device Flag", 0},
   2575   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SPMI_OFFSET (Interrupt),               "Interrupt", 0},
   2576   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_SPMI_OFFSET (IpmiRegister),            "IPMI Register", 0},
   2577   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciSegment),              "PCI Segment", 0},
   2578   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciBus),                  "PCI Bus", 0},
   2579   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciDevice),               "PCI Device", 0},
   2580   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (PciFunction),             "PCI Function", 0},
   2581   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SPMI_OFFSET (Reserved2),               "Reserved", 0},
   2582   1.1    jruoho     ACPI_DMT_TERMINATOR
   2583   1.1    jruoho };
   2584   1.1    jruoho 
   2585   1.1    jruoho 
   2586   1.1    jruoho /*******************************************************************************
   2587   1.1    jruoho  *
   2588   1.1    jruoho  * SRAT - System Resource Affinity Table and Subtables
   2589   1.1    jruoho  *
   2590   1.1    jruoho  ******************************************************************************/
   2591   1.1    jruoho 
   2592   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat[] =
   2593   1.1    jruoho {
   2594   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT_OFFSET (TableRevision),           "Table Revision", 0},
   2595   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_SRAT_OFFSET (Reserved),                "Reserved", 0},
   2596   1.1    jruoho     ACPI_DMT_TERMINATOR
   2597   1.1    jruoho };
   2598   1.1    jruoho 
   2599   1.1    jruoho /* Common Subtable header (one per Subtable) */
   2600   1.1    jruoho 
   2601   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSratHdr[] =
   2602   1.1    jruoho {
   2603   1.1    jruoho     {ACPI_DMT_SRAT,     ACPI_SRATH_OFFSET (Type),                   "Subtable Type", 0},
   2604   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SRATH_OFFSET (Length),                 "Length", DT_LENGTH},
   2605   1.1    jruoho     ACPI_DMT_TERMINATOR
   2606   1.1    jruoho };
   2607   1.1    jruoho 
   2608   1.1    jruoho /* SRAT Subtables */
   2609   1.1    jruoho 
   2610   1.1    jruoho /* 0: Processor Local APIC/SAPIC Affinity */
   2611   1.1    jruoho 
   2612   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat0[] =
   2613   1.1    jruoho {
   2614   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SRAT0_OFFSET (ProximityDomainLo),      "Proximity Domain Low(8)", 0},
   2615   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SRAT0_OFFSET (ApicId),                 "Apic ID", 0},
   2616   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT0_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   2617   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_SRAT0_FLAG_OFFSET (Flags,0),           "Enabled", 0},
   2618   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_SRAT0_OFFSET (LocalSapicEid),          "Local Sapic EID", 0},
   2619   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_SRAT0_OFFSET (ProximityDomainHi[0]),   "Proximity Domain High(24)", 0},
   2620   1.2    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT0_OFFSET (ClockDomain),            "Clock Domain", 0},
   2621   1.1    jruoho     ACPI_DMT_TERMINATOR
   2622   1.1    jruoho };
   2623   1.1    jruoho 
   2624   1.1    jruoho /* 1: Memory Affinity */
   2625   1.1    jruoho 
   2626   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat1[] =
   2627   1.1    jruoho {
   2628   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT1_OFFSET (ProximityDomain),        "Proximity Domain", 0},
   2629   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_SRAT1_OFFSET (Reserved),               "Reserved1", 0},
   2630   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_SRAT1_OFFSET (BaseAddress),            "Base Address", 0},
   2631   1.1    jruoho     {ACPI_DMT_UINT64,   ACPI_SRAT1_OFFSET (Length),                 "Address Length", 0},
   2632   1.3    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT1_OFFSET (Reserved1),              "Reserved2", 0},
   2633   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT1_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   2634   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_SRAT1_FLAG_OFFSET (Flags,0),           "Enabled", 0},
   2635   1.1    jruoho     {ACPI_DMT_FLAG1,    ACPI_SRAT1_FLAG_OFFSET (Flags,0),           "Hot Pluggable", 0},
   2636   1.1    jruoho     {ACPI_DMT_FLAG2,    ACPI_SRAT1_FLAG_OFFSET (Flags,0),           "Non-Volatile", 0},
   2637   1.3    jruoho     {ACPI_DMT_UINT64,   ACPI_SRAT1_OFFSET (Reserved2),              "Reserved3", 0},
   2638   1.1    jruoho     ACPI_DMT_TERMINATOR
   2639   1.1    jruoho };
   2640   1.1    jruoho 
   2641   1.1    jruoho /* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */
   2642   1.1    jruoho 
   2643   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat2[] =
   2644   1.1    jruoho {
   2645   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_SRAT2_OFFSET (Reserved),               "Reserved1", 0},
   2646   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT2_OFFSET (ProximityDomain),        "Proximity Domain", 0},
   2647   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT2_OFFSET (ApicId),                 "Apic ID", 0},
   2648   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT2_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   2649   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_SRAT2_FLAG_OFFSET (Flags,0),           "Enabled", 0},
   2650   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT2_OFFSET (ClockDomain),            "Clock Domain", 0},
   2651   1.3    jruoho     {ACPI_DMT_UINT32,   ACPI_SRAT2_OFFSET (Reserved2),              "Reserved2", 0},
   2652   1.1    jruoho     ACPI_DMT_TERMINATOR
   2653   1.1    jruoho };
   2654   1.1    jruoho 
   2655   1.6  christos /* : GICC Affinity (ACPI 5.1) */
   2656   1.6  christos 
   2657   1.6  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoSrat3[] =
   2658   1.6  christos {
   2659   1.6  christos     {ACPI_DMT_UINT32,   ACPI_SRAT3_OFFSET (ProximityDomain),        "Proximity Domain", 0},
   2660   1.6  christos     {ACPI_DMT_UINT32,   ACPI_SRAT3_OFFSET (AcpiProcessorUid),       "Acpi Processor UID", 0},
   2661   1.6  christos     {ACPI_DMT_UINT32,   ACPI_SRAT3_OFFSET (Flags),                  "Flags (decoded below)", DT_FLAG},
   2662   1.6  christos     {ACPI_DMT_FLAG0,    ACPI_SRAT3_FLAG_OFFSET (Flags,0),           "Enabled", 0},
   2663   1.6  christos     {ACPI_DMT_UINT32,   ACPI_SRAT3_OFFSET (ClockDomain),            "Clock Domain", 0},
   2664   1.6  christos     ACPI_DMT_TERMINATOR
   2665   1.6  christos };
   2666   1.6  christos 
   2667   1.1    jruoho 
   2668   1.1    jruoho /*******************************************************************************
   2669   1.1    jruoho  *
   2670   1.8  christos  * STAO - Status Override Table (_STA override) - ACPI 6.0
   2671   1.1    jruoho  *
   2672   1.1    jruoho  ******************************************************************************/
   2673   1.1    jruoho 
   2674   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoStao[] =
   2675   1.8  christos {
   2676   1.8  christos     {ACPI_DMT_UINT8,    ACPI_STAO_OFFSET (IgnoreUart),              "Ignore UART", 0},
   2677   1.8  christos     ACPI_DMT_TERMINATOR
   2678   1.8  christos };
   2679   1.8  christos 
   2680   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoStaoStr[] =
   2681   1.8  christos {
   2682   1.8  christos     {ACPI_DMT_STRING,   0,                                          "Namepath", 0},
   2683   1.8  christos     ACPI_DMT_TERMINATOR
   2684   1.8  christos };
   2685   1.8  christos 
   2686   1.8  christos 
   2687   1.8  christos /*******************************************************************************
   2688   1.8  christos  *
   2689   1.8  christos  * TCPA - Trusted Computing Platform Alliance table (Client)
   2690   1.8  christos  *
   2691   1.8  christos  * NOTE: There are two versions of the table with the same signature --
   2692   1.8  christos  * the client version and the server version. The common PlatformClass
   2693   1.8  christos  * field is used to differentiate the two types of tables.
   2694   1.8  christos  *
   2695   1.8  christos  ******************************************************************************/
   2696   1.8  christos 
   2697   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoTcpaHdr[] =
   2698   1.8  christos {
   2699   1.8  christos     {ACPI_DMT_UINT16,   ACPI_TCPA_OFFSET (PlatformClass),           "Platform Class", 0},
   2700   1.8  christos     ACPI_DMT_TERMINATOR
   2701   1.8  christos };
   2702   1.8  christos 
   2703   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoTcpaClient[] =
   2704   1.8  christos {
   2705   1.8  christos     {ACPI_DMT_UINT32,   ACPI_TCPA_CLIENT_OFFSET (MinimumLogLength), "Min Event Log Length", 0},
   2706   1.8  christos     {ACPI_DMT_UINT64,   ACPI_TCPA_CLIENT_OFFSET (LogAddress),       "Event Log Address", 0},
   2707   1.8  christos     ACPI_DMT_TERMINATOR
   2708   1.8  christos };
   2709   1.8  christos 
   2710   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoTcpaServer[] =
   2711   1.1    jruoho {
   2712   1.8  christos     {ACPI_DMT_UINT16,   ACPI_TCPA_SERVER_OFFSET (Reserved),         "Reserved", 0},
   2713   1.8  christos     {ACPI_DMT_UINT64,   ACPI_TCPA_SERVER_OFFSET (MinimumLogLength), "Min Event Log Length", 0},
   2714   1.8  christos     {ACPI_DMT_UINT64,   ACPI_TCPA_SERVER_OFFSET (LogAddress),       "Event Log Address", 0},
   2715   1.8  christos     {ACPI_DMT_UINT16,   ACPI_TCPA_SERVER_OFFSET (SpecRevision),     "Specification Revision", 0},
   2716   1.8  christos     {ACPI_DMT_UINT8,    ACPI_TCPA_SERVER_OFFSET (DeviceFlags),      "Device Flags (decoded below)", DT_FLAG},
   2717   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_TCPA_SERVER_OFFSET (DeviceFlags),      "Pci Device", 0},
   2718   1.8  christos     {ACPI_DMT_FLAG1,    ACPI_TCPA_SERVER_OFFSET (DeviceFlags),      "Bus is Pnp", 0},
   2719   1.8  christos     {ACPI_DMT_FLAG2,    ACPI_TCPA_SERVER_OFFSET (DeviceFlags),      "Address Valid", 0},
   2720   1.8  christos     {ACPI_DMT_UINT8,    ACPI_TCPA_SERVER_OFFSET (InterruptFlags),   "Interrupt Flags (decoded below)", DT_FLAG},
   2721   1.8  christos     {ACPI_DMT_FLAG0,    ACPI_TCPA_SERVER_OFFSET (InterruptFlags),   "Mode", 0},
   2722   1.8  christos     {ACPI_DMT_FLAG1,    ACPI_TCPA_SERVER_OFFSET (InterruptFlags),   "Polarity", 0},
   2723   1.8  christos     {ACPI_DMT_FLAG2,    ACPI_TCPA_SERVER_OFFSET (InterruptFlags),   "GPE SCI Triggered", 0},
   2724   1.8  christos     {ACPI_DMT_FLAG3,    ACPI_TCPA_SERVER_OFFSET (InterruptFlags),   "Global System Interrupt", 0},
   2725   1.8  christos     {ACPI_DMT_UINT8,    ACPI_TCPA_SERVER_OFFSET (GpeNumber),        "Gpe Number", 0},
   2726   1.8  christos     {ACPI_DMT_UINT24,   ACPI_TCPA_SERVER_OFFSET (Reserved2[0]),     "Reserved", 0},
   2727   1.8  christos     {ACPI_DMT_UINT32,   ACPI_TCPA_SERVER_OFFSET (GlobalInterrupt),  "Global Interrupt", 0},
   2728   1.8  christos     {ACPI_DMT_GAS,      ACPI_TCPA_SERVER_OFFSET (Address),          "Address", 0},
   2729   1.8  christos     {ACPI_DMT_UINT32,   ACPI_TCPA_SERVER_OFFSET (Reserved3),        "Reserved", 0},
   2730   1.8  christos     {ACPI_DMT_GAS,      ACPI_TCPA_SERVER_OFFSET (ConfigAddress),    "Configuration Address", 0},
   2731   1.8  christos     {ACPI_DMT_UINT8,    ACPI_TCPA_SERVER_OFFSET (Group),            "Pci Group", 0},
   2732   1.8  christos     {ACPI_DMT_UINT8,    ACPI_TCPA_SERVER_OFFSET (Bus),              "Pci Bus", 0},
   2733   1.8  christos     {ACPI_DMT_UINT8,    ACPI_TCPA_SERVER_OFFSET (Device),           "Pci Device", 0},
   2734   1.8  christos     {ACPI_DMT_UINT8,    ACPI_TCPA_SERVER_OFFSET (Function),         "Pci Function", 0},
   2735   1.1    jruoho     ACPI_DMT_TERMINATOR
   2736   1.1    jruoho };
   2737   1.1    jruoho 
   2738   1.1    jruoho 
   2739   1.1    jruoho /*******************************************************************************
   2740   1.1    jruoho  *
   2741   1.5  christos  * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
   2742   1.5  christos  *
   2743   1.5  christos  ******************************************************************************/
   2744   1.5  christos 
   2745   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoTpm2[] =
   2746   1.5  christos {
   2747   1.8  christos     {ACPI_DMT_UINT16,   ACPI_TPM2_OFFSET (PlatformClass),           "Platform Class", 0},
   2748   1.8  christos     {ACPI_DMT_UINT16,   ACPI_TPM2_OFFSET (Reserved),                "Reserved", 0},
   2749   1.5  christos     {ACPI_DMT_UINT64,   ACPI_TPM2_OFFSET (ControlAddress),          "Control Address", 0},
   2750   1.5  christos     {ACPI_DMT_UINT32,   ACPI_TPM2_OFFSET (StartMethod),             "Start Method", 0},
   2751   1.5  christos     ACPI_DMT_TERMINATOR
   2752   1.5  christos };
   2753   1.5  christos 
   2754   1.5  christos 
   2755   1.5  christos /*******************************************************************************
   2756   1.5  christos  *
   2757   1.1    jruoho  * UEFI - UEFI Boot optimization Table
   2758   1.1    jruoho  *
   2759   1.1    jruoho  ******************************************************************************/
   2760   1.1    jruoho 
   2761   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoUefi[] =
   2762   1.1    jruoho {
   2763   1.3    jruoho     {ACPI_DMT_UUID,     ACPI_UEFI_OFFSET (Identifier[0]),           "UUID Identifier", 0},
   2764   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_UEFI_OFFSET (DataOffset),              "Data Offset", 0},
   2765   1.1    jruoho     ACPI_DMT_TERMINATOR
   2766   1.1    jruoho };
   2767   1.1    jruoho 
   2768   1.1    jruoho 
   2769   1.1    jruoho /*******************************************************************************
   2770   1.1    jruoho  *
   2771   1.5  christos  * VRTC - Virtual Real Time Clock Table
   2772   1.5  christos  *
   2773   1.5  christos  ******************************************************************************/
   2774   1.5  christos 
   2775   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoVrtc[] =
   2776   1.5  christos {
   2777   1.5  christos     ACPI_DMT_TERMINATOR
   2778   1.5  christos };
   2779   1.5  christos 
   2780   1.5  christos /* VRTC Subtables - VRTC Entry */
   2781   1.5  christos 
   2782   1.5  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoVrtc0[] =
   2783   1.5  christos {
   2784   1.5  christos     {ACPI_DMT_GAS,      ACPI_VRTC0_OFFSET (PhysicalAddress),        "PhysicalAddress", 0},
   2785   1.5  christos     {ACPI_DMT_UINT32,   ACPI_VRTC0_OFFSET (Irq),                    "IRQ", 0},
   2786   1.5  christos     ACPI_DMT_TERMINATOR
   2787   1.5  christos };
   2788   1.5  christos 
   2789   1.5  christos 
   2790   1.5  christos /*******************************************************************************
   2791   1.5  christos  *
   2792   1.1    jruoho  * WAET - Windows ACPI Emulated devices Table
   2793   1.1    jruoho  *
   2794   1.1    jruoho  ******************************************************************************/
   2795   1.1    jruoho 
   2796   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoWaet[] =
   2797   1.1    jruoho {
   2798   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_WAET_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
   2799   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_WAET_OFFSET (Flags),                   "RTC needs no INT ack", 0},
   2800   1.1    jruoho     {ACPI_DMT_FLAG1,    ACPI_WAET_OFFSET (Flags),                   "PM timer, one read only", 0},
   2801   1.1    jruoho     ACPI_DMT_TERMINATOR
   2802   1.1    jruoho };
   2803   1.1    jruoho 
   2804   1.1    jruoho 
   2805   1.1    jruoho /*******************************************************************************
   2806   1.1    jruoho  *
   2807   1.1    jruoho  * WDAT - Watchdog Action Table
   2808   1.1    jruoho  *
   2809   1.1    jruoho  ******************************************************************************/
   2810   1.1    jruoho 
   2811   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoWdat[] =
   2812   1.1    jruoho {
   2813   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_WDAT_OFFSET (HeaderLength),            "Header Length", DT_LENGTH},
   2814   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_WDAT_OFFSET (PciSegment),              "PCI Segment", 0},
   2815   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDAT_OFFSET (PciBus),                  "PCI Bus", 0},
   2816   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDAT_OFFSET (PciDevice),               "PCI Device", 0},
   2817   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDAT_OFFSET (PciFunction),             "PCI Function", 0},
   2818   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_WDAT_OFFSET (Reserved[0]),             "Reserved", 0},
   2819   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_WDAT_OFFSET (TimerPeriod),             "Timer Period", 0},
   2820   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_WDAT_OFFSET (MaxCount),                "Max Count", 0},
   2821   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_WDAT_OFFSET (MinCount),                "Min Count", 0},
   2822   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDAT_OFFSET (Flags),                   "Flags (decoded below)", DT_FLAG},
   2823   1.1    jruoho     {ACPI_DMT_FLAG0,    ACPI_WDAT_OFFSET (Flags),                   "Enabled", 0},
   2824   1.1    jruoho     {ACPI_DMT_FLAG7,    ACPI_WDAT_OFFSET (Flags),                   "Stopped When Asleep", 0},
   2825   1.1    jruoho     {ACPI_DMT_UINT24,   ACPI_WDAT_OFFSET (Reserved2[0]),            "Reserved", 0},
   2826   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_WDAT_OFFSET (Entries),                 "Watchdog Entry Count", 0},
   2827   1.1    jruoho     ACPI_DMT_TERMINATOR
   2828   1.1    jruoho };
   2829   1.1    jruoho 
   2830   1.1    jruoho /* WDAT Subtables - Watchdog Instruction Entries */
   2831   1.1    jruoho 
   2832   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoWdat0[] =
   2833   1.1    jruoho {
   2834   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDAT0_OFFSET (Action),                 "Watchdog Action", 0},
   2835   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDAT0_OFFSET (Instruction),            "Instruction", 0},
   2836   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_WDAT0_OFFSET (Reserved),               "Reserved", 0},
   2837   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_WDAT0_OFFSET (RegisterRegion),         "Register Region", 0},
   2838   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_WDAT0_OFFSET (Value),                  "Value", 0},
   2839   1.1    jruoho     {ACPI_DMT_UINT32,   ACPI_WDAT0_OFFSET (Mask),                   "Register Mask", 0},
   2840   1.1    jruoho     ACPI_DMT_TERMINATOR
   2841   1.1    jruoho };
   2842   1.1    jruoho 
   2843   1.1    jruoho 
   2844   1.1    jruoho /*******************************************************************************
   2845   1.1    jruoho  *
   2846   1.3    jruoho  * WDDT - Watchdog Description Table
   2847   1.3    jruoho  *
   2848   1.3    jruoho  ******************************************************************************/
   2849   1.3    jruoho 
   2850   1.3    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoWddt[] =
   2851   1.3    jruoho {
   2852   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_WDDT_OFFSET (SpecVersion),             "Specification Version", 0},
   2853   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_WDDT_OFFSET (TableVersion),            "Table Version", 0},
   2854   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_WDDT_OFFSET (PciVendorId),             "PCI Vendor ID", 0},
   2855   1.3    jruoho     {ACPI_DMT_GAS,      ACPI_WDDT_OFFSET (Address),                 "Timer Register", 0},
   2856   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_WDDT_OFFSET (MaxCount),                "Max Count", 0},
   2857   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_WDDT_OFFSET (MinCount),                "Min Count", 0},
   2858   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_WDDT_OFFSET (Period),                  "Period", 0},
   2859   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_WDDT_OFFSET (Status),                  "Status (decoded below)", 0},
   2860   1.3    jruoho 
   2861   1.3    jruoho     /* Status Flags byte 0 */
   2862   1.3    jruoho 
   2863   1.3    jruoho     {ACPI_DMT_FLAG0,    ACPI_WDDT_FLAG_OFFSET (Status,0),           "Available", 0},
   2864   1.3    jruoho     {ACPI_DMT_FLAG1,    ACPI_WDDT_FLAG_OFFSET (Status,0),           "Active", 0},
   2865   1.3    jruoho     {ACPI_DMT_FLAG2,    ACPI_WDDT_FLAG_OFFSET (Status,0),           "OS Owns", 0},
   2866   1.3    jruoho 
   2867   1.3    jruoho     /* Status Flags byte 1 */
   2868   1.3    jruoho 
   2869   1.3    jruoho     {ACPI_DMT_FLAG3,    ACPI_WDDT_FLAG_OFFSET (Status,1),           "User Reset", 0},
   2870   1.3    jruoho     {ACPI_DMT_FLAG4,    ACPI_WDDT_FLAG_OFFSET (Status,1),           "Timeout Reset", 0},
   2871   1.3    jruoho     {ACPI_DMT_FLAG5,    ACPI_WDDT_FLAG_OFFSET (Status,1),           "Power Fail Reset", 0},
   2872   1.3    jruoho     {ACPI_DMT_FLAG6,    ACPI_WDDT_FLAG_OFFSET (Status,1),           "Unknown Reset", 0},
   2873   1.3    jruoho 
   2874   1.3    jruoho     {ACPI_DMT_UINT16,   ACPI_WDDT_OFFSET (Capability),              "Capability (decoded below)", 0},
   2875   1.3    jruoho 
   2876   1.3    jruoho     /* Capability Flags byte 0 */
   2877   1.3    jruoho 
   2878   1.3    jruoho     {ACPI_DMT_FLAG0,    ACPI_WDDT_FLAG_OFFSET (Capability,0),       "Auto Reset", 0},
   2879   1.3    jruoho     {ACPI_DMT_FLAG1,    ACPI_WDDT_FLAG_OFFSET (Capability,0),       "Timeout Alert", 0},
   2880   1.3    jruoho     ACPI_DMT_TERMINATOR
   2881   1.3    jruoho };
   2882   1.3    jruoho 
   2883   1.3    jruoho 
   2884   1.3    jruoho /*******************************************************************************
   2885   1.3    jruoho  *
   2886   1.1    jruoho  * WDRT - Watchdog Resource Table
   2887   1.1    jruoho  *
   2888   1.1    jruoho  ******************************************************************************/
   2889   1.1    jruoho 
   2890   1.1    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoWdrt[] =
   2891   1.1    jruoho {
   2892   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_WDRT_OFFSET (ControlRegister),         "Control Register", 0},
   2893   1.1    jruoho     {ACPI_DMT_GAS,      ACPI_WDRT_OFFSET (CountRegister),           "Count Register", 0},
   2894   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_WDRT_OFFSET (PciDeviceId),             "PCI Device ID", 0},
   2895   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_WDRT_OFFSET (PciVendorId),             "PCI Vendor ID", 0},
   2896   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (PciBus),                  "PCI Bus", 0},
   2897   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (PciDevice),               "PCI Device", 0},
   2898   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (PciFunction),             "PCI Function", 0},
   2899   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (PciSegment),              "PCI Segment", 0},
   2900   1.1    jruoho     {ACPI_DMT_UINT16,   ACPI_WDRT_OFFSET (MaxCount),                "Max Count", 0},
   2901   1.1    jruoho     {ACPI_DMT_UINT8,    ACPI_WDRT_OFFSET (Units),                   "Counter Units", 0},
   2902   1.1    jruoho     ACPI_DMT_TERMINATOR
   2903   1.1    jruoho };
   2904   1.1    jruoho 
   2905   1.8  christos 
   2906   1.8  christos /*******************************************************************************
   2907   1.8  christos  *
   2908   1.8  christos  * WPBT - Windows Platform Environment Table (ACPI 6.0)
   2909   1.8  christos  *        Version 1
   2910   1.8  christos  *
   2911   1.8  christos  * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011
   2912   1.8  christos  *
   2913   1.8  christos  ******************************************************************************/
   2914   1.8  christos 
   2915   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoWpbt[] =
   2916   1.8  christos {
   2917   1.8  christos     {ACPI_DMT_UINT32,      ACPI_WPBT_OFFSET (HandoffSize),          "Handoff Size", 0},
   2918   1.8  christos     {ACPI_DMT_UINT64,      ACPI_WPBT_OFFSET (HandoffAddress),       "Handoff Address", 0},
   2919   1.8  christos     {ACPI_DMT_UINT8,       ACPI_WPBT_OFFSET (Layout),               "Layout", 0},
   2920   1.8  christos     {ACPI_DMT_UINT8,       ACPI_WPBT_OFFSET (Type),                 "Type", 0},
   2921   1.8  christos     {ACPI_DMT_UINT16,      ACPI_WPBT_OFFSET (ArgumentsLength),      "Arguments Length", 0},
   2922   1.8  christos     ACPI_DMT_TERMINATOR
   2923   1.8  christos };
   2924   1.8  christos 
   2925   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoWpbt0[] =
   2926   1.8  christos {
   2927   1.8  christos     {ACPI_DMT_UNICODE,     sizeof (ACPI_TABLE_WPBT),                "Command-line Arguments", 0},
   2928   1.8  christos     ACPI_DMT_TERMINATOR
   2929   1.8  christos };
   2930   1.8  christos 
   2931   1.8  christos 
   2932   1.8  christos /*******************************************************************************
   2933   1.8  christos  *
   2934   1.8  christos  * XENV -  Xen Environment table (ACPI 6.0)
   2935   1.8  christos  *
   2936   1.8  christos  ******************************************************************************/
   2937   1.8  christos 
   2938   1.8  christos ACPI_DMTABLE_INFO           AcpiDmTableInfoXenv[] =
   2939   1.8  christos {
   2940   1.8  christos     {ACPI_DMT_UINT64,   ACPI_XENV_OFFSET (GrantTableAddress),       "Grant Table Address", 0},
   2941   1.8  christos     {ACPI_DMT_UINT64,   ACPI_XENV_OFFSET (GrantTableSize),          "Grant Table Size", 0},
   2942   1.8  christos     {ACPI_DMT_UINT32,   ACPI_XENV_OFFSET (EventInterrupt),          "Event Interrupt", 0},
   2943   1.8  christos     {ACPI_DMT_UINT8,    ACPI_XENV_OFFSET (EventFlags),              "Event Flags", 0},
   2944   1.8  christos     ACPI_DMT_TERMINATOR
   2945   1.8  christos };
   2946   1.8  christos 
   2947   1.8  christos 
   2948   1.5  christos /*! [Begin] no source code translation */
   2949   1.5  christos 
   2950   1.3    jruoho /*
   2951   1.5  christos  * Generic types (used in UEFI and custom tables)
   2952   1.3    jruoho  *
   2953   1.3    jruoho  * Examples:
   2954   1.3    jruoho  *
   2955   1.3    jruoho  *     Buffer : cc 04 ff bb
   2956   1.3    jruoho  *      UINT8 : 11
   2957   1.3    jruoho  *     UINT16 : 1122
   2958   1.3    jruoho  *     UINT24 : 112233
   2959   1.3    jruoho  *     UINT32 : 11223344
   2960   1.3    jruoho  *     UINT56 : 11223344556677
   2961   1.3    jruoho  *     UINT64 : 1122334455667788
   2962   1.3    jruoho  *
   2963   1.3    jruoho  *     String : "This is string"
   2964   1.3    jruoho  *    Unicode : "This string encoded to Unicode"
   2965   1.3    jruoho  *
   2966   1.3    jruoho  *       GUID : 11223344-5566-7788-99aa-bbccddeeff00
   2967   1.3    jruoho  * DevicePath : "\PciRoot(0)\Pci(0x1f,1)\Usb(0,0)"
   2968   1.3    jruoho  */
   2969   1.3    jruoho 
   2970   1.5  christos #define ACPI_DM_GENERIC_ENTRY(FieldType, FieldName) \
   2971   1.3    jruoho     {{FieldType, 0, FieldName, 0}, ACPI_DMT_TERMINATOR}
   2972   1.3    jruoho 
   2973   1.3    jruoho ACPI_DMTABLE_INFO           AcpiDmTableInfoGeneric[][2] =
   2974   1.3    jruoho {
   2975   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT8,      "UINT8"),
   2976   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT16,     "UINT16"),
   2977   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT24,     "UINT24"),
   2978   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT32,     "UINT32"),
   2979   1.5  christos     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT40,     "UINT40"),
   2980   1.5  christos     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT48,     "UINT48"),
   2981   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT56,     "UINT56"),
   2982   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UINT64,     "UINT64"),
   2983   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_STRING,     "String"),
   2984   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UNICODE,    "Unicode"),
   2985   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_BUFFER,     "Buffer"),
   2986   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_UUID,       "GUID"),
   2987   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_STRING,     "DevicePath"),
   2988   1.3    jruoho     ACPI_DM_GENERIC_ENTRY (ACPI_DMT_LABEL,      "Label"),
   2989   1.3    jruoho     {ACPI_DMT_TERMINATOR}
   2990   1.3    jruoho };
   2991   1.5  christos /*! [End] no source code translation !*/
   2992