Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  * Name: actbl3.h - ACPI Table Definitions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  * Copyright (C) 2000 - 2020, Intel Corp.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  *****************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #ifndef __ACTBL3_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #define __ACTBL3_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)  * Additional ACPI Tables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)  * These tables are not consumed directly by the ACPICA subsystem, but are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)  * included here to support device drivers and the AML disassembler.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)  * Values for description table header signatures for tables defined in this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)  * file. Useful because they make it more difficult to inadvertently type in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)  * the wrong signature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) #define ACPI_SIG_SLIC           "SLIC"	/* Software Licensing Description Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) #define ACPI_SIG_SLIT           "SLIT"	/* System Locality Distance Information Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) #define ACPI_SIG_SPCR           "SPCR"	/* Serial Port Console Redirection table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) #define ACPI_SIG_SPMI           "SPMI"	/* Server Platform Management Interface table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) #define ACPI_SIG_SRAT           "SRAT"	/* System Resource Affinity Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) #define ACPI_SIG_STAO           "STAO"	/* Status Override table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) #define ACPI_SIG_TCPA           "TCPA"	/* Trusted Computing Platform Alliance table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) #define ACPI_SIG_TPM2           "TPM2"	/* Trusted Platform Module 2.0 H/W interface table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) #define ACPI_SIG_UEFI           "UEFI"	/* Uefi Boot Optimization Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) #define ACPI_SIG_VRTC           "VRTC"	/* Virtual Real Time Clock Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) #define ACPI_SIG_WAET           "WAET"	/* Windows ACPI Emulated devices Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) #define ACPI_SIG_WDAT           "WDAT"	/* Watchdog Action Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) #define ACPI_SIG_WDDT           "WDDT"	/* Watchdog Timer Description Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) #define ACPI_SIG_WDRT           "WDRT"	/* Watchdog Resource Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) #define ACPI_SIG_WPBT           "WPBT"	/* Windows Platform Binary Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) #define ACPI_SIG_WSMT           "WSMT"	/* Windows SMM Security Mitigations Table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) #define ACPI_SIG_XENV           "XENV"	/* Xen Environment table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) #define ACPI_SIG_XXXX           "XXXX"	/* Intermediate AML header for ASL/ASL+ converter */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47)  * All tables must be byte-packed to match the ACPI specification, since
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)  * the tables are provided by the system BIOS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) #pragma pack(1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53)  * Note: C bitfields are not used for this reason:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)  * "Bitfields are great and easy to read, but unfortunately the C language
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)  * does not specify the layout of bitfields in memory, which means they are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)  * essentially useless for dealing with packed data in on-disk formats or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)  * binary wire protocols." (Or ACPI tables and buffers.) "If you ask me,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59)  * this decision was a design error in C. Ritchie could have picked an order
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)  * and stuck with it." Norman Ramsey.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)  * See http://stackoverflow.com/a/1053662/41661
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)  * SLIC - Software Licensing Description Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)  * Conforms to "Microsoft Software Licensing Tables (SLIC and MSDM)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69)  * November 29, 2011. Copyright 2011 Microsoft
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) /* Basic SLIC table is only the common ACPI header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) struct acpi_table_slic {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)  * SLIT - System Locality Distance Information Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) struct acpi_table_slit {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	u64 locality_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	u8 entry[1];		/* Real size = localities^2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)  * SPCR - Serial Port Console Redirection table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95)  *        Version 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97)  * Conforms to "Serial Port Console Redirection Table",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)  * Version 1.03, August 10, 2015
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) struct acpi_table_spcr {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	u8 interface_type;	/* 0=full 16550, 1=subset of 16550 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	u8 reserved[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	struct acpi_generic_address serial_port;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	u8 interrupt_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	u8 pc_interrupt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	u32 interrupt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	u8 baud_rate;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	u8 parity;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	u8 stop_bits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 	u8 flow_control;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	u8 terminal_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	u8 reserved1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	u16 pci_device_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	u16 pci_vendor_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	u8 pci_bus;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	u8 pci_device;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	u8 pci_function;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	u32 pci_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	u8 pci_segment;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	u32 reserved2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) /* Masks for pci_flags field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define ACPI_SPCR_DO_NOT_DISABLE    (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) /* Values for Interface Type: See the definition of the DBG2 table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)  * SPMI - Server Platform Management Interface table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)  *        Version 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)  * Conforms to "Intelligent Platform Management Interface Specification
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)  * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)  * June 12, 2009 markup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) struct acpi_table_spmi {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 	u8 interface_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 	u8 reserved;		/* Must be 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 	u16 spec_revision;	/* Version of IPMI */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 	u8 interrupt_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 	u8 gpe_number;		/* GPE assigned */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 	u8 reserved1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 	u8 pci_device_flag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 	u32 interrupt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 	struct acpi_generic_address ipmi_register;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	u8 pci_segment;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 	u8 pci_bus;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 	u8 pci_device;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	u8 pci_function;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	u8 reserved2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) /* Values for interface_type above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) enum acpi_spmi_interface_types {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 	ACPI_SPMI_NOT_USED = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 	ACPI_SPMI_KEYBOARD = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 	ACPI_SPMI_SMI = 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 	ACPI_SPMI_BLOCK_TRANSFER = 3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 	ACPI_SPMI_SMBUS = 4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 	ACPI_SPMI_RESERVED = 5	/* 5 and above are reserved */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)  * SRAT - System Resource Affinity Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)  *        Version 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) struct acpi_table_srat {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 	u32 table_revision;	/* Must be value '1' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 	u64 reserved;		/* Reserved, must be zero */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) /* Values for subtable type in struct acpi_subtable_header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) enum acpi_srat_type {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 	ACPI_SRAT_TYPE_CPU_AFFINITY = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 	ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 	ACPI_SRAT_TYPE_GICC_AFFINITY = 3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 	ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4,	/* ACPI 6.2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 	ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5,	/* ACPI 6.3 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 	ACPI_SRAT_TYPE_RESERVED = 6	/* 5 and greater are reserved */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)  * SRAT Subtables, correspond to Type in struct acpi_subtable_header
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) /* 0: Processor Local APIC/SAPIC Affinity */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) struct acpi_srat_cpu_affinity {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 	struct acpi_subtable_header header;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 	u8 proximity_domain_lo;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 	u8 apic_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 	u32 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 	u8 local_sapic_eid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 	u8 proximity_domain_hi[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 	u32 clock_domain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) /* Flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) #define ACPI_SRAT_CPU_USE_AFFINITY  (1)	/* 00: Use affinity structure */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) /* 1: Memory Affinity */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) struct acpi_srat_mem_affinity {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 	struct acpi_subtable_header header;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 	u32 proximity_domain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 	u16 reserved;		/* Reserved, must be zero */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 	u64 base_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 	u64 length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 	u32 reserved1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 	u32 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 	u64 reserved2;		/* Reserved, must be zero */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) /* Flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) #define ACPI_SRAT_MEM_ENABLED       (1)	/* 00: Use affinity structure */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) #define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1)	/* 01: Memory region is hot pluggable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) #define ACPI_SRAT_MEM_NON_VOLATILE  (1<<2)	/* 02: Memory region is non-volatile */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) /* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) struct acpi_srat_x2apic_cpu_affinity {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 	struct acpi_subtable_header header;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 	u16 reserved;		/* Reserved, must be zero */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 	u32 proximity_domain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 	u32 apic_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 	u32 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 	u32 clock_domain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 	u32 reserved2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) /* Flags for struct acpi_srat_cpu_affinity and struct acpi_srat_x2apic_cpu_affinity */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) #define ACPI_SRAT_CPU_ENABLED       (1)	/* 00: Use affinity structure */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) /* 3: GICC Affinity (ACPI 5.1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) struct acpi_srat_gicc_affinity {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 	struct acpi_subtable_header header;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 	u32 proximity_domain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 	u32 acpi_processor_uid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 	u32 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 	u32 clock_domain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) /* Flags for struct acpi_srat_gicc_affinity */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) #define ACPI_SRAT_GICC_ENABLED     (1)	/* 00: Use affinity structure */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) /* 4: GCC ITS Affinity (ACPI 6.2) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) struct acpi_srat_gic_its_affinity {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 	struct acpi_subtable_header header;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 	u32 proximity_domain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 	u16 reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 	u32 its_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) /* 5: Generic Initiator Affinity Structure (ACPI 6.3) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) struct acpi_srat_generic_affinity {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 	struct acpi_subtable_header header;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 	u8 reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 	u8 device_handle_type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 	u32 proximity_domain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 	u8 device_handle[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 	u32 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 	u32 reserved1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) /* Flags for struct acpi_srat_generic_affinity */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) #define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1)	/* 00: Use affinity structure */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293)  * STAO - Status Override Table (_STA override) - ACPI 6.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296)  * Conforms to "ACPI Specification for Status Override Table"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297)  * 6 January 2015
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) struct acpi_table_stao {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) 	u8 ignore_uart;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308)  * TCPA - Trusted Computing Platform Alliance table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)  *        Version 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311)  * TCG Hardware Interface Table for TPM 1.2 Clients and Servers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)  * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314)  * Version 1.2, Revision 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)  * February 27, 2017
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317)  * NOTE: There are two versions of the table with the same signature --
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318)  * the client version and the server version. The common platform_class
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319)  * field is used to differentiate the two types of tables.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) struct acpi_table_tcpa_hdr {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) 	u16 platform_class;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329)  * Values for platform_class above.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330)  * This is how the client and server subtables are differentiated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) #define ACPI_TCPA_CLIENT_TABLE          0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) #define ACPI_TCPA_SERVER_TABLE          1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) struct acpi_table_tcpa_client {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 	u32 minimum_log_length;	/* Minimum length for the event log area */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 	u64 log_address;	/* Address of the event log area */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) struct acpi_table_tcpa_server {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 	u16 reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 	u64 minimum_log_length;	/* Minimum length for the event log area */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 	u64 log_address;	/* Address of the event log area */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 	u16 spec_revision;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) 	u8 device_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 	u8 interrupt_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) 	u8 gpe_number;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 	u8 reserved2[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 	u32 global_interrupt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 	struct acpi_generic_address address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 	u32 reserved3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 	struct acpi_generic_address config_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) 	u8 group;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) 	u8 bus;			/* PCI Bus/Segment/Function numbers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) 	u8 device;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 	u8 function;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) /* Values for device_flags above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) #define ACPI_TCPA_PCI_DEVICE            (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) #define ACPI_TCPA_BUS_PNP               (1<<1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) #define ACPI_TCPA_ADDRESS_VALID         (1<<2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) /* Values for interrupt_flags above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) #define ACPI_TCPA_INTERRUPT_MODE        (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) #define ACPI_TCPA_INTERRUPT_POLARITY    (1<<1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) #define ACPI_TCPA_SCI_VIA_GPE           (1<<2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) #define ACPI_TCPA_GLOBAL_INTERRUPT      (1<<3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374)  * TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375)  *        Version 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377)  * TCG Hardware Interface Table for TPM 2.0 Clients and Servers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379)  * Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380)  * Version 1.2, Revision 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381)  * February 27, 2017
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) /* Revision 3 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) struct acpi_table_tpm23 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 	u32 reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 	u64 control_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 	u32 start_method;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) /* Value for start_method above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) #define ACPI_TPM23_ACPI_START_METHOD                 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399)  * Optional trailer for revision 3. If start method is 2, there is a 4 byte
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400)  * reserved area of all zeros.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) struct acpi_tmp23_trailer {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) 	u32 reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) /* Revision 4 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) struct acpi_table_tpm2 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) 	u16 platform_class;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 	u16 reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) 	u64 control_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) 	u32 start_method;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 	/* Platform-specific data follows */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) /* Optional trailer for revision 4 holding platform-specific data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) struct acpi_tpm2_phy {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) 	u8  start_method_specific[12];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 	u32 log_area_minimum_length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 	u64 log_area_start_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) /* Values for start_method above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) #define ACPI_TPM2_NOT_ALLOWED                       0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) #define ACPI_TPM2_RESERVED1                         1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) #define ACPI_TPM2_START_METHOD                      2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) #define ACPI_TPM2_RESERVED3                         3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) #define ACPI_TPM2_RESERVED4                         4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) #define ACPI_TPM2_RESERVED5                         5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) #define ACPI_TPM2_MEMORY_MAPPED                     6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) #define ACPI_TPM2_COMMAND_BUFFER                    7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) #define ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD  8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) #define ACPI_TPM2_RESERVED9                         9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) #define ACPI_TPM2_RESERVED10                        10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) #define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC       11	/* V1.2 Rev 8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) #define ACPI_TPM2_RESERVED                          12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) /* Optional trailer appears after any start_method subtables */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) struct acpi_tpm2_trailer {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) 	u8 method_parameters[12];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) 	u32 minimum_log_length;	/* Minimum length for the event log area */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) 	u64 log_address;	/* Address of the event log area */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450)  * Subtables (start_method-specific)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) /* 11: Start Method for ARM SMC (V1.2 Rev 8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) struct acpi_tpm2_arm_smc {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 	u32 global_interrupt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) 	u8 interrupt_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 	u8 operation_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 	u16 reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) 	u32 function_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) /* Values for interrupt_flags above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) #define ACPI_TPM2_INTERRUPT_SUPPORT     (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) /* Values for operation_flags above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) #define ACPI_TPM2_IDLE_SUPPORT          (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473)  * UEFI - UEFI Boot optimization Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476)  * Conforms to "Unified Extensible Firmware Interface Specification",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477)  * Version 2.3, May 8, 2009
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) struct acpi_table_uefi {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) 	u8 identifier[16];	/* UUID identifier */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) 	u16 data_offset;	/* Offset of remaining data in table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489)  * VRTC - Virtual Real Time Clock Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492)  * Conforms to "Simple Firmware Interface Specification",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493)  * Draft 0.8.2, Oct 19, 2010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494)  * NOTE: The ACPI VRTC is equivalent to The SFI MRTC table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) struct acpi_table_vrtc {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) /* VRTC entry */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) struct acpi_vrtc_entry {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) 	struct acpi_generic_address physical_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) 	u32 irq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511)  * WAET - Windows ACPI Emulated devices Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514)  * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) struct acpi_table_waet {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) 	u32 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) /* Masks for Flags field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) #define ACPI_WAET_RTC_NO_ACK        (1)	/* RTC requires no int acknowledge */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) #define ACPI_WAET_TIMER_ONE_READ    (1<<1)	/* PM timer requires only one read */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530)  * WDAT - Watchdog Action Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533)  * Conforms to "Hardware Watchdog Timers Design Specification",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534)  * Copyright 2006 Microsoft Corporation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) struct acpi_table_wdat {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) 	u32 header_length;	/* Watchdog Header Length */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) 	u16 pci_segment;	/* PCI Segment number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) 	u8 pci_bus;		/* PCI Bus number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) 	u8 pci_device;		/* PCI Device number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) 	u8 pci_function;	/* PCI Function number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) 	u8 reserved[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) 	u32 timer_period;	/* Period of one timer count (msec) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) 	u32 max_count;		/* Maximum counter value supported */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) 	u32 min_count;		/* Minimum counter value */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) 	u8 flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) 	u8 reserved2[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) 	u32 entries;		/* Number of watchdog entries that follow */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) /* Masks for Flags field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) #define ACPI_WDAT_ENABLED           (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) #define ACPI_WDAT_STOPPED           0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) /* WDAT Instruction Entries (actions) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) struct acpi_wdat_entry {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) 	u8 action;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) 	u8 instruction;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) 	u16 reserved;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) 	struct acpi_generic_address register_region;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) 	u32 value;		/* Value used with Read/Write register */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) 	u32 mask;		/* Bitmask required for this register instruction */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) /* Values for Action field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) enum acpi_wdat_actions {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) 	ACPI_WDAT_RESET = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) 	ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) 	ACPI_WDAT_GET_COUNTDOWN = 5,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) 	ACPI_WDAT_SET_COUNTDOWN = 6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) 	ACPI_WDAT_GET_RUNNING_STATE = 8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) 	ACPI_WDAT_SET_RUNNING_STATE = 9,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) 	ACPI_WDAT_GET_STOPPED_STATE = 10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) 	ACPI_WDAT_SET_STOPPED_STATE = 11,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) 	ACPI_WDAT_GET_REBOOT = 16,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) 	ACPI_WDAT_SET_REBOOT = 17,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) 	ACPI_WDAT_GET_SHUTDOWN = 18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) 	ACPI_WDAT_SET_SHUTDOWN = 19,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) 	ACPI_WDAT_GET_STATUS = 32,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) 	ACPI_WDAT_SET_STATUS = 33,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) 	ACPI_WDAT_ACTION_RESERVED = 34	/* 34 and greater are reserved */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) /* Values for Instruction field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) enum acpi_wdat_instructions {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) 	ACPI_WDAT_READ_VALUE = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) 	ACPI_WDAT_READ_COUNTDOWN = 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) 	ACPI_WDAT_WRITE_VALUE = 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) 	ACPI_WDAT_WRITE_COUNTDOWN = 3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) 	ACPI_WDAT_INSTRUCTION_RESERVED = 4,	/* 4 and greater are reserved */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) 	ACPI_WDAT_PRESERVE_REGISTER = 0x80	/* Except for this value */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603)  * WDDT - Watchdog Descriptor Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606)  * Conforms to "Using the Intel ICH Family Watchdog Timer (WDT)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607)  * Version 001, September 2002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) struct acpi_table_wddt {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) 	u16 spec_version;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) 	u16 table_version;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) 	u16 pci_vendor_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) 	struct acpi_generic_address address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) 	u16 max_count;		/* Maximum counter value supported */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) 	u16 min_count;		/* Minimum counter value supported */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) 	u16 period;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) 	u16 status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) 	u16 capability;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) /* Flags for Status field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) #define ACPI_WDDT_AVAILABLE     (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) #define ACPI_WDDT_ACTIVE        (1<<1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) #define ACPI_WDDT_TCO_OS_OWNED  (1<<2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) #define ACPI_WDDT_USER_RESET    (1<<11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) #define ACPI_WDDT_WDT_RESET     (1<<12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) #define ACPI_WDDT_POWER_FAIL    (1<<13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) #define ACPI_WDDT_UNKNOWN_RESET (1<<14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) /* Flags for Capability field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) #define ACPI_WDDT_AUTO_RESET    (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) #define ACPI_WDDT_ALERT_SUPPORT (1<<1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641)  * WDRT - Watchdog Resource Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644)  * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645)  * Version 1.01, August 28, 2006
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) struct acpi_table_wdrt {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) 	struct acpi_generic_address control_register;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) 	struct acpi_generic_address count_register;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) 	u16 pci_device_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) 	u16 pci_vendor_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) 	u8 pci_bus;		/* PCI Bus number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) 	u8 pci_device;		/* PCI Device number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) 	u8 pci_function;	/* PCI Function number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) 	u8 pci_segment;		/* PCI Segment number */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) 	u16 max_count;		/* Maximum counter value supported */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) 	u8 units;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665)  * WPBT - Windows Platform Environment Table (ACPI 6.0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)  * Conforms to "Windows Platform Binary Table (WPBT)" 29 November 2011
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) struct acpi_table_wpbt {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) 	u32 handoff_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) 	u64 handoff_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) 	u8 layout;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) 	u8 type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) 	u16 arguments_length;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683)  * WSMT - Windows SMM Security Mitigations Table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686)  * Conforms to "Windows SMM Security Mitigations Table",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687)  * Version 1.0, April 18, 2016
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) struct acpi_table_wsmt {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) 	u32 protection_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) /* Flags for protection_flags field above */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) #define ACPI_WSMT_FIXED_COMM_BUFFERS                (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) #define ACPI_WSMT_COMM_BUFFER_NESTED_PTR_PROTECTION (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) #define ACPI_WSMT_SYSTEM_RESOURCE_PROTECTION        (4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) /*******************************************************************************
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704)  * XENV - Xen Environment Table (ACPI 6.0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705)  *        Version 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707)  * Conforms to "ACPI Specification for Xen Environment Table" 4 January 2015
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709)  ******************************************************************************/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) struct acpi_table_xenv {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) 	struct acpi_table_header header;	/* Common ACPI table header */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) 	u64 grant_table_address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) 	u64 grant_table_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) 	u32 event_interrupt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) 	u8 event_flags;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) /* Reset to default packing */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) #pragma pack()
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) #endif				/* __ACTBL3_H__ */