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