162306a36Sopenharmony_ci/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 262306a36Sopenharmony_ci/****************************************************************************** 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Name: actbl3.h - ACPI Table Definitions 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (C) 2000 - 2023, Intel Corp. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci *****************************************************************************/ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef __ACTBL3_H__ 1162306a36Sopenharmony_ci#define __ACTBL3_H__ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/******************************************************************************* 1462306a36Sopenharmony_ci * 1562306a36Sopenharmony_ci * Additional ACPI Tables 1662306a36Sopenharmony_ci * 1762306a36Sopenharmony_ci * These tables are not consumed directly by the ACPICA subsystem, but are 1862306a36Sopenharmony_ci * included here to support device drivers and the AML disassembler. 1962306a36Sopenharmony_ci * 2062306a36Sopenharmony_ci ******************************************************************************/ 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci/* 2362306a36Sopenharmony_ci * Values for description table header signatures for tables defined in this 2462306a36Sopenharmony_ci * file. Useful because they make it more difficult to inadvertently type in 2562306a36Sopenharmony_ci * the wrong signature. 2662306a36Sopenharmony_ci */ 2762306a36Sopenharmony_ci#define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ 2862306a36Sopenharmony_ci#define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */ 2962306a36Sopenharmony_ci#define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ 3062306a36Sopenharmony_ci#define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ 3162306a36Sopenharmony_ci#define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */ 3262306a36Sopenharmony_ci#define ACPI_SIG_STAO "STAO" /* Status Override table */ 3362306a36Sopenharmony_ci#define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ 3462306a36Sopenharmony_ci#define ACPI_SIG_TPM2 "TPM2" /* Trusted Platform Module 2.0 H/W interface table */ 3562306a36Sopenharmony_ci#define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ 3662306a36Sopenharmony_ci#define ACPI_SIG_VIOT "VIOT" /* Virtual I/O Translation Table */ 3762306a36Sopenharmony_ci#define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ 3862306a36Sopenharmony_ci#define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ 3962306a36Sopenharmony_ci#define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ 4062306a36Sopenharmony_ci#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ 4162306a36Sopenharmony_ci#define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary Table */ 4262306a36Sopenharmony_ci#define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Mitigations Table */ 4362306a36Sopenharmony_ci#define ACPI_SIG_XENV "XENV" /* Xen Environment table */ 4462306a36Sopenharmony_ci#define ACPI_SIG_XXXX "XXXX" /* Intermediate AML header for ASL/ASL+ converter */ 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci/* 4762306a36Sopenharmony_ci * All tables must be byte-packed to match the ACPI specification, since 4862306a36Sopenharmony_ci * the tables are provided by the system BIOS. 4962306a36Sopenharmony_ci */ 5062306a36Sopenharmony_ci#pragma pack(1) 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci/* 5362306a36Sopenharmony_ci * Note: C bitfields are not used for this reason: 5462306a36Sopenharmony_ci * 5562306a36Sopenharmony_ci * "Bitfields are great and easy to read, but unfortunately the C language 5662306a36Sopenharmony_ci * does not specify the layout of bitfields in memory, which means they are 5762306a36Sopenharmony_ci * essentially useless for dealing with packed data in on-disk formats or 5862306a36Sopenharmony_ci * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me, 5962306a36Sopenharmony_ci * this decision was a design error in C. Ritchie could have picked an order 6062306a36Sopenharmony_ci * and stuck with it." Norman Ramsey. 6162306a36Sopenharmony_ci * See http://stackoverflow.com/a/1053662/41661 6262306a36Sopenharmony_ci */ 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci/******************************************************************************* 6562306a36Sopenharmony_ci * 6662306a36Sopenharmony_ci * SLIC - Software Licensing Description Table 6762306a36Sopenharmony_ci * 6862306a36Sopenharmony_ci * Conforms to "Microsoft Software Licensing Tables (SLIC and MSDM)", 6962306a36Sopenharmony_ci * November 29, 2011. Copyright 2011 Microsoft 7062306a36Sopenharmony_ci * 7162306a36Sopenharmony_ci ******************************************************************************/ 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci/* Basic SLIC table is only the common ACPI header */ 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_cistruct acpi_table_slic { 7662306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 7762306a36Sopenharmony_ci}; 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci/******************************************************************************* 8062306a36Sopenharmony_ci * 8162306a36Sopenharmony_ci * SLIT - System Locality Distance Information Table 8262306a36Sopenharmony_ci * Version 1 8362306a36Sopenharmony_ci * 8462306a36Sopenharmony_ci ******************************************************************************/ 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_cistruct acpi_table_slit { 8762306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 8862306a36Sopenharmony_ci u64 locality_count; 8962306a36Sopenharmony_ci u8 entry[]; /* Real size = localities^2 */ 9062306a36Sopenharmony_ci}; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci/******************************************************************************* 9362306a36Sopenharmony_ci * 9462306a36Sopenharmony_ci * SPCR - Serial Port Console Redirection table 9562306a36Sopenharmony_ci * Version 2 9662306a36Sopenharmony_ci * 9762306a36Sopenharmony_ci * Conforms to "Serial Port Console Redirection Table", 9862306a36Sopenharmony_ci * Version 1.03, August 10, 2015 9962306a36Sopenharmony_ci * 10062306a36Sopenharmony_ci ******************************************************************************/ 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_cistruct acpi_table_spcr { 10362306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 10462306a36Sopenharmony_ci u8 interface_type; /* 0=full 16550, 1=subset of 16550 */ 10562306a36Sopenharmony_ci u8 reserved[3]; 10662306a36Sopenharmony_ci struct acpi_generic_address serial_port; 10762306a36Sopenharmony_ci u8 interrupt_type; 10862306a36Sopenharmony_ci u8 pc_interrupt; 10962306a36Sopenharmony_ci u32 interrupt; 11062306a36Sopenharmony_ci u8 baud_rate; 11162306a36Sopenharmony_ci u8 parity; 11262306a36Sopenharmony_ci u8 stop_bits; 11362306a36Sopenharmony_ci u8 flow_control; 11462306a36Sopenharmony_ci u8 terminal_type; 11562306a36Sopenharmony_ci u8 reserved1; 11662306a36Sopenharmony_ci u16 pci_device_id; 11762306a36Sopenharmony_ci u16 pci_vendor_id; 11862306a36Sopenharmony_ci u8 pci_bus; 11962306a36Sopenharmony_ci u8 pci_device; 12062306a36Sopenharmony_ci u8 pci_function; 12162306a36Sopenharmony_ci u32 pci_flags; 12262306a36Sopenharmony_ci u8 pci_segment; 12362306a36Sopenharmony_ci u32 reserved2; 12462306a36Sopenharmony_ci}; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci/* Masks for pci_flags field above */ 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci#define ACPI_SPCR_DO_NOT_DISABLE (1) 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci/* Values for Interface Type: See the definition of the DBG2 table */ 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci/******************************************************************************* 13362306a36Sopenharmony_ci * 13462306a36Sopenharmony_ci * SPMI - Server Platform Management Interface table 13562306a36Sopenharmony_ci * Version 5 13662306a36Sopenharmony_ci * 13762306a36Sopenharmony_ci * Conforms to "Intelligent Platform Management Interface Specification 13862306a36Sopenharmony_ci * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with 13962306a36Sopenharmony_ci * June 12, 2009 markup. 14062306a36Sopenharmony_ci * 14162306a36Sopenharmony_ci ******************************************************************************/ 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_cistruct acpi_table_spmi { 14462306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 14562306a36Sopenharmony_ci u8 interface_type; 14662306a36Sopenharmony_ci u8 reserved; /* Must be 1 */ 14762306a36Sopenharmony_ci u16 spec_revision; /* Version of IPMI */ 14862306a36Sopenharmony_ci u8 interrupt_type; 14962306a36Sopenharmony_ci u8 gpe_number; /* GPE assigned */ 15062306a36Sopenharmony_ci u8 reserved1; 15162306a36Sopenharmony_ci u8 pci_device_flag; 15262306a36Sopenharmony_ci u32 interrupt; 15362306a36Sopenharmony_ci struct acpi_generic_address ipmi_register; 15462306a36Sopenharmony_ci u8 pci_segment; 15562306a36Sopenharmony_ci u8 pci_bus; 15662306a36Sopenharmony_ci u8 pci_device; 15762306a36Sopenharmony_ci u8 pci_function; 15862306a36Sopenharmony_ci u8 reserved2; 15962306a36Sopenharmony_ci}; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci/* Values for interface_type above */ 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_cienum acpi_spmi_interface_types { 16462306a36Sopenharmony_ci ACPI_SPMI_NOT_USED = 0, 16562306a36Sopenharmony_ci ACPI_SPMI_KEYBOARD = 1, 16662306a36Sopenharmony_ci ACPI_SPMI_SMI = 2, 16762306a36Sopenharmony_ci ACPI_SPMI_BLOCK_TRANSFER = 3, 16862306a36Sopenharmony_ci ACPI_SPMI_SMBUS = 4, 16962306a36Sopenharmony_ci ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */ 17062306a36Sopenharmony_ci}; 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci/******************************************************************************* 17362306a36Sopenharmony_ci * 17462306a36Sopenharmony_ci * SRAT - System Resource Affinity Table 17562306a36Sopenharmony_ci * Version 3 17662306a36Sopenharmony_ci * 17762306a36Sopenharmony_ci ******************************************************************************/ 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_cistruct acpi_table_srat { 18062306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 18162306a36Sopenharmony_ci u32 table_revision; /* Must be value '1' */ 18262306a36Sopenharmony_ci u64 reserved; /* Reserved, must be zero */ 18362306a36Sopenharmony_ci}; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci/* Values for subtable type in struct acpi_subtable_header */ 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_cienum acpi_srat_type { 18862306a36Sopenharmony_ci ACPI_SRAT_TYPE_CPU_AFFINITY = 0, 18962306a36Sopenharmony_ci ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, 19062306a36Sopenharmony_ci ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, 19162306a36Sopenharmony_ci ACPI_SRAT_TYPE_GICC_AFFINITY = 3, 19262306a36Sopenharmony_ci ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */ 19362306a36Sopenharmony_ci ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, /* ACPI 6.3 */ 19462306a36Sopenharmony_ci ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, /* ACPI 6.4 */ 19562306a36Sopenharmony_ci ACPI_SRAT_TYPE_RESERVED = 7 /* 7 and greater are reserved */ 19662306a36Sopenharmony_ci}; 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ci/* 19962306a36Sopenharmony_ci * SRAT Subtables, correspond to Type in struct acpi_subtable_header 20062306a36Sopenharmony_ci */ 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci/* 0: Processor Local APIC/SAPIC Affinity */ 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_cistruct acpi_srat_cpu_affinity { 20562306a36Sopenharmony_ci struct acpi_subtable_header header; 20662306a36Sopenharmony_ci u8 proximity_domain_lo; 20762306a36Sopenharmony_ci u8 apic_id; 20862306a36Sopenharmony_ci u32 flags; 20962306a36Sopenharmony_ci u8 local_sapic_eid; 21062306a36Sopenharmony_ci u8 proximity_domain_hi[3]; 21162306a36Sopenharmony_ci u32 clock_domain; 21262306a36Sopenharmony_ci}; 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci/* Flags */ 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ci#define ACPI_SRAT_CPU_USE_AFFINITY (1) /* 00: Use affinity structure */ 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci/* 1: Memory Affinity */ 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_cistruct acpi_srat_mem_affinity { 22162306a36Sopenharmony_ci struct acpi_subtable_header header; 22262306a36Sopenharmony_ci u32 proximity_domain; 22362306a36Sopenharmony_ci u16 reserved; /* Reserved, must be zero */ 22462306a36Sopenharmony_ci u64 base_address; 22562306a36Sopenharmony_ci u64 length; 22662306a36Sopenharmony_ci u32 reserved1; 22762306a36Sopenharmony_ci u32 flags; 22862306a36Sopenharmony_ci u64 reserved2; /* Reserved, must be zero */ 22962306a36Sopenharmony_ci}; 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ci/* Flags */ 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci#define ACPI_SRAT_MEM_ENABLED (1) /* 00: Use affinity structure */ 23462306a36Sopenharmony_ci#define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */ 23562306a36Sopenharmony_ci#define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */ 23662306a36Sopenharmony_ci 23762306a36Sopenharmony_ci/* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */ 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_cistruct acpi_srat_x2apic_cpu_affinity { 24062306a36Sopenharmony_ci struct acpi_subtable_header header; 24162306a36Sopenharmony_ci u16 reserved; /* Reserved, must be zero */ 24262306a36Sopenharmony_ci u32 proximity_domain; 24362306a36Sopenharmony_ci u32 apic_id; 24462306a36Sopenharmony_ci u32 flags; 24562306a36Sopenharmony_ci u32 clock_domain; 24662306a36Sopenharmony_ci u32 reserved2; 24762306a36Sopenharmony_ci}; 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ci/* Flags for struct acpi_srat_cpu_affinity and struct acpi_srat_x2apic_cpu_affinity */ 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ci#define ACPI_SRAT_CPU_ENABLED (1) /* 00: Use affinity structure */ 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci/* 3: GICC Affinity (ACPI 5.1) */ 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_cistruct acpi_srat_gicc_affinity { 25662306a36Sopenharmony_ci struct acpi_subtable_header header; 25762306a36Sopenharmony_ci u32 proximity_domain; 25862306a36Sopenharmony_ci u32 acpi_processor_uid; 25962306a36Sopenharmony_ci u32 flags; 26062306a36Sopenharmony_ci u32 clock_domain; 26162306a36Sopenharmony_ci}; 26262306a36Sopenharmony_ci 26362306a36Sopenharmony_ci/* Flags for struct acpi_srat_gicc_affinity */ 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ci#define ACPI_SRAT_GICC_ENABLED (1) /* 00: Use affinity structure */ 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ci/* 4: GCC ITS Affinity (ACPI 6.2) */ 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_cistruct acpi_srat_gic_its_affinity { 27062306a36Sopenharmony_ci struct acpi_subtable_header header; 27162306a36Sopenharmony_ci u32 proximity_domain; 27262306a36Sopenharmony_ci u16 reserved; 27362306a36Sopenharmony_ci u32 its_id; 27462306a36Sopenharmony_ci}; 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci/* 27762306a36Sopenharmony_ci * Common structure for SRAT subtable types: 27862306a36Sopenharmony_ci * 5: ACPI_SRAT_TYPE_GENERIC_AFFINITY 27962306a36Sopenharmony_ci * 6: ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY 28062306a36Sopenharmony_ci */ 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci#define ACPI_SRAT_DEVICE_HANDLE_SIZE 16 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_cistruct acpi_srat_generic_affinity { 28562306a36Sopenharmony_ci struct acpi_subtable_header header; 28662306a36Sopenharmony_ci u8 reserved; 28762306a36Sopenharmony_ci u8 device_handle_type; 28862306a36Sopenharmony_ci u32 proximity_domain; 28962306a36Sopenharmony_ci u8 device_handle[ACPI_SRAT_DEVICE_HANDLE_SIZE]; 29062306a36Sopenharmony_ci u32 flags; 29162306a36Sopenharmony_ci u32 reserved1; 29262306a36Sopenharmony_ci}; 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ci/* Flags for struct acpi_srat_generic_affinity */ 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_ci#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ 29762306a36Sopenharmony_ci#define ACPI_SRAT_ARCHITECTURAL_TRANSACTIONS (1<<1) /* ACPI 6.4 */ 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci/******************************************************************************* 30062306a36Sopenharmony_ci * 30162306a36Sopenharmony_ci * STAO - Status Override Table (_STA override) - ACPI 6.0 30262306a36Sopenharmony_ci * Version 1 30362306a36Sopenharmony_ci * 30462306a36Sopenharmony_ci * Conforms to "ACPI Specification for Status Override Table" 30562306a36Sopenharmony_ci * 6 January 2015 30662306a36Sopenharmony_ci * 30762306a36Sopenharmony_ci ******************************************************************************/ 30862306a36Sopenharmony_ci 30962306a36Sopenharmony_cistruct acpi_table_stao { 31062306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 31162306a36Sopenharmony_ci u8 ignore_uart; 31262306a36Sopenharmony_ci}; 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci/******************************************************************************* 31562306a36Sopenharmony_ci * 31662306a36Sopenharmony_ci * TCPA - Trusted Computing Platform Alliance table 31762306a36Sopenharmony_ci * Version 2 31862306a36Sopenharmony_ci * 31962306a36Sopenharmony_ci * TCG Hardware Interface Table for TPM 1.2 Clients and Servers 32062306a36Sopenharmony_ci * 32162306a36Sopenharmony_ci * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0", 32262306a36Sopenharmony_ci * Version 1.2, Revision 8 32362306a36Sopenharmony_ci * February 27, 2017 32462306a36Sopenharmony_ci * 32562306a36Sopenharmony_ci * NOTE: There are two versions of the table with the same signature -- 32662306a36Sopenharmony_ci * the client version and the server version. The common platform_class 32762306a36Sopenharmony_ci * field is used to differentiate the two types of tables. 32862306a36Sopenharmony_ci * 32962306a36Sopenharmony_ci ******************************************************************************/ 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_cistruct acpi_table_tcpa_hdr { 33262306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 33362306a36Sopenharmony_ci u16 platform_class; 33462306a36Sopenharmony_ci}; 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ci/* 33762306a36Sopenharmony_ci * Values for platform_class above. 33862306a36Sopenharmony_ci * This is how the client and server subtables are differentiated 33962306a36Sopenharmony_ci */ 34062306a36Sopenharmony_ci#define ACPI_TCPA_CLIENT_TABLE 0 34162306a36Sopenharmony_ci#define ACPI_TCPA_SERVER_TABLE 1 34262306a36Sopenharmony_ci 34362306a36Sopenharmony_cistruct acpi_table_tcpa_client { 34462306a36Sopenharmony_ci u32 minimum_log_length; /* Minimum length for the event log area */ 34562306a36Sopenharmony_ci u64 log_address; /* Address of the event log area */ 34662306a36Sopenharmony_ci}; 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_cistruct acpi_table_tcpa_server { 34962306a36Sopenharmony_ci u16 reserved; 35062306a36Sopenharmony_ci u64 minimum_log_length; /* Minimum length for the event log area */ 35162306a36Sopenharmony_ci u64 log_address; /* Address of the event log area */ 35262306a36Sopenharmony_ci u16 spec_revision; 35362306a36Sopenharmony_ci u8 device_flags; 35462306a36Sopenharmony_ci u8 interrupt_flags; 35562306a36Sopenharmony_ci u8 gpe_number; 35662306a36Sopenharmony_ci u8 reserved2[3]; 35762306a36Sopenharmony_ci u32 global_interrupt; 35862306a36Sopenharmony_ci struct acpi_generic_address address; 35962306a36Sopenharmony_ci u32 reserved3; 36062306a36Sopenharmony_ci struct acpi_generic_address config_address; 36162306a36Sopenharmony_ci u8 group; 36262306a36Sopenharmony_ci u8 bus; /* PCI Bus/Segment/Function numbers */ 36362306a36Sopenharmony_ci u8 device; 36462306a36Sopenharmony_ci u8 function; 36562306a36Sopenharmony_ci}; 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_ci/* Values for device_flags above */ 36862306a36Sopenharmony_ci 36962306a36Sopenharmony_ci#define ACPI_TCPA_PCI_DEVICE (1) 37062306a36Sopenharmony_ci#define ACPI_TCPA_BUS_PNP (1<<1) 37162306a36Sopenharmony_ci#define ACPI_TCPA_ADDRESS_VALID (1<<2) 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci/* Values for interrupt_flags above */ 37462306a36Sopenharmony_ci 37562306a36Sopenharmony_ci#define ACPI_TCPA_INTERRUPT_MODE (1) 37662306a36Sopenharmony_ci#define ACPI_TCPA_INTERRUPT_POLARITY (1<<1) 37762306a36Sopenharmony_ci#define ACPI_TCPA_SCI_VIA_GPE (1<<2) 37862306a36Sopenharmony_ci#define ACPI_TCPA_GLOBAL_INTERRUPT (1<<3) 37962306a36Sopenharmony_ci 38062306a36Sopenharmony_ci/******************************************************************************* 38162306a36Sopenharmony_ci * 38262306a36Sopenharmony_ci * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table 38362306a36Sopenharmony_ci * Version 4 38462306a36Sopenharmony_ci * 38562306a36Sopenharmony_ci * TCG Hardware Interface Table for TPM 2.0 Clients and Servers 38662306a36Sopenharmony_ci * 38762306a36Sopenharmony_ci * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0", 38862306a36Sopenharmony_ci * Version 1.2, Revision 8 38962306a36Sopenharmony_ci * February 27, 2017 39062306a36Sopenharmony_ci * 39162306a36Sopenharmony_ci ******************************************************************************/ 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ci/* Revision 3 */ 39462306a36Sopenharmony_ci 39562306a36Sopenharmony_cistruct acpi_table_tpm23 { 39662306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 39762306a36Sopenharmony_ci u32 reserved; 39862306a36Sopenharmony_ci u64 control_address; 39962306a36Sopenharmony_ci u32 start_method; 40062306a36Sopenharmony_ci}; 40162306a36Sopenharmony_ci 40262306a36Sopenharmony_ci/* Value for start_method above */ 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ci#define ACPI_TPM23_ACPI_START_METHOD 2 40562306a36Sopenharmony_ci 40662306a36Sopenharmony_ci/* 40762306a36Sopenharmony_ci * Optional trailer for revision 3. If start method is 2, there is a 4 byte 40862306a36Sopenharmony_ci * reserved area of all zeros. 40962306a36Sopenharmony_ci */ 41062306a36Sopenharmony_cistruct acpi_tmp23_trailer { 41162306a36Sopenharmony_ci u32 reserved; 41262306a36Sopenharmony_ci}; 41362306a36Sopenharmony_ci 41462306a36Sopenharmony_ci/* Revision 4 */ 41562306a36Sopenharmony_ci 41662306a36Sopenharmony_cistruct acpi_table_tpm2 { 41762306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 41862306a36Sopenharmony_ci u16 platform_class; 41962306a36Sopenharmony_ci u16 reserved; 42062306a36Sopenharmony_ci u64 control_address; 42162306a36Sopenharmony_ci u32 start_method; 42262306a36Sopenharmony_ci 42362306a36Sopenharmony_ci /* Platform-specific data follows */ 42462306a36Sopenharmony_ci}; 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ci/* Optional trailer for revision 4 holding platform-specific data */ 42762306a36Sopenharmony_cistruct acpi_tpm2_phy { 42862306a36Sopenharmony_ci u8 start_method_specific[12]; 42962306a36Sopenharmony_ci u32 log_area_minimum_length; 43062306a36Sopenharmony_ci u64 log_area_start_address; 43162306a36Sopenharmony_ci}; 43262306a36Sopenharmony_ci 43362306a36Sopenharmony_ci/* Values for start_method above */ 43462306a36Sopenharmony_ci 43562306a36Sopenharmony_ci#define ACPI_TPM2_NOT_ALLOWED 0 43662306a36Sopenharmony_ci#define ACPI_TPM2_RESERVED1 1 43762306a36Sopenharmony_ci#define ACPI_TPM2_START_METHOD 2 43862306a36Sopenharmony_ci#define ACPI_TPM2_RESERVED3 3 43962306a36Sopenharmony_ci#define ACPI_TPM2_RESERVED4 4 44062306a36Sopenharmony_ci#define ACPI_TPM2_RESERVED5 5 44162306a36Sopenharmony_ci#define ACPI_TPM2_MEMORY_MAPPED 6 44262306a36Sopenharmony_ci#define ACPI_TPM2_COMMAND_BUFFER 7 44362306a36Sopenharmony_ci#define ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD 8 44462306a36Sopenharmony_ci#define ACPI_TPM2_RESERVED9 9 44562306a36Sopenharmony_ci#define ACPI_TPM2_RESERVED10 10 44662306a36Sopenharmony_ci#define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC 11 /* V1.2 Rev 8 */ 44762306a36Sopenharmony_ci#define ACPI_TPM2_RESERVED 12 44862306a36Sopenharmony_ci#define ACPI_TPM2_COMMAND_BUFFER_WITH_PLUTON 13 44962306a36Sopenharmony_ci 45062306a36Sopenharmony_ci/* Optional trailer appears after any start_method subtables */ 45162306a36Sopenharmony_ci 45262306a36Sopenharmony_cistruct acpi_tpm2_trailer { 45362306a36Sopenharmony_ci u8 method_parameters[12]; 45462306a36Sopenharmony_ci u32 minimum_log_length; /* Minimum length for the event log area */ 45562306a36Sopenharmony_ci u64 log_address; /* Address of the event log area */ 45662306a36Sopenharmony_ci}; 45762306a36Sopenharmony_ci 45862306a36Sopenharmony_ci/* 45962306a36Sopenharmony_ci * Subtables (start_method-specific) 46062306a36Sopenharmony_ci */ 46162306a36Sopenharmony_ci 46262306a36Sopenharmony_ci/* 11: Start Method for ARM SMC (V1.2 Rev 8) */ 46362306a36Sopenharmony_ci 46462306a36Sopenharmony_cistruct acpi_tpm2_arm_smc { 46562306a36Sopenharmony_ci u32 global_interrupt; 46662306a36Sopenharmony_ci u8 interrupt_flags; 46762306a36Sopenharmony_ci u8 operation_flags; 46862306a36Sopenharmony_ci u16 reserved; 46962306a36Sopenharmony_ci u32 function_id; 47062306a36Sopenharmony_ci}; 47162306a36Sopenharmony_ci 47262306a36Sopenharmony_ci/* Values for interrupt_flags above */ 47362306a36Sopenharmony_ci 47462306a36Sopenharmony_ci#define ACPI_TPM2_INTERRUPT_SUPPORT (1) 47562306a36Sopenharmony_ci 47662306a36Sopenharmony_ci/* Values for operation_flags above */ 47762306a36Sopenharmony_ci 47862306a36Sopenharmony_ci#define ACPI_TPM2_IDLE_SUPPORT (1) 47962306a36Sopenharmony_ci 48062306a36Sopenharmony_ci/******************************************************************************* 48162306a36Sopenharmony_ci * 48262306a36Sopenharmony_ci * UEFI - UEFI Boot optimization Table 48362306a36Sopenharmony_ci * Version 1 48462306a36Sopenharmony_ci * 48562306a36Sopenharmony_ci * Conforms to "Unified Extensible Firmware Interface Specification", 48662306a36Sopenharmony_ci * Version 2.3, May 8, 2009 48762306a36Sopenharmony_ci * 48862306a36Sopenharmony_ci ******************************************************************************/ 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_cistruct acpi_table_uefi { 49162306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 49262306a36Sopenharmony_ci u8 identifier[16]; /* UUID identifier */ 49362306a36Sopenharmony_ci u16 data_offset; /* Offset of remaining data in table */ 49462306a36Sopenharmony_ci}; 49562306a36Sopenharmony_ci 49662306a36Sopenharmony_ci/******************************************************************************* 49762306a36Sopenharmony_ci * 49862306a36Sopenharmony_ci * VIOT - Virtual I/O Translation Table 49962306a36Sopenharmony_ci * Version 1 50062306a36Sopenharmony_ci * 50162306a36Sopenharmony_ci ******************************************************************************/ 50262306a36Sopenharmony_ci 50362306a36Sopenharmony_cistruct acpi_table_viot { 50462306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 50562306a36Sopenharmony_ci u16 node_count; 50662306a36Sopenharmony_ci u16 node_offset; 50762306a36Sopenharmony_ci u8 reserved[8]; 50862306a36Sopenharmony_ci}; 50962306a36Sopenharmony_ci 51062306a36Sopenharmony_ci/* VIOT subtable header */ 51162306a36Sopenharmony_ci 51262306a36Sopenharmony_cistruct acpi_viot_header { 51362306a36Sopenharmony_ci u8 type; 51462306a36Sopenharmony_ci u8 reserved; 51562306a36Sopenharmony_ci u16 length; 51662306a36Sopenharmony_ci}; 51762306a36Sopenharmony_ci 51862306a36Sopenharmony_ci/* Values for Type field above */ 51962306a36Sopenharmony_ci 52062306a36Sopenharmony_cienum acpi_viot_node_type { 52162306a36Sopenharmony_ci ACPI_VIOT_NODE_PCI_RANGE = 0x01, 52262306a36Sopenharmony_ci ACPI_VIOT_NODE_MMIO = 0x02, 52362306a36Sopenharmony_ci ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI = 0x03, 52462306a36Sopenharmony_ci ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO = 0x04, 52562306a36Sopenharmony_ci ACPI_VIOT_RESERVED = 0x05 52662306a36Sopenharmony_ci}; 52762306a36Sopenharmony_ci 52862306a36Sopenharmony_ci/* VIOT subtables */ 52962306a36Sopenharmony_ci 53062306a36Sopenharmony_cistruct acpi_viot_pci_range { 53162306a36Sopenharmony_ci struct acpi_viot_header header; 53262306a36Sopenharmony_ci u32 endpoint_start; 53362306a36Sopenharmony_ci u16 segment_start; 53462306a36Sopenharmony_ci u16 segment_end; 53562306a36Sopenharmony_ci u16 bdf_start; 53662306a36Sopenharmony_ci u16 bdf_end; 53762306a36Sopenharmony_ci u16 output_node; 53862306a36Sopenharmony_ci u8 reserved[6]; 53962306a36Sopenharmony_ci}; 54062306a36Sopenharmony_ci 54162306a36Sopenharmony_cistruct acpi_viot_mmio { 54262306a36Sopenharmony_ci struct acpi_viot_header header; 54362306a36Sopenharmony_ci u32 endpoint; 54462306a36Sopenharmony_ci u64 base_address; 54562306a36Sopenharmony_ci u16 output_node; 54662306a36Sopenharmony_ci u8 reserved[6]; 54762306a36Sopenharmony_ci}; 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_cistruct acpi_viot_virtio_iommu_pci { 55062306a36Sopenharmony_ci struct acpi_viot_header header; 55162306a36Sopenharmony_ci u16 segment; 55262306a36Sopenharmony_ci u16 bdf; 55362306a36Sopenharmony_ci u8 reserved[8]; 55462306a36Sopenharmony_ci}; 55562306a36Sopenharmony_ci 55662306a36Sopenharmony_cistruct acpi_viot_virtio_iommu_mmio { 55762306a36Sopenharmony_ci struct acpi_viot_header header; 55862306a36Sopenharmony_ci u8 reserved[4]; 55962306a36Sopenharmony_ci u64 base_address; 56062306a36Sopenharmony_ci}; 56162306a36Sopenharmony_ci 56262306a36Sopenharmony_ci/******************************************************************************* 56362306a36Sopenharmony_ci * 56462306a36Sopenharmony_ci * WAET - Windows ACPI Emulated devices Table 56562306a36Sopenharmony_ci * Version 1 56662306a36Sopenharmony_ci * 56762306a36Sopenharmony_ci * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009 56862306a36Sopenharmony_ci * 56962306a36Sopenharmony_ci ******************************************************************************/ 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_cistruct acpi_table_waet { 57262306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 57362306a36Sopenharmony_ci u32 flags; 57462306a36Sopenharmony_ci}; 57562306a36Sopenharmony_ci 57662306a36Sopenharmony_ci/* Masks for Flags field above */ 57762306a36Sopenharmony_ci 57862306a36Sopenharmony_ci#define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */ 57962306a36Sopenharmony_ci#define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */ 58062306a36Sopenharmony_ci 58162306a36Sopenharmony_ci/******************************************************************************* 58262306a36Sopenharmony_ci * 58362306a36Sopenharmony_ci * WDAT - Watchdog Action Table 58462306a36Sopenharmony_ci * Version 1 58562306a36Sopenharmony_ci * 58662306a36Sopenharmony_ci * Conforms to "Hardware Watchdog Timers Design Specification", 58762306a36Sopenharmony_ci * Copyright 2006 Microsoft Corporation. 58862306a36Sopenharmony_ci * 58962306a36Sopenharmony_ci ******************************************************************************/ 59062306a36Sopenharmony_ci 59162306a36Sopenharmony_cistruct acpi_table_wdat { 59262306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 59362306a36Sopenharmony_ci u32 header_length; /* Watchdog Header Length */ 59462306a36Sopenharmony_ci u16 pci_segment; /* PCI Segment number */ 59562306a36Sopenharmony_ci u8 pci_bus; /* PCI Bus number */ 59662306a36Sopenharmony_ci u8 pci_device; /* PCI Device number */ 59762306a36Sopenharmony_ci u8 pci_function; /* PCI Function number */ 59862306a36Sopenharmony_ci u8 reserved[3]; 59962306a36Sopenharmony_ci u32 timer_period; /* Period of one timer count (msec) */ 60062306a36Sopenharmony_ci u32 max_count; /* Maximum counter value supported */ 60162306a36Sopenharmony_ci u32 min_count; /* Minimum counter value */ 60262306a36Sopenharmony_ci u8 flags; 60362306a36Sopenharmony_ci u8 reserved2[3]; 60462306a36Sopenharmony_ci u32 entries; /* Number of watchdog entries that follow */ 60562306a36Sopenharmony_ci}; 60662306a36Sopenharmony_ci 60762306a36Sopenharmony_ci/* Masks for Flags field above */ 60862306a36Sopenharmony_ci 60962306a36Sopenharmony_ci#define ACPI_WDAT_ENABLED (1) 61062306a36Sopenharmony_ci#define ACPI_WDAT_STOPPED 0x80 61162306a36Sopenharmony_ci 61262306a36Sopenharmony_ci/* WDAT Instruction Entries (actions) */ 61362306a36Sopenharmony_ci 61462306a36Sopenharmony_cistruct acpi_wdat_entry { 61562306a36Sopenharmony_ci u8 action; 61662306a36Sopenharmony_ci u8 instruction; 61762306a36Sopenharmony_ci u16 reserved; 61862306a36Sopenharmony_ci struct acpi_generic_address register_region; 61962306a36Sopenharmony_ci u32 value; /* Value used with Read/Write register */ 62062306a36Sopenharmony_ci u32 mask; /* Bitmask required for this register instruction */ 62162306a36Sopenharmony_ci}; 62262306a36Sopenharmony_ci 62362306a36Sopenharmony_ci/* Values for Action field above */ 62462306a36Sopenharmony_ci 62562306a36Sopenharmony_cienum acpi_wdat_actions { 62662306a36Sopenharmony_ci ACPI_WDAT_RESET = 1, 62762306a36Sopenharmony_ci ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4, 62862306a36Sopenharmony_ci ACPI_WDAT_GET_COUNTDOWN = 5, 62962306a36Sopenharmony_ci ACPI_WDAT_SET_COUNTDOWN = 6, 63062306a36Sopenharmony_ci ACPI_WDAT_GET_RUNNING_STATE = 8, 63162306a36Sopenharmony_ci ACPI_WDAT_SET_RUNNING_STATE = 9, 63262306a36Sopenharmony_ci ACPI_WDAT_GET_STOPPED_STATE = 10, 63362306a36Sopenharmony_ci ACPI_WDAT_SET_STOPPED_STATE = 11, 63462306a36Sopenharmony_ci ACPI_WDAT_GET_REBOOT = 16, 63562306a36Sopenharmony_ci ACPI_WDAT_SET_REBOOT = 17, 63662306a36Sopenharmony_ci ACPI_WDAT_GET_SHUTDOWN = 18, 63762306a36Sopenharmony_ci ACPI_WDAT_SET_SHUTDOWN = 19, 63862306a36Sopenharmony_ci ACPI_WDAT_GET_STATUS = 32, 63962306a36Sopenharmony_ci ACPI_WDAT_SET_STATUS = 33, 64062306a36Sopenharmony_ci ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */ 64162306a36Sopenharmony_ci}; 64262306a36Sopenharmony_ci 64362306a36Sopenharmony_ci/* Values for Instruction field above */ 64462306a36Sopenharmony_ci 64562306a36Sopenharmony_cienum acpi_wdat_instructions { 64662306a36Sopenharmony_ci ACPI_WDAT_READ_VALUE = 0, 64762306a36Sopenharmony_ci ACPI_WDAT_READ_COUNTDOWN = 1, 64862306a36Sopenharmony_ci ACPI_WDAT_WRITE_VALUE = 2, 64962306a36Sopenharmony_ci ACPI_WDAT_WRITE_COUNTDOWN = 3, 65062306a36Sopenharmony_ci ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */ 65162306a36Sopenharmony_ci ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */ 65262306a36Sopenharmony_ci}; 65362306a36Sopenharmony_ci 65462306a36Sopenharmony_ci/******************************************************************************* 65562306a36Sopenharmony_ci * 65662306a36Sopenharmony_ci * WDDT - Watchdog Descriptor Table 65762306a36Sopenharmony_ci * Version 1 65862306a36Sopenharmony_ci * 65962306a36Sopenharmony_ci * Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)", 66062306a36Sopenharmony_ci * Version 001, September 2002 66162306a36Sopenharmony_ci * 66262306a36Sopenharmony_ci ******************************************************************************/ 66362306a36Sopenharmony_ci 66462306a36Sopenharmony_cistruct acpi_table_wddt { 66562306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 66662306a36Sopenharmony_ci u16 spec_version; 66762306a36Sopenharmony_ci u16 table_version; 66862306a36Sopenharmony_ci u16 pci_vendor_id; 66962306a36Sopenharmony_ci struct acpi_generic_address address; 67062306a36Sopenharmony_ci u16 max_count; /* Maximum counter value supported */ 67162306a36Sopenharmony_ci u16 min_count; /* Minimum counter value supported */ 67262306a36Sopenharmony_ci u16 period; 67362306a36Sopenharmony_ci u16 status; 67462306a36Sopenharmony_ci u16 capability; 67562306a36Sopenharmony_ci}; 67662306a36Sopenharmony_ci 67762306a36Sopenharmony_ci/* Flags for Status field above */ 67862306a36Sopenharmony_ci 67962306a36Sopenharmony_ci#define ACPI_WDDT_AVAILABLE (1) 68062306a36Sopenharmony_ci#define ACPI_WDDT_ACTIVE (1<<1) 68162306a36Sopenharmony_ci#define ACPI_WDDT_TCO_OS_OWNED (1<<2) 68262306a36Sopenharmony_ci#define ACPI_WDDT_USER_RESET (1<<11) 68362306a36Sopenharmony_ci#define ACPI_WDDT_WDT_RESET (1<<12) 68462306a36Sopenharmony_ci#define ACPI_WDDT_POWER_FAIL (1<<13) 68562306a36Sopenharmony_ci#define ACPI_WDDT_UNKNOWN_RESET (1<<14) 68662306a36Sopenharmony_ci 68762306a36Sopenharmony_ci/* Flags for Capability field above */ 68862306a36Sopenharmony_ci 68962306a36Sopenharmony_ci#define ACPI_WDDT_AUTO_RESET (1) 69062306a36Sopenharmony_ci#define ACPI_WDDT_ALERT_SUPPORT (1<<1) 69162306a36Sopenharmony_ci 69262306a36Sopenharmony_ci/******************************************************************************* 69362306a36Sopenharmony_ci * 69462306a36Sopenharmony_ci * WDRT - Watchdog Resource Table 69562306a36Sopenharmony_ci * Version 1 69662306a36Sopenharmony_ci * 69762306a36Sopenharmony_ci * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003", 69862306a36Sopenharmony_ci * Version 1.01, August 28, 2006 69962306a36Sopenharmony_ci * 70062306a36Sopenharmony_ci ******************************************************************************/ 70162306a36Sopenharmony_ci 70262306a36Sopenharmony_cistruct acpi_table_wdrt { 70362306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 70462306a36Sopenharmony_ci struct acpi_generic_address control_register; 70562306a36Sopenharmony_ci struct acpi_generic_address count_register; 70662306a36Sopenharmony_ci u16 pci_device_id; 70762306a36Sopenharmony_ci u16 pci_vendor_id; 70862306a36Sopenharmony_ci u8 pci_bus; /* PCI Bus number */ 70962306a36Sopenharmony_ci u8 pci_device; /* PCI Device number */ 71062306a36Sopenharmony_ci u8 pci_function; /* PCI Function number */ 71162306a36Sopenharmony_ci u8 pci_segment; /* PCI Segment number */ 71262306a36Sopenharmony_ci u16 max_count; /* Maximum counter value supported */ 71362306a36Sopenharmony_ci u8 units; 71462306a36Sopenharmony_ci}; 71562306a36Sopenharmony_ci 71662306a36Sopenharmony_ci/******************************************************************************* 71762306a36Sopenharmony_ci * 71862306a36Sopenharmony_ci * WPBT - Windows Platform Environment Table (ACPI 6.0) 71962306a36Sopenharmony_ci * Version 1 72062306a36Sopenharmony_ci * 72162306a36Sopenharmony_ci * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011 72262306a36Sopenharmony_ci * 72362306a36Sopenharmony_ci ******************************************************************************/ 72462306a36Sopenharmony_ci 72562306a36Sopenharmony_cistruct acpi_table_wpbt { 72662306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 72762306a36Sopenharmony_ci u32 handoff_size; 72862306a36Sopenharmony_ci u64 handoff_address; 72962306a36Sopenharmony_ci u8 layout; 73062306a36Sopenharmony_ci u8 type; 73162306a36Sopenharmony_ci u16 arguments_length; 73262306a36Sopenharmony_ci}; 73362306a36Sopenharmony_ci 73462306a36Sopenharmony_cistruct acpi_wpbt_unicode { 73562306a36Sopenharmony_ci u16 *unicode_string; 73662306a36Sopenharmony_ci}; 73762306a36Sopenharmony_ci 73862306a36Sopenharmony_ci/******************************************************************************* 73962306a36Sopenharmony_ci * 74062306a36Sopenharmony_ci * WSMT - Windows SMM Security Mitigations Table 74162306a36Sopenharmony_ci * Version 1 74262306a36Sopenharmony_ci * 74362306a36Sopenharmony_ci * Conforms to "Windows SMM Security Mitigations Table", 74462306a36Sopenharmony_ci * Version 1.0, April 18, 2016 74562306a36Sopenharmony_ci * 74662306a36Sopenharmony_ci ******************************************************************************/ 74762306a36Sopenharmony_ci 74862306a36Sopenharmony_cistruct acpi_table_wsmt { 74962306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 75062306a36Sopenharmony_ci u32 protection_flags; 75162306a36Sopenharmony_ci}; 75262306a36Sopenharmony_ci 75362306a36Sopenharmony_ci/* Flags for protection_flags field above */ 75462306a36Sopenharmony_ci 75562306a36Sopenharmony_ci#define ACPI_WSMT_FIXED_COMM_BUFFERS (1) 75662306a36Sopenharmony_ci#define ACPI_WSMT_COMM_BUFFER_NESTED_PTR_PROTECTION (2) 75762306a36Sopenharmony_ci#define ACPI_WSMT_SYSTEM_RESOURCE_PROTECTION (4) 75862306a36Sopenharmony_ci 75962306a36Sopenharmony_ci/******************************************************************************* 76062306a36Sopenharmony_ci * 76162306a36Sopenharmony_ci * XENV - Xen Environment Table (ACPI 6.0) 76262306a36Sopenharmony_ci * Version 1 76362306a36Sopenharmony_ci * 76462306a36Sopenharmony_ci * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015 76562306a36Sopenharmony_ci * 76662306a36Sopenharmony_ci ******************************************************************************/ 76762306a36Sopenharmony_ci 76862306a36Sopenharmony_cistruct acpi_table_xenv { 76962306a36Sopenharmony_ci struct acpi_table_header header; /* Common ACPI table header */ 77062306a36Sopenharmony_ci u64 grant_table_address; 77162306a36Sopenharmony_ci u64 grant_table_size; 77262306a36Sopenharmony_ci u32 event_interrupt; 77362306a36Sopenharmony_ci u8 event_flags; 77462306a36Sopenharmony_ci}; 77562306a36Sopenharmony_ci 77662306a36Sopenharmony_ci/* Reset to default packing */ 77762306a36Sopenharmony_ci 77862306a36Sopenharmony_ci#pragma pack() 77962306a36Sopenharmony_ci 78062306a36Sopenharmony_ci#endif /* __ACTBL3_H__ */ 781