/******************************************************************************1*2* Name: actbl2.h - ACPI Table Definitions (tables not in ACPI spec)3*4*****************************************************************************/56/*7* Copyright (C) 2000 - 2011, Intel Corp.8* All rights reserved.9*10* Redistribution and use in source and binary forms, with or without11* modification, are permitted provided that the following conditions12* are met:13* 1. Redistributions of source code must retain the above copyright14* notice, this list of conditions, and the following disclaimer,15* without modification.16* 2. Redistributions in binary form must reproduce at minimum a disclaimer17* substantially similar to the "NO WARRANTY" disclaimer below18* ("Disclaimer") and any redistribution must be conditioned upon19* including a substantially similar Disclaimer requirement for further20* binary redistribution.21* 3. Neither the names of the above-listed copyright holders nor the names22* of any contributors may be used to endorse or promote products derived23* from this software without specific prior written permission.24*25* Alternatively, this software may be distributed under the terms of the26* GNU General Public License ("GPL") version 2 as published by the Free27* Software Foundation.28*29* NO WARRANTY30* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS31* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT32* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR33* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT34* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL35* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS36* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)37* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,38* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING39* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE40* POSSIBILITY OF SUCH DAMAGES.41*/4243#ifndef __ACTBL2_H__44#define __ACTBL2_H__4546/*******************************************************************************47*48* Additional ACPI Tables (2)49*50* These tables are not consumed directly by the ACPICA subsystem, but are51* included here to support device drivers and the AML disassembler.52*53* The tables in this file are defined by third-party specifications, and are54* not defined directly by the ACPI specification itself.55*56******************************************************************************/5758/*59* Values for description table header signatures for tables defined in this60* file. Useful because they make it more difficult to inadvertently type in61* the wrong signature.62*/63#define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */64#define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */65#define ACPI_SIG_DBGP "DBGP" /* Debug Port table */66#define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */67#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */68#define ACPI_SIG_IBFT "IBFT" /* i_sCSI Boot Firmware Table */69#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */70#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */71#define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */72#define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */73#define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */74#define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */75#define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */76#define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */77#define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */78#define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */79#define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */80#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */8182#ifdef ACPI_UNDEFINED_TABLES83/*84* These tables have been seen in the field, but no definition has been found85*/86#define ACPI_SIG_ATKG "ATKG"87#define ACPI_SIG_GSCI "GSCI" /* GMCH SCI table */88#define ACPI_SIG_IEIT "IEIT"89#endif9091/*92* All tables must be byte-packed to match the ACPI specification, since93* the tables are provided by the system BIOS.94*/95#pragma pack(1)9697/*98* Note about bitfields: The u8 type is used for bitfields in ACPI tables.99* This is the only type that is even remotely portable. Anything else is not100* portable, so do not use any other bitfield types.101*/102103/*******************************************************************************104*105* ASF - Alert Standard Format table (Signature "ASF!")106* Revision 0x10107*108* Conforms to the Alert Standard Format Specification V2.0, 23 April 2003109*110******************************************************************************/111112struct acpi_table_asf {113struct acpi_table_header header; /* Common ACPI table header */114};115116/* ASF subtable header */117118struct acpi_asf_header {119u8 type;120u8 reserved;121u16 length;122};123124/* Values for Type field above */125126enum acpi_asf_type {127ACPI_ASF_TYPE_INFO = 0,128ACPI_ASF_TYPE_ALERT = 1,129ACPI_ASF_TYPE_CONTROL = 2,130ACPI_ASF_TYPE_BOOT = 3,131ACPI_ASF_TYPE_ADDRESS = 4,132ACPI_ASF_TYPE_RESERVED = 5133};134135/*136* ASF subtables137*/138139/* 0: ASF Information */140141struct acpi_asf_info {142struct acpi_asf_header header;143u8 min_reset_value;144u8 min_poll_interval;145u16 system_id;146u32 mfg_id;147u8 flags;148u8 reserved2[3];149};150151/* Masks for Flags field above */152153#define ACPI_ASF_SMBUS_PROTOCOLS (1)154155/* 1: ASF Alerts */156157struct acpi_asf_alert {158struct acpi_asf_header header;159u8 assert_mask;160u8 deassert_mask;161u8 alerts;162u8 data_length;163};164165struct acpi_asf_alert_data {166u8 address;167u8 command;168u8 mask;169u8 value;170u8 sensor_type;171u8 type;172u8 offset;173u8 source_type;174u8 severity;175u8 sensor_number;176u8 entity;177u8 instance;178};179180/* 2: ASF Remote Control */181182struct acpi_asf_remote {183struct acpi_asf_header header;184u8 controls;185u8 data_length;186u16 reserved2;187};188189struct acpi_asf_control_data {190u8 function;191u8 address;192u8 command;193u8 value;194};195196/* 3: ASF RMCP Boot Options */197198struct acpi_asf_rmcp {199struct acpi_asf_header header;200u8 capabilities[7];201u8 completion_code;202u32 enterprise_id;203u8 command;204u16 parameter;205u16 boot_options;206u16 oem_parameters;207};208209/* 4: ASF Address */210211struct acpi_asf_address {212struct acpi_asf_header header;213u8 eprom_address;214u8 devices;215};216217/*******************************************************************************218*219* BOOT - Simple Boot Flag Table220* Version 1221*222* Conforms to the "Simple Boot Flag Specification", Version 2.1223*224******************************************************************************/225226struct acpi_table_boot {227struct acpi_table_header header; /* Common ACPI table header */228u8 cmos_index; /* Index in CMOS RAM for the boot register */229u8 reserved[3];230};231232/*******************************************************************************233*234* DBGP - Debug Port table235* Version 1236*237* Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000238*239******************************************************************************/240241struct acpi_table_dbgp {242struct acpi_table_header header; /* Common ACPI table header */243u8 type; /* 0=full 16550, 1=subset of 16550 */244u8 reserved[3];245struct acpi_generic_address debug_port;246};247248/*******************************************************************************249*250* DMAR - DMA Remapping table251* Version 1252*253* Conforms to "Intel Virtualization Technology for Directed I/O",254* Version 1.2, Sept. 2008255*256******************************************************************************/257258struct acpi_table_dmar {259struct acpi_table_header header; /* Common ACPI table header */260u8 width; /* Host Address Width */261u8 flags;262u8 reserved[10];263};264265/* Masks for Flags field above */266267#define ACPI_DMAR_INTR_REMAP (1)268269/* DMAR subtable header */270271struct acpi_dmar_header {272u16 type;273u16 length;274};275276/* Values for subtable type in struct acpi_dmar_header */277278enum acpi_dmar_type {279ACPI_DMAR_TYPE_HARDWARE_UNIT = 0,280ACPI_DMAR_TYPE_RESERVED_MEMORY = 1,281ACPI_DMAR_TYPE_ATSR = 2,282ACPI_DMAR_HARDWARE_AFFINITY = 3,283ACPI_DMAR_TYPE_RESERVED = 4 /* 4 and greater are reserved */284};285286/* DMAR Device Scope structure */287288struct acpi_dmar_device_scope {289u8 entry_type;290u8 length;291u16 reserved;292u8 enumeration_id;293u8 bus;294};295296/* Values for entry_type in struct acpi_dmar_device_scope */297298enum acpi_dmar_scope_type {299ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0,300ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1,301ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2,302ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3,303ACPI_DMAR_SCOPE_TYPE_HPET = 4,304ACPI_DMAR_SCOPE_TYPE_RESERVED = 5 /* 5 and greater are reserved */305};306307struct acpi_dmar_pci_path {308u8 dev;309u8 fn;310};311312/*313* DMAR Sub-tables, correspond to Type in struct acpi_dmar_header314*/315316/* 0: Hardware Unit Definition */317318struct acpi_dmar_hardware_unit {319struct acpi_dmar_header header;320u8 flags;321u8 reserved;322u16 segment;323u64 address; /* Register Base Address */324};325326/* Masks for Flags field above */327328#define ACPI_DMAR_INCLUDE_ALL (1)329330/* 1: Reserved Memory Defininition */331332struct acpi_dmar_reserved_memory {333struct acpi_dmar_header header;334u16 reserved;335u16 segment;336u64 base_address; /* 4_k aligned base address */337u64 end_address; /* 4_k aligned limit address */338};339340/* Masks for Flags field above */341342#define ACPI_DMAR_ALLOW_ALL (1)343344/* 2: Root Port ATS Capability Reporting Structure */345346struct acpi_dmar_atsr {347struct acpi_dmar_header header;348u8 flags;349u8 reserved;350u16 segment;351};352353/* Masks for Flags field above */354355#define ACPI_DMAR_ALL_PORTS (1)356357/* 3: Remapping Hardware Static Affinity Structure */358359struct acpi_dmar_rhsa {360struct acpi_dmar_header header;361u32 reserved;362u64 base_address;363u32 proximity_domain;364};365366/*******************************************************************************367*368* HPET - High Precision Event Timer table369* Version 1370*371* Conforms to "IA-PC HPET (High Precision Event Timers) Specification",372* Version 1.0a, October 2004373*374******************************************************************************/375376struct acpi_table_hpet {377struct acpi_table_header header; /* Common ACPI table header */378u32 id; /* Hardware ID of event timer block */379struct acpi_generic_address address; /* Address of event timer block */380u8 sequence; /* HPET sequence number */381u16 minimum_tick; /* Main counter min tick, periodic mode */382u8 flags;383};384385/* Masks for Flags field above */386387#define ACPI_HPET_PAGE_PROTECT_MASK (3)388389/* Values for Page Protect flags */390391enum acpi_hpet_page_protect {392ACPI_HPET_NO_PAGE_PROTECT = 0,393ACPI_HPET_PAGE_PROTECT4 = 1,394ACPI_HPET_PAGE_PROTECT64 = 2395};396397/*******************************************************************************398*399* IBFT - Boot Firmware Table400* Version 1401*402* Conforms to "iSCSI Boot Firmware Table (iBFT) as Defined in ACPI 3.0b403* Specification", Version 1.01, March 1, 2007404*405* Note: It appears that this table is not intended to appear in the RSDT/XSDT.406* Therefore, it is not currently supported by the disassembler.407*408******************************************************************************/409410struct acpi_table_ibft {411struct acpi_table_header header; /* Common ACPI table header */412u8 reserved[12];413};414415/* IBFT common subtable header */416417struct acpi_ibft_header {418u8 type;419u8 version;420u16 length;421u8 index;422u8 flags;423};424425/* Values for Type field above */426427enum acpi_ibft_type {428ACPI_IBFT_TYPE_NOT_USED = 0,429ACPI_IBFT_TYPE_CONTROL = 1,430ACPI_IBFT_TYPE_INITIATOR = 2,431ACPI_IBFT_TYPE_NIC = 3,432ACPI_IBFT_TYPE_TARGET = 4,433ACPI_IBFT_TYPE_EXTENSIONS = 5,434ACPI_IBFT_TYPE_RESERVED = 6 /* 6 and greater are reserved */435};436437/* IBFT subtables */438439struct acpi_ibft_control {440struct acpi_ibft_header header;441u16 extensions;442u16 initiator_offset;443u16 nic0_offset;444u16 target0_offset;445u16 nic1_offset;446u16 target1_offset;447};448449struct acpi_ibft_initiator {450struct acpi_ibft_header header;451u8 sns_server[16];452u8 slp_server[16];453u8 primary_server[16];454u8 secondary_server[16];455u16 name_length;456u16 name_offset;457};458459struct acpi_ibft_nic {460struct acpi_ibft_header header;461u8 ip_address[16];462u8 subnet_mask_prefix;463u8 origin;464u8 gateway[16];465u8 primary_dns[16];466u8 secondary_dns[16];467u8 dhcp[16];468u16 vlan;469u8 mac_address[6];470u16 pci_address;471u16 name_length;472u16 name_offset;473};474475struct acpi_ibft_target {476struct acpi_ibft_header header;477u8 target_ip_address[16];478u16 target_ip_socket;479u8 target_boot_lun[8];480u8 chap_type;481u8 nic_association;482u16 target_name_length;483u16 target_name_offset;484u16 chap_name_length;485u16 chap_name_offset;486u16 chap_secret_length;487u16 chap_secret_offset;488u16 reverse_chap_name_length;489u16 reverse_chap_name_offset;490u16 reverse_chap_secret_length;491u16 reverse_chap_secret_offset;492};493494/*******************************************************************************495*496* IVRS - I/O Virtualization Reporting Structure497* Version 1498*499* Conforms to "AMD I/O Virtualization Technology (IOMMU) Specification",500* Revision 1.26, February 2009.501*502******************************************************************************/503504struct acpi_table_ivrs {505struct acpi_table_header header; /* Common ACPI table header */506u32 info; /* Common virtualization info */507u64 reserved;508};509510/* Values for Info field above */511512#define ACPI_IVRS_PHYSICAL_SIZE 0x00007F00 /* 7 bits, physical address size */513#define ACPI_IVRS_VIRTUAL_SIZE 0x003F8000 /* 7 bits, virtual address size */514#define ACPI_IVRS_ATS_RESERVED 0x00400000 /* ATS address translation range reserved */515516/* IVRS subtable header */517518struct acpi_ivrs_header {519u8 type; /* Subtable type */520u8 flags;521u16 length; /* Subtable length */522u16 device_id; /* ID of IOMMU */523};524525/* Values for subtable Type above */526527enum acpi_ivrs_type {528ACPI_IVRS_TYPE_HARDWARE = 0x10,529ACPI_IVRS_TYPE_MEMORY1 = 0x20,530ACPI_IVRS_TYPE_MEMORY2 = 0x21,531ACPI_IVRS_TYPE_MEMORY3 = 0x22532};533534/* Masks for Flags field above for IVHD subtable */535536#define ACPI_IVHD_TT_ENABLE (1)537#define ACPI_IVHD_PASS_PW (1<<1)538#define ACPI_IVHD_RES_PASS_PW (1<<2)539#define ACPI_IVHD_ISOC (1<<3)540#define ACPI_IVHD_IOTLB (1<<4)541542/* Masks for Flags field above for IVMD subtable */543544#define ACPI_IVMD_UNITY (1)545#define ACPI_IVMD_READ (1<<1)546#define ACPI_IVMD_WRITE (1<<2)547#define ACPI_IVMD_EXCLUSION_RANGE (1<<3)548549/*550* IVRS subtables, correspond to Type in struct acpi_ivrs_header551*/552553/* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */554555struct acpi_ivrs_hardware {556struct acpi_ivrs_header header;557u16 capability_offset; /* Offset for IOMMU control fields */558u64 base_address; /* IOMMU control registers */559u16 pci_segment_group;560u16 info; /* MSI number and unit ID */561u32 reserved;562};563564/* Masks for Info field above */565566#define ACPI_IVHD_MSI_NUMBER_MASK 0x001F /* 5 bits, MSI message number */567#define ACPI_IVHD_UNIT_ID_MASK 0x1F00 /* 5 bits, unit_iD */568569/*570* Device Entries for IVHD subtable, appear after struct acpi_ivrs_hardware structure.571* Upper two bits of the Type field are the (encoded) length of the structure.572* Currently, only 4 and 8 byte entries are defined. 16 and 32 byte entries573* are reserved for future use but not defined.574*/575struct acpi_ivrs_de_header {576u8 type;577u16 id;578u8 data_setting;579};580581/* Length of device entry is in the top two bits of Type field above */582583#define ACPI_IVHD_ENTRY_LENGTH 0xC0584585/* Values for device entry Type field above */586587enum acpi_ivrs_device_entry_type {588/* 4-byte device entries, all use struct acpi_ivrs_device4 */589590ACPI_IVRS_TYPE_PAD4 = 0,591ACPI_IVRS_TYPE_ALL = 1,592ACPI_IVRS_TYPE_SELECT = 2,593ACPI_IVRS_TYPE_START = 3,594ACPI_IVRS_TYPE_END = 4,595596/* 8-byte device entries */597598ACPI_IVRS_TYPE_PAD8 = 64,599ACPI_IVRS_TYPE_NOT_USED = 65,600ACPI_IVRS_TYPE_ALIAS_SELECT = 66, /* Uses struct acpi_ivrs_device8a */601ACPI_IVRS_TYPE_ALIAS_START = 67, /* Uses struct acpi_ivrs_device8a */602ACPI_IVRS_TYPE_EXT_SELECT = 70, /* Uses struct acpi_ivrs_device8b */603ACPI_IVRS_TYPE_EXT_START = 71, /* Uses struct acpi_ivrs_device8b */604ACPI_IVRS_TYPE_SPECIAL = 72 /* Uses struct acpi_ivrs_device8c */605};606607/* Values for Data field above */608609#define ACPI_IVHD_INIT_PASS (1)610#define ACPI_IVHD_EINT_PASS (1<<1)611#define ACPI_IVHD_NMI_PASS (1<<2)612#define ACPI_IVHD_SYSTEM_MGMT (3<<4)613#define ACPI_IVHD_LINT0_PASS (1<<6)614#define ACPI_IVHD_LINT1_PASS (1<<7)615616/* Types 0-4: 4-byte device entry */617618struct acpi_ivrs_device4 {619struct acpi_ivrs_de_header header;620};621622/* Types 66-67: 8-byte device entry */623624struct acpi_ivrs_device8a {625struct acpi_ivrs_de_header header;626u8 reserved1;627u16 used_id;628u8 reserved2;629};630631/* Types 70-71: 8-byte device entry */632633struct acpi_ivrs_device8b {634struct acpi_ivrs_de_header header;635u32 extended_data;636};637638/* Values for extended_data above */639640#define ACPI_IVHD_ATS_DISABLED (1<<31)641642/* Type 72: 8-byte device entry */643644struct acpi_ivrs_device8c {645struct acpi_ivrs_de_header header;646u8 handle;647u16 used_id;648u8 variety;649};650651/* Values for Variety field above */652653#define ACPI_IVHD_IOAPIC 1654#define ACPI_IVHD_HPET 2655656/* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */657658struct acpi_ivrs_memory {659struct acpi_ivrs_header header;660u16 aux_data;661u64 reserved;662u64 start_address;663u64 memory_length;664};665666/*******************************************************************************667*668* MCFG - PCI Memory Mapped Configuration table and sub-table669* Version 1670*671* Conforms to "PCI Firmware Specification", Revision 3.0, June 20, 2005672*673******************************************************************************/674675struct acpi_table_mcfg {676struct acpi_table_header header; /* Common ACPI table header */677u8 reserved[8];678};679680/* Subtable */681682struct acpi_mcfg_allocation {683u64 address; /* Base address, processor-relative */684u16 pci_segment; /* PCI segment group number */685u8 start_bus_number; /* Starting PCI Bus number */686u8 end_bus_number; /* Final PCI Bus number */687u32 reserved;688};689690/*******************************************************************************691*692* MCHI - Management Controller Host Interface Table693* Version 1694*695* Conforms to "Management Component Transport Protocol (MCTP) Host696* Interface Specification", Revision 1.0.0a, October 13, 2009697*698******************************************************************************/699700struct acpi_table_mchi {701struct acpi_table_header header; /* Common ACPI table header */702u8 interface_type;703u8 protocol;704u64 protocol_data;705u8 interrupt_type;706u8 gpe;707u8 pci_device_flag;708u32 global_interrupt;709struct acpi_generic_address control_register;710u8 pci_segment;711u8 pci_bus;712u8 pci_device;713u8 pci_function;714};715716/*******************************************************************************717*718* SLIC - Software Licensing Description Table719* Version 1720*721* Conforms to "OEM Activation 2.0 for Windows Vista Operating Systems",722* Copyright 2006723*724******************************************************************************/725726/* Basic SLIC table is only the common ACPI header */727728struct acpi_table_slic {729struct acpi_table_header header; /* Common ACPI table header */730};731732/* Common SLIC subtable header */733734struct acpi_slic_header {735u32 type;736u32 length;737};738739/* Values for Type field above */740741enum acpi_slic_type {742ACPI_SLIC_TYPE_PUBLIC_KEY = 0,743ACPI_SLIC_TYPE_WINDOWS_MARKER = 1,744ACPI_SLIC_TYPE_RESERVED = 2 /* 2 and greater are reserved */745};746747/*748* SLIC Sub-tables, correspond to Type in struct acpi_slic_header749*/750751/* 0: Public Key Structure */752753struct acpi_slic_key {754struct acpi_slic_header header;755u8 key_type;756u8 version;757u16 reserved;758u32 algorithm;759char magic[4];760u32 bit_length;761u32 exponent;762u8 modulus[128];763};764765/* 1: Windows Marker Structure */766767struct acpi_slic_marker {768struct acpi_slic_header header;769u32 version;770char oem_id[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */771char oem_table_id[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */772char windows_flag[8];773u32 slic_version;774u8 reserved[16];775u8 signature[128];776};777778/*******************************************************************************779*780* SPCR - Serial Port Console Redirection table781* Version 1782*783* Conforms to "Serial Port Console Redirection Table",784* Version 1.00, January 11, 2002785*786******************************************************************************/787788struct acpi_table_spcr {789struct acpi_table_header header; /* Common ACPI table header */790u8 interface_type; /* 0=full 16550, 1=subset of 16550 */791u8 reserved[3];792struct acpi_generic_address serial_port;793u8 interrupt_type;794u8 pc_interrupt;795u32 interrupt;796u8 baud_rate;797u8 parity;798u8 stop_bits;799u8 flow_control;800u8 terminal_type;801u8 reserved1;802u16 pci_device_id;803u16 pci_vendor_id;804u8 pci_bus;805u8 pci_device;806u8 pci_function;807u32 pci_flags;808u8 pci_segment;809u32 reserved2;810};811812/* Masks for pci_flags field above */813814#define ACPI_SPCR_DO_NOT_DISABLE (1)815816/*******************************************************************************817*818* SPMI - Server Platform Management Interface table819* Version 5820*821* Conforms to "Intelligent Platform Management Interface Specification822* Second Generation v2.0", Document Revision 1.0, February 12, 2004 with823* June 12, 2009 markup.824*825******************************************************************************/826827struct acpi_table_spmi {828struct acpi_table_header header; /* Common ACPI table header */829u8 interface_type;830u8 reserved; /* Must be 1 */831u16 spec_revision; /* Version of IPMI */832u8 interrupt_type;833u8 gpe_number; /* GPE assigned */834u8 reserved1;835u8 pci_device_flag;836u32 interrupt;837struct acpi_generic_address ipmi_register;838u8 pci_segment;839u8 pci_bus;840u8 pci_device;841u8 pci_function;842u8 reserved2;843};844845/* Values for interface_type above */846847enum acpi_spmi_interface_types {848ACPI_SPMI_NOT_USED = 0,849ACPI_SPMI_KEYBOARD = 1,850ACPI_SPMI_SMI = 2,851ACPI_SPMI_BLOCK_TRANSFER = 3,852ACPI_SPMI_SMBUS = 4,853ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */854};855856/*******************************************************************************857*858* TCPA - Trusted Computing Platform Alliance table859* Version 1860*861* Conforms to "TCG PC Specific Implementation Specification",862* Version 1.1, August 18, 2003863*864******************************************************************************/865866struct acpi_table_tcpa {867struct acpi_table_header header; /* Common ACPI table header */868u16 reserved;869u32 max_log_length; /* Maximum length for the event log area */870u64 log_address; /* Address of the event log area */871};872873/*******************************************************************************874*875* UEFI - UEFI Boot optimization Table876* Version 1877*878* Conforms to "Unified Extensible Firmware Interface Specification",879* Version 2.3, May 8, 2009880*881******************************************************************************/882883struct acpi_table_uefi {884struct acpi_table_header header; /* Common ACPI table header */885u8 identifier[16]; /* UUID identifier */886u16 data_offset; /* Offset of remaining data in table */887};888889/*******************************************************************************890*891* WAET - Windows ACPI Emulated devices Table892* Version 1893*894* Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009895*896******************************************************************************/897898struct acpi_table_waet {899struct acpi_table_header header; /* Common ACPI table header */900u32 flags;901};902903/* Masks for Flags field above */904905#define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */906#define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */907908/*******************************************************************************909*910* WDAT - Watchdog Action Table911* Version 1912*913* Conforms to "Hardware Watchdog Timers Design Specification",914* Copyright 2006 Microsoft Corporation.915*916******************************************************************************/917918struct acpi_table_wdat {919struct acpi_table_header header; /* Common ACPI table header */920u32 header_length; /* Watchdog Header Length */921u16 pci_segment; /* PCI Segment number */922u8 pci_bus; /* PCI Bus number */923u8 pci_device; /* PCI Device number */924u8 pci_function; /* PCI Function number */925u8 reserved[3];926u32 timer_period; /* Period of one timer count (msec) */927u32 max_count; /* Maximum counter value supported */928u32 min_count; /* Minimum counter value */929u8 flags;930u8 reserved2[3];931u32 entries; /* Number of watchdog entries that follow */932};933934/* Masks for Flags field above */935936#define ACPI_WDAT_ENABLED (1)937#define ACPI_WDAT_STOPPED 0x80938939/* WDAT Instruction Entries (actions) */940941struct acpi_wdat_entry {942u8 action;943u8 instruction;944u16 reserved;945struct acpi_generic_address register_region;946u32 value; /* Value used with Read/Write register */947u32 mask; /* Bitmask required for this register instruction */948};949950/* Values for Action field above */951952enum acpi_wdat_actions {953ACPI_WDAT_RESET = 1,954ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4,955ACPI_WDAT_GET_COUNTDOWN = 5,956ACPI_WDAT_SET_COUNTDOWN = 6,957ACPI_WDAT_GET_RUNNING_STATE = 8,958ACPI_WDAT_SET_RUNNING_STATE = 9,959ACPI_WDAT_GET_STOPPED_STATE = 10,960ACPI_WDAT_SET_STOPPED_STATE = 11,961ACPI_WDAT_GET_REBOOT = 16,962ACPI_WDAT_SET_REBOOT = 17,963ACPI_WDAT_GET_SHUTDOWN = 18,964ACPI_WDAT_SET_SHUTDOWN = 19,965ACPI_WDAT_GET_STATUS = 32,966ACPI_WDAT_SET_STATUS = 33,967ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */968};969970/* Values for Instruction field above */971972enum acpi_wdat_instructions {973ACPI_WDAT_READ_VALUE = 0,974ACPI_WDAT_READ_COUNTDOWN = 1,975ACPI_WDAT_WRITE_VALUE = 2,976ACPI_WDAT_WRITE_COUNTDOWN = 3,977ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */978ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */979};980981/*******************************************************************************982*983* WDDT - Watchdog Descriptor Table984* Version 1985*986* Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)",987* Version 001, September 2002988*989******************************************************************************/990991struct acpi_table_wddt {992struct acpi_table_header header; /* Common ACPI table header */993u16 spec_version;994u16 table_version;995u16 pci_vendor_id;996struct acpi_generic_address address;997u16 max_count; /* Maximum counter value supported */998u16 min_count; /* Minimum counter value supported */999u16 period;1000u16 status;1001u16 capability;1002};10031004/* Flags for Status field above */10051006#define ACPI_WDDT_AVAILABLE (1)1007#define ACPI_WDDT_ACTIVE (1<<1)1008#define ACPI_WDDT_TCO_OS_OWNED (1<<2)1009#define ACPI_WDDT_USER_RESET (1<<11)1010#define ACPI_WDDT_WDT_RESET (1<<12)1011#define ACPI_WDDT_POWER_FAIL (1<<13)1012#define ACPI_WDDT_UNKNOWN_RESET (1<<14)10131014/* Flags for Capability field above */10151016#define ACPI_WDDT_AUTO_RESET (1)1017#define ACPI_WDDT_ALERT_SUPPORT (1<<1)10181019/*******************************************************************************1020*1021* WDRT - Watchdog Resource Table1022* Version 11023*1024* Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003",1025* Version 1.01, August 28, 20061026*1027******************************************************************************/10281029struct acpi_table_wdrt {1030struct acpi_table_header header; /* Common ACPI table header */1031struct acpi_generic_address control_register;1032struct acpi_generic_address count_register;1033u16 pci_device_id;1034u16 pci_vendor_id;1035u8 pci_bus; /* PCI Bus number */1036u8 pci_device; /* PCI Device number */1037u8 pci_function; /* PCI Function number */1038u8 pci_segment; /* PCI Segment number */1039u16 max_count; /* Maximum counter value supported */1040u8 units;1041};10421043/* Reset to default packing */10441045#pragma pack()10461047#endif /* __ACTBL2_H__ */104810491050