dmtbinfo.c revision 199767f8919635c4928607450d9e0abb932109ce
/******************************************************************************
*
* Module Name: dmtbinfo - Table info for non-AML tables
*
*****************************************************************************/
/*
* Copyright (C) 2000 - 2015, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions, and the following disclaimer,
* without modification.
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
* substantially similar to the "NO WARRANTY" disclaimer below
* ("Disclaimer") and any redistribution must be conditioned upon
* including a substantially similar Disclaimer requirement for further
* binary redistribution.
* 3. Neither the names of the above-listed copyright holders nor the names
* of any contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* Alternatively, this software may be distributed under the terms of the
* GNU General Public License ("GPL") version 2 as published by the Free
* Software Foundation.
*
* NO WARRANTY
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*/
/* This module used for application-level code only */
#define _COMPONENT ACPI_CA_DISASSEMBLER
ACPI_MODULE_NAME ("dmtbinfo")
/*
* How to add a new table:
*
* - Add ACPI_xxxx_OFFSET macro(s) for the table (and subtables) to list below.
* - Define the table in this file (for the disassembler). If any
* new data types are required (ACPI_DMT_*), see below.
* - Add an external declaration for the new table definition (AcpiDmTableInfo*)
* in acdisam.h
* - Add new table definition to the dispatch table in dmtable.c (AcpiDmTableData)
* If a simple table (with no subtables), no disassembly code is needed.
* Otherwise, create the AcpiDmDump* function for to disassemble the table
* and add it to the dmtbdump.c file.
* - Add an external declaration for the new AcpiDmDump* function in acdisasm.h
* - Add the new AcpiDmDump* function to the dispatch table in dmtable.c
* - Create a template for the new table
* - Add data table compiler support
*
* How to add a new data type (ACPI_DMT_*):
*
* - Add new type at the end of the ACPI_DMT list in acdisasm.h
* - Add length and implementation cases in dmtable.c (disassembler)
* - Add type and length cases in dtutils.c (DT compiler)
*/
/*
* Macros used to generate offsets to specific table fields
*/
/* Subtables */
/*
* Simplify access to flag fields by breaking them up into bytes
*/
/* Flags */
/*
* Required terminator for all tables below
*/
/*
* ACPI Table Information, used to dump formatted ACPI tables
*
* Each entry is of the form: <Field Type, Field Offset, Field Name>
*/
/*******************************************************************************
*
* Common ACPI table header
*
******************************************************************************/
{
};
/*******************************************************************************
*
* GAS - Generic Address Structure
*
******************************************************************************/
{
};
/*******************************************************************************
*
* RSDP - Root System Description Pointer (Signature is "RSD PTR ")
*
******************************************************************************/
{
};
/* ACPI 2.0+ Extensions */
{
};
/*******************************************************************************
*
* FACS - Firmware ACPI Control Structure
*
******************************************************************************/
{
};
/*******************************************************************************
*
* FADT - Fixed ACPI Description Table (Signature is FACP)
*
******************************************************************************/
/* ACPI 1.0 FADT (Version 1) */
{
/* Boot Architecture Flags byte 0 */
/* Flags byte 0 */
/* Flags byte 1 */
/* Flags byte 2 */
};
/* ACPI 1.0 MS Extensions (FADT version 2) */
{
};
/* ACPI 2.0+ Extensions (FADT version 3, 4, and 5) */
{
};
/* ACPI 5.0 Extensions (FADT version 5) */
{
};
/* ACPI 6.0 Extensions (FADT version 6) */
{
};
/*
* Remaining tables are not consumed directly by the ACPICA subsystem
*/
/*******************************************************************************
*
* ASF - Alert Standard Format table (Signature "ASF!")
*
******************************************************************************/
/* Common Subtable header (one per Subtable) */
{
};
/* 0: ASF Information */
{
};
/* 1: ASF Alerts */
{
};
/* 1a: ASF Alert data */
{
};
/* 2: ASF Remote Control */
{
};
/* 2a: ASF Control data */
{
};
/* 3: ASF RMCP Boot Options */
{
};
/* 4: ASF Address */
{
};
/*******************************************************************************
*
* BERT - Boot Error Record table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* BGRT - Boot Graphics Resource Table (ACPI 5.0)
*
******************************************************************************/
{
};
/*******************************************************************************
*
* BOOT - Simple Boot Flag Table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* CPEP - Corrected Platform Error Polling table
*
******************************************************************************/
{
};
{
};
/*******************************************************************************
*
* CSRT - Core System Resource Table
*
******************************************************************************/
/* Main table consists only of the standard ACPI table header */
/* Resource Group subtable */
{
};
/* Shared Info subtable */
{
};
/* Resource Descriptor subtable */
{
};
{
};
/*******************************************************************************
*
* DBG2 - Debug Port Table 2
*
******************************************************************************/
{
};
/* Debug Device Information Subtable */
{
};
/* Variable-length data for the subtable */
{
{ACPI_DMT_GAS, 0, "Base Address Register", 0},
};
{
{ACPI_DMT_UINT32, 0, "Address Size", 0},
};
{
{ACPI_DMT_STRING, 0, "Namepath", 0},
};
{
};
/*******************************************************************************
*
* DBGP - Debug Port
*
******************************************************************************/
{
};
/*******************************************************************************
*
* DMAR - DMA Remapping table
*
******************************************************************************/
{
};
/* Common Subtable header (one per Subtable) */
{
};
/* Common device scope entry */
{
};
/* DMAR Subtables */
/* 0: Hardware Unit Definition */
{
};
/* 1: Reserved Memory Definition */
{
};
/* 2: Root Port ATS Capability Definition */
{
};
/* 3: Remapping Hardware Static Affinity Structure */
{
};
/* 4: ACPI Namespace Device Declaration Structure */
{
};
/*******************************************************************************
*
* DRTM - Dynamic Root of Trust for Measurement table
*
******************************************************************************/
{
};
{
};
{
};
{
};
{
};
{
};
/*******************************************************************************
*
* ECDT - Embedded Controller Boot Resources Table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* EINJ - Error Injection table
*
******************************************************************************/
{
};
{
};
/*******************************************************************************
*
* ERST - Error Record Serialization table
*
******************************************************************************/
{
};
{
};
/*******************************************************************************
*
* FPDT - Firmware Performance Data Table (ACPI 5.0)
*
******************************************************************************/
/* Main table consists of only the standard ACPI header - subtables follow */
/* FPDT subtable header */
{
};
/* 0: Firmware Basic Boot Performance Record */
{
};
/* 1: S3 Performance Table Pointer Record */
{
};
/*******************************************************************************
*
* GTDT - Generic Timer Description Table
*
******************************************************************************/
{
};
/* GTDT Subtable header (one per Subtable) */
{
};
/* GTDT Subtables */
{
};
{
{ACPI_DMT_UINT32, ACPI_GTDT0a_OFFSET (VirtualTimerFlags), "Virtual Timer Flags (decoded below)", 0},
};
{
};
/*******************************************************************************
*
* HEST - Hardware Error Source table
*
******************************************************************************/
{
};
/* Common HEST structures for subtables */
#define ACPI_DM_HEST_HEADER \
#define ACPI_DM_HEST_AER \
/* HEST Subtables */
/* 0: IA32 Machine Check Exception */
{
};
/* 1: IA32 Corrected Machine Check */
{
};
/* 2: IA32 Non-Maskable Interrupt */
{
};
/* 6: PCI Express Root Port AER */
{
};
/* 7: PCI Express AER (AER Endpoint) */
{
};
{
};
/* 9: Generic Hardware Error Source */
{
};
{
};
/*
* IA32 Error Bank(s) - Follows the ACPI_HEST_IA_MACHINE_CHECK and
* ACPI_HEST_IA_CORRECTED structures.
*/
{
};
/*******************************************************************************
*
* HPET - High Precision Event Timer table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* IORT - IO Remapping Table
*
******************************************************************************/
{
};
/* Optional padding field */
{
};
/* Common Subtable header (one per Subtable) */
{
};
{
};
{
};
/* IORT subtables */
/* 0x00: ITS Group */
{
};
{
};
/* 0x01: Named Component */
{
};
{
};
/* 0x02: PCI Root Complex */
{
};
/* 0x03: SMMUv1/2 */
{
};
{
{ACPI_DMT_UINT64, 0, "SMMU_NSgIrpt Interrupt", 0},
{ACPI_DMT_UINT64, 0, "SMMU_NSgCfgIrpt Interrupt", 0},
};
{
};
{
};
/*******************************************************************************
*
* IVRS - I/O Virtualization Reporting Structure
*
******************************************************************************/
{
};
/* Common Subtable header (one per Subtable) */
{
};
/* IVRS subtables */
/* 0x10: I/O Virtualization Hardware Definition (IVHD) Block */
{
};
/* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition (IVMD) Block */
{
};
/* Device entry header for IVHD block */
#define ACPI_DMT_IVRS_DE_HEADER \
/* 4-byte device entry */
{
{ACPI_DMT_EXIT, 0, NULL, 0},
};
/* 8-byte device entry */
{
};
/* 8-byte device entry */
{
};
/* 8-byte device entry */
{
};
/*******************************************************************************
*
* LPIT - Low Power Idle Table
*
******************************************************************************/
/* Main table consists only of the standard ACPI table header */
/* Common Subtable header (one per Subtable) */
{
};
/* LPIT Subtables */
/* 0: Native C-state */
{
};
/*******************************************************************************
*
* MADT - Multiple APIC Description Table and subtables
*
******************************************************************************/
{
};
/* Common Subtable header (one per Subtable) */
{
};
/* MADT Subtables */
/* 0: processor APIC */
{
};
/* 1: IO APIC */
{
};
/* 2: Interrupt Override */
{
};
/* 3: NMI Sources */
{
};
/* 4: Local APIC NMI */
{
};
/* 5: Address Override */
{
};
/* 6: I/O Sapic */
{
};
/* 7: Local Sapic */
{
};
/* 8: Platform Interrupt Source */
{
};
/* 9: Processor Local X2_APIC (ACPI 4.0) */
{
};
/* 10: Local X2_APIC NMI (ACPI 4.0) */
{
};
/* 11: Generic Interrupt Controller (ACPI 5.0) */
{
};
/* 12: Generic Interrupt Distributor (ACPI 5.0) */
{
};
/* 13: Generic MSI Frame (ACPI 5.1) */
{
};
/* 14: Generic Redistributor (ACPI 5.1) */
{
};
/* 15: Generic Translator (ACPI 6.0) */
{
};
/*******************************************************************************
*
* MCFG - PCI Memory Mapped Configuration table and Subtable
*
******************************************************************************/
{
};
{
};
/*******************************************************************************
*
* MCHI - Management Controller Host Interface table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* MPST - Memory Power State Table
*
******************************************************************************/
{
};
/* MPST subtables */
/* 0: Memory Power Node Structure */
{
};
/* 0A: Sub-subtable - Memory Power State Structure (follows Memory Power Node above) */
{
};
/* 0B: Sub-subtable - Physical Component ID Structure (follows Memory Power State(s) above) */
{
};
/* 01: Power Characteristics Count (follows all Power Node(s) above) */
{
};
/* 02: Memory Power State Characteristics Structure */
{
};
/*******************************************************************************
*
* MSCT - Maximum System Characteristics Table (ACPI 4.0)
*
******************************************************************************/
{
};
/* Subtable - Maximum Proximity Domain Information. Version 1 */
{
};
/*******************************************************************************
*
* MTMR - MID Timer Table
*
******************************************************************************/
{
};
/* MTMR Subtables - MTMR Entry */
{
};
/*******************************************************************************
*
* NFIT - NVDIMM Firmware Interface Table and Subtables - (ACPI 6.0)
*
******************************************************************************/
{
};
/* Common Subtable header */
{
};
/* 0: System Physical Address Range Structure */
{
};
/* 1: Memory Device to System Address Range Map Structure */
{
};
/* 2: Interleave Structure */
{
};
{
};
/* 3: SMBIOS Management Information Structure */
{
};
{
};
/* 4: NVDIMM Control Region Structure */
{
};
/* 5: NVDIMM Block Data Window Region Structure */
{
};
/* 6: Flush Hint Address Structure */
{
};
{
};
/*******************************************************************************
*
* PCCT - Platform Communications Channel Table (ACPI 5.0)
*
******************************************************************************/
{
};
/* PCCT subtables */
{
};
/* 0: Generic Communications Subspace */
{
};
/* 1: HW-reduced Communications Subspace (ACPI 5.1) */
{
};
/*******************************************************************************
*
* PMTT - Platform Memory Topology Table
*
******************************************************************************/
{
};
/* Common Subtable header (one per Subtable) */
{
};
/* PMTT Subtables */
/* 0: Socket */
{
};
/* 1: Memory Controller */
{
};
/* 1a: Proximity Domain */
{
};
/* 2: Physical Component */
{
};
/*******************************************************************************
*
* S3PT - S3 Performance Table
*
******************************************************************************/
{
};
/* S3PT subtable header */
{
};
/* 0: Basic S3 Resume Performance Record */
{
};
/* 1: Basic S3 Suspend Performance Record */
{
};
/*******************************************************************************
*
* SBST - Smart Battery Specification Table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* SLIC - Software Licensing Description Table. This table contains the standard
* ACPI header followed by proprietary data structures
*
******************************************************************************/
/* Single subtable, a proprietary format, so treat it as a buffer */
{
{ACPI_DMT_RAW_BUFFER, 0, "Software Licensing Structure", 0},
};
/*******************************************************************************
*
* SLIT - System Locality Information Table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* SPCR - Serial Port Console Redirection table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* SPMI - Server Platform Management Interface table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* SRAT - System Resource Affinity Table and Subtables
*
******************************************************************************/
{
};
/* Common Subtable header (one per Subtable) */
{
};
/* SRAT Subtables */
{
};
/* 1: Memory Affinity */
{
};
/* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */
{
};
/* : GICC Affinity (ACPI 5.1) */
{
};
/*******************************************************************************
*
* STAO - Status Override Table (_STA override) - ACPI 6.0
*
******************************************************************************/
{
};
{
{ACPI_DMT_STRING, 0, "Namepath", 0},
};
/*******************************************************************************
*
* TCPA - Trusted Computing Platform Alliance table (Client)
*
* NOTE: There are two versions of the table with the same signature --
* the client version and the server version. The common PlatformClass
* field is used to differentiate the two types of tables.
*
******************************************************************************/
{
};
{
};
{
{ACPI_DMT_UINT8, ACPI_TCPA_SERVER_OFFSET (InterruptFlags), "Interrupt Flags (decoded below)", DT_FLAG},
};
/*******************************************************************************
*
* TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* UEFI - UEFI Boot optimization Table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* VRTC - Virtual Real Time Clock Table
*
******************************************************************************/
{
};
/* VRTC Subtables - VRTC Entry */
{
};
/*******************************************************************************
*
* WAET - Windows ACPI Emulated devices Table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* WDAT - Watchdog Action Table
*
******************************************************************************/
{
};
/* WDAT Subtables - Watchdog Instruction Entries */
{
};
/*******************************************************************************
*
* WDDT - Watchdog Description Table
*
******************************************************************************/
{
/* Status Flags byte 0 */
/* Status Flags byte 1 */
/* Capability Flags byte 0 */
};
/*******************************************************************************
*
* WDRT - Watchdog Resource Table
*
******************************************************************************/
{
};
/*******************************************************************************
*
* WPBT - Windows Platform Environment Table (ACPI 6.0)
* Version 1
*
* Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011
*
******************************************************************************/
{
};
{
};
/*******************************************************************************
*
* XENV - Xen Environment table (ACPI 6.0)
*
******************************************************************************/
{
};
/*! [Begin] no source code translation */
/*
* Generic types (used in UEFI and custom tables)
*
* Examples:
*
* Buffer : cc 04 ff bb
* UINT8 : 11
* UINT16 : 1122
* UINT24 : 112233
* UINT32 : 11223344
* UINT56 : 11223344556677
* UINT64 : 1122334455667788
*
* String : "This is string"
* Unicode : "This string encoded to Unicode"
*
* GUID : 11223344-5566-7788-99aa-bbccddeeff00
* DevicePath : "\PciRoot(0)\Pci(0x1f,1)\Usb(0,0)"
*/
{
};
/*! [End] no source code translation !*/