1b24aad44SBob Moore #ifndef __ACTBL2_H__ 2b24aad44SBob Moore #define __ACTBL2_H__ 3b24aad44SBob Moore 4b24aad44SBob Moore /******************************************************************************* 5b24aad44SBob Moore * 6b24aad44SBob Moore * Additional ACPI Tables (2) 7b24aad44SBob Moore * 8b24aad44SBob Moore * These tables are not consumed directly by the ACPICA subsystem, but are 9b24aad44SBob Moore * included here to support device drivers and the AML disassembler. 10b24aad44SBob Moore * 11b24aad44SBob Moore * The tables in this file are defined by third-party specifications, and are 12b24aad44SBob Moore * not defined directly by the ACPI specification itself. 13b24aad44SBob Moore * 14b24aad44SBob Moore ******************************************************************************/ 15b24aad44SBob Moore 16b24aad44SBob Moore /* 176e2d5ebdSBob Moore * Values for description table header signatures for tables defined in this 186e2d5ebdSBob Moore * file. Useful because they make it more difficult to inadvertently type in 196e2d5ebdSBob Moore * the wrong signature. 20b24aad44SBob Moore */ 21b24aad44SBob Moore #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ 22b24aad44SBob Moore #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ 23b24aad44SBob Moore #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ 24b24aad44SBob Moore #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ 25b24aad44SBob Moore #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ 26b24aad44SBob Moore #define ACPI_SIG_IBFT "IBFT" /* i_sCSI Boot Firmware Table */ 276e2d5ebdSBob Moore #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ 28b24aad44SBob Moore #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ 29b24aad44SBob Moore #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ 30b24aad44SBob Moore #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ 31b24aad44SBob Moore #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ 32b24aad44SBob Moore #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ 33b24aad44SBob Moore #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ 346e2d5ebdSBob Moore #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ 35b24aad44SBob Moore #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ 36b24aad44SBob Moore #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ 37b24aad44SBob Moore 38b24aad44SBob Moore /* 39b24aad44SBob Moore * All tables must be byte-packed to match the ACPI specification, since 40b24aad44SBob Moore * the tables are provided by the system BIOS. 41b24aad44SBob Moore */ 42b24aad44SBob Moore #pragma pack(1) 43b24aad44SBob Moore 44b24aad44SBob Moore /* 45b24aad44SBob Moore * Note about bitfields: The u8 type is used for bitfields in ACPI tables. 46b24aad44SBob Moore * This is the only type that is even remotely portable. Anything else is not 47b24aad44SBob Moore * portable, so do not use any other bitfield types. 48b24aad44SBob Moore */ 49b24aad44SBob Moore 50b24aad44SBob Moore /******************************************************************************* 51b24aad44SBob Moore * 52b24aad44SBob Moore * ASF - Alert Standard Format table (Signature "ASF!") 536e2d5ebdSBob Moore * Revision 0x10 54b24aad44SBob Moore * 55b24aad44SBob Moore * Conforms to the Alert Standard Format Specification V2.0, 23 April 2003 56b24aad44SBob Moore * 57b24aad44SBob Moore ******************************************************************************/ 58b24aad44SBob Moore 59b24aad44SBob Moore struct acpi_table_asf { 60b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 61b24aad44SBob Moore }; 62b24aad44SBob Moore 63b24aad44SBob Moore /* ASF subtable header */ 64b24aad44SBob Moore 65b24aad44SBob Moore struct acpi_asf_header { 66b24aad44SBob Moore u8 type; 67b24aad44SBob Moore u8 reserved; 68b24aad44SBob Moore u16 length; 69b24aad44SBob Moore }; 70b24aad44SBob Moore 71b24aad44SBob Moore /* Values for Type field above */ 72b24aad44SBob Moore 73b24aad44SBob Moore enum acpi_asf_type { 74b24aad44SBob Moore ACPI_ASF_TYPE_INFO = 0, 75b24aad44SBob Moore ACPI_ASF_TYPE_ALERT = 1, 76b24aad44SBob Moore ACPI_ASF_TYPE_CONTROL = 2, 77b24aad44SBob Moore ACPI_ASF_TYPE_BOOT = 3, 78b24aad44SBob Moore ACPI_ASF_TYPE_ADDRESS = 4, 79b24aad44SBob Moore ACPI_ASF_TYPE_RESERVED = 5 80b24aad44SBob Moore }; 81b24aad44SBob Moore 82b24aad44SBob Moore /* 83b24aad44SBob Moore * ASF subtables 84b24aad44SBob Moore */ 85b24aad44SBob Moore 86b24aad44SBob Moore /* 0: ASF Information */ 87b24aad44SBob Moore 88b24aad44SBob Moore struct acpi_asf_info { 89b24aad44SBob Moore struct acpi_asf_header header; 90b24aad44SBob Moore u8 min_reset_value; 91b24aad44SBob Moore u8 min_poll_interval; 92b24aad44SBob Moore u16 system_id; 93b24aad44SBob Moore u32 mfg_id; 94b24aad44SBob Moore u8 flags; 95b24aad44SBob Moore u8 reserved2[3]; 96b24aad44SBob Moore }; 97b24aad44SBob Moore 986e2d5ebdSBob Moore /* Masks for Flags field above */ 996e2d5ebdSBob Moore 1006e2d5ebdSBob Moore #define ACPI_ASF_SMBUS_PROTOCOLS (1) 1016e2d5ebdSBob Moore 102b24aad44SBob Moore /* 1: ASF Alerts */ 103b24aad44SBob Moore 104b24aad44SBob Moore struct acpi_asf_alert { 105b24aad44SBob Moore struct acpi_asf_header header; 106b24aad44SBob Moore u8 assert_mask; 107b24aad44SBob Moore u8 deassert_mask; 108b24aad44SBob Moore u8 alerts; 109b24aad44SBob Moore u8 data_length; 110b24aad44SBob Moore }; 111b24aad44SBob Moore 112b24aad44SBob Moore struct acpi_asf_alert_data { 113b24aad44SBob Moore u8 address; 114b24aad44SBob Moore u8 command; 115b24aad44SBob Moore u8 mask; 116b24aad44SBob Moore u8 value; 117b24aad44SBob Moore u8 sensor_type; 118b24aad44SBob Moore u8 type; 119b24aad44SBob Moore u8 offset; 120b24aad44SBob Moore u8 source_type; 121b24aad44SBob Moore u8 severity; 122b24aad44SBob Moore u8 sensor_number; 123b24aad44SBob Moore u8 entity; 124b24aad44SBob Moore u8 instance; 125b24aad44SBob Moore }; 126b24aad44SBob Moore 127b24aad44SBob Moore /* 2: ASF Remote Control */ 128b24aad44SBob Moore 129b24aad44SBob Moore struct acpi_asf_remote { 130b24aad44SBob Moore struct acpi_asf_header header; 131b24aad44SBob Moore u8 controls; 132b24aad44SBob Moore u8 data_length; 133b24aad44SBob Moore u16 reserved2; 134b24aad44SBob Moore }; 135b24aad44SBob Moore 136b24aad44SBob Moore struct acpi_asf_control_data { 137b24aad44SBob Moore u8 function; 138b24aad44SBob Moore u8 address; 139b24aad44SBob Moore u8 command; 140b24aad44SBob Moore u8 value; 141b24aad44SBob Moore }; 142b24aad44SBob Moore 143b24aad44SBob Moore /* 3: ASF RMCP Boot Options */ 144b24aad44SBob Moore 145b24aad44SBob Moore struct acpi_asf_rmcp { 146b24aad44SBob Moore struct acpi_asf_header header; 147b24aad44SBob Moore u8 capabilities[7]; 148b24aad44SBob Moore u8 completion_code; 149b24aad44SBob Moore u32 enterprise_id; 150b24aad44SBob Moore u8 command; 151b24aad44SBob Moore u16 parameter; 152b24aad44SBob Moore u16 boot_options; 153b24aad44SBob Moore u16 oem_parameters; 154b24aad44SBob Moore }; 155b24aad44SBob Moore 156b24aad44SBob Moore /* 4: ASF Address */ 157b24aad44SBob Moore 158b24aad44SBob Moore struct acpi_asf_address { 159b24aad44SBob Moore struct acpi_asf_header header; 160b24aad44SBob Moore u8 eprom_address; 161b24aad44SBob Moore u8 devices; 162b24aad44SBob Moore }; 163b24aad44SBob Moore 164b24aad44SBob Moore /******************************************************************************* 165b24aad44SBob Moore * 166b24aad44SBob Moore * BOOT - Simple Boot Flag Table 1676e2d5ebdSBob Moore * Version 1 1686e2d5ebdSBob Moore * 1696e2d5ebdSBob Moore * Conforms to the "Simple Boot Flag Specification", Version 2.1 170b24aad44SBob Moore * 171b24aad44SBob Moore ******************************************************************************/ 172b24aad44SBob Moore 173b24aad44SBob Moore struct acpi_table_boot { 174b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 175b24aad44SBob Moore u8 cmos_index; /* Index in CMOS RAM for the boot register */ 176b24aad44SBob Moore u8 reserved[3]; 177b24aad44SBob Moore }; 178b24aad44SBob Moore 179b24aad44SBob Moore /******************************************************************************* 180b24aad44SBob Moore * 181b24aad44SBob Moore * DBGP - Debug Port table 1826e2d5ebdSBob Moore * Version 1 1836e2d5ebdSBob Moore * 1846e2d5ebdSBob Moore * Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000 185b24aad44SBob Moore * 186b24aad44SBob Moore ******************************************************************************/ 187b24aad44SBob Moore 188b24aad44SBob Moore struct acpi_table_dbgp { 189b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 190b24aad44SBob Moore u8 type; /* 0=full 16550, 1=subset of 16550 */ 191b24aad44SBob Moore u8 reserved[3]; 192b24aad44SBob Moore struct acpi_generic_address debug_port; 193b24aad44SBob Moore }; 194b24aad44SBob Moore 195b24aad44SBob Moore /******************************************************************************* 196b24aad44SBob Moore * 197b24aad44SBob Moore * DMAR - DMA Remapping table 1986e2d5ebdSBob Moore * Version 1 1996e2d5ebdSBob Moore * 2006e2d5ebdSBob Moore * Conforms to "Intel Virtualization Technology for Directed I/O", 2016e2d5ebdSBob Moore * Version 1.2, Sept. 2008 202b24aad44SBob Moore * 203b24aad44SBob Moore ******************************************************************************/ 204b24aad44SBob Moore 205b24aad44SBob Moore struct acpi_table_dmar { 206b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 207b24aad44SBob Moore u8 width; /* Host Address Width */ 208b24aad44SBob Moore u8 flags; 209b24aad44SBob Moore u8 reserved[10]; 210b24aad44SBob Moore }; 211b24aad44SBob Moore 2126e2d5ebdSBob Moore /* Masks for Flags field above */ 213b24aad44SBob Moore 214b24aad44SBob Moore #define ACPI_DMAR_INTR_REMAP (1) 215b24aad44SBob Moore 216b24aad44SBob Moore /* DMAR subtable header */ 217b24aad44SBob Moore 218b24aad44SBob Moore struct acpi_dmar_header { 219b24aad44SBob Moore u16 type; 220b24aad44SBob Moore u16 length; 221b24aad44SBob Moore }; 222b24aad44SBob Moore 223b24aad44SBob Moore /* Values for subtable type in struct acpi_dmar_header */ 224b24aad44SBob Moore 225b24aad44SBob Moore enum acpi_dmar_type { 226b24aad44SBob Moore ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, 227b24aad44SBob Moore ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, 228b24aad44SBob Moore ACPI_DMAR_TYPE_ATSR = 2, 2296e2d5ebdSBob Moore ACPI_DMAR_HARDWARE_AFFINITY = 3, 2306e2d5ebdSBob Moore ACPI_DMAR_TYPE_RESERVED = 4 /* 4 and greater are reserved */ 231b24aad44SBob Moore }; 232b24aad44SBob Moore 2336e2d5ebdSBob Moore /* DMAR Device Scope structure */ 2346e2d5ebdSBob Moore 235b24aad44SBob Moore struct acpi_dmar_device_scope { 236b24aad44SBob Moore u8 entry_type; 237b24aad44SBob Moore u8 length; 238b24aad44SBob Moore u16 reserved; 239b24aad44SBob Moore u8 enumeration_id; 240b24aad44SBob Moore u8 bus; 241b24aad44SBob Moore }; 242b24aad44SBob Moore 243b24aad44SBob Moore /* Values for entry_type in struct acpi_dmar_device_scope */ 244b24aad44SBob Moore 245b24aad44SBob Moore enum acpi_dmar_scope_type { 246b24aad44SBob Moore ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0, 247b24aad44SBob Moore ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1, 248b24aad44SBob Moore ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, 249b24aad44SBob Moore ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3, 250b24aad44SBob Moore ACPI_DMAR_SCOPE_TYPE_HPET = 4, 251b24aad44SBob Moore ACPI_DMAR_SCOPE_TYPE_RESERVED = 5 /* 5 and greater are reserved */ 252b24aad44SBob Moore }; 253b24aad44SBob Moore 254b24aad44SBob Moore struct acpi_dmar_pci_path { 255b24aad44SBob Moore u8 dev; 256b24aad44SBob Moore u8 fn; 257b24aad44SBob Moore }; 258b24aad44SBob Moore 259b24aad44SBob Moore /* 260b24aad44SBob Moore * DMAR Sub-tables, correspond to Type in struct acpi_dmar_header 261b24aad44SBob Moore */ 262b24aad44SBob Moore 263b24aad44SBob Moore /* 0: Hardware Unit Definition */ 264b24aad44SBob Moore 265b24aad44SBob Moore struct acpi_dmar_hardware_unit { 266b24aad44SBob Moore struct acpi_dmar_header header; 267b24aad44SBob Moore u8 flags; 268b24aad44SBob Moore u8 reserved; 269b24aad44SBob Moore u16 segment; 270b24aad44SBob Moore u64 address; /* Register Base Address */ 271b24aad44SBob Moore }; 272b24aad44SBob Moore 2736e2d5ebdSBob Moore /* Masks for Flags field above */ 274b24aad44SBob Moore 275b24aad44SBob Moore #define ACPI_DMAR_INCLUDE_ALL (1) 276b24aad44SBob Moore 277b24aad44SBob Moore /* 1: Reserved Memory Defininition */ 278b24aad44SBob Moore 279b24aad44SBob Moore struct acpi_dmar_reserved_memory { 280b24aad44SBob Moore struct acpi_dmar_header header; 281b24aad44SBob Moore u16 reserved; 282b24aad44SBob Moore u16 segment; 283b24aad44SBob Moore u64 base_address; /* 4_k aligned base address */ 284b24aad44SBob Moore u64 end_address; /* 4_k aligned limit address */ 285b24aad44SBob Moore }; 286b24aad44SBob Moore 2876e2d5ebdSBob Moore /* Masks for Flags field above */ 288b24aad44SBob Moore 289b24aad44SBob Moore #define ACPI_DMAR_ALLOW_ALL (1) 290b24aad44SBob Moore 291b24aad44SBob Moore /* 2: Root Port ATS Capability Reporting Structure */ 292b24aad44SBob Moore 293b24aad44SBob Moore struct acpi_dmar_atsr { 294b24aad44SBob Moore struct acpi_dmar_header header; 295b24aad44SBob Moore u8 flags; 296b24aad44SBob Moore u8 reserved; 297b24aad44SBob Moore u16 segment; 298b24aad44SBob Moore }; 299b24aad44SBob Moore 3006e2d5ebdSBob Moore /* Masks for Flags field above */ 301b24aad44SBob Moore 302b24aad44SBob Moore #define ACPI_DMAR_ALL_PORTS (1) 303b24aad44SBob Moore 3046e2d5ebdSBob Moore /* 3: Remapping Hardware Static Affinity Structure */ 3056e2d5ebdSBob Moore 3066e2d5ebdSBob Moore struct acpi_dmar_rhsa { 3076e2d5ebdSBob Moore struct acpi_dmar_header header; 3086e2d5ebdSBob Moore u32 reserved; 3096e2d5ebdSBob Moore u64 base_address; 3106e2d5ebdSBob Moore u32 proximity_domain; 3116e2d5ebdSBob Moore }; 3126e2d5ebdSBob Moore 313b24aad44SBob Moore /******************************************************************************* 314b24aad44SBob Moore * 315b24aad44SBob Moore * HPET - High Precision Event Timer table 3166e2d5ebdSBob Moore * Version 1 3176e2d5ebdSBob Moore * 3186e2d5ebdSBob Moore * Conforms to "IA-PC HPET (High Precision Event Timers) Specification", 3196e2d5ebdSBob Moore * Version 1.0a, October 2004 320b24aad44SBob Moore * 321b24aad44SBob Moore ******************************************************************************/ 322b24aad44SBob Moore 323b24aad44SBob Moore struct acpi_table_hpet { 324b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 325b24aad44SBob Moore u32 id; /* Hardware ID of event timer block */ 326b24aad44SBob Moore struct acpi_generic_address address; /* Address of event timer block */ 327b24aad44SBob Moore u8 sequence; /* HPET sequence number */ 328b24aad44SBob Moore u16 minimum_tick; /* Main counter min tick, periodic mode */ 329b24aad44SBob Moore u8 flags; 330b24aad44SBob Moore }; 331b24aad44SBob Moore 3326e2d5ebdSBob Moore /* Masks for Flags field above */ 333b24aad44SBob Moore 3346e2d5ebdSBob Moore #define ACPI_HPET_PAGE_PROTECT_MASK (3) 335b24aad44SBob Moore 3366e2d5ebdSBob Moore /* Values for Page Protect flags */ 3376e2d5ebdSBob Moore 3386e2d5ebdSBob Moore enum acpi_hpet_page_protect { 3396e2d5ebdSBob Moore ACPI_HPET_NO_PAGE_PROTECT = 0, 3406e2d5ebdSBob Moore ACPI_HPET_PAGE_PROTECT4 = 1, 3416e2d5ebdSBob Moore ACPI_HPET_PAGE_PROTECT64 = 2 3426e2d5ebdSBob Moore }; 343b24aad44SBob Moore 344b24aad44SBob Moore /******************************************************************************* 345b24aad44SBob Moore * 346b24aad44SBob Moore * IBFT - Boot Firmware Table 3476e2d5ebdSBob Moore * Version 1 3486e2d5ebdSBob Moore * 3496e2d5ebdSBob Moore * Conforms to "iSCSI Boot Firmware Table (iBFT) as Defined in ACPI 3.0b 3506e2d5ebdSBob Moore * Specification", Version 1.01, March 1, 2007 3516e2d5ebdSBob Moore * 3526e2d5ebdSBob Moore * Note: It appears that this table is not intended to appear in the RSDT/XSDT. 3536e2d5ebdSBob Moore * Therefore, it is not currently supported by the disassembler. 354b24aad44SBob Moore * 355b24aad44SBob Moore ******************************************************************************/ 356b24aad44SBob Moore 357b24aad44SBob Moore struct acpi_table_ibft { 358b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 359b24aad44SBob Moore u8 reserved[12]; 360b24aad44SBob Moore }; 361b24aad44SBob Moore 362b24aad44SBob Moore /* IBFT common subtable header */ 363b24aad44SBob Moore 364b24aad44SBob Moore struct acpi_ibft_header { 365b24aad44SBob Moore u8 type; 366b24aad44SBob Moore u8 version; 367b24aad44SBob Moore u16 length; 368b24aad44SBob Moore u8 index; 369b24aad44SBob Moore u8 flags; 370b24aad44SBob Moore }; 371b24aad44SBob Moore 372b24aad44SBob Moore /* Values for Type field above */ 373b24aad44SBob Moore 374b24aad44SBob Moore enum acpi_ibft_type { 375b24aad44SBob Moore ACPI_IBFT_TYPE_NOT_USED = 0, 376b24aad44SBob Moore ACPI_IBFT_TYPE_CONTROL = 1, 377b24aad44SBob Moore ACPI_IBFT_TYPE_INITIATOR = 2, 378b24aad44SBob Moore ACPI_IBFT_TYPE_NIC = 3, 379b24aad44SBob Moore ACPI_IBFT_TYPE_TARGET = 4, 380b24aad44SBob Moore ACPI_IBFT_TYPE_EXTENSIONS = 5, 381b24aad44SBob Moore ACPI_IBFT_TYPE_RESERVED = 6 /* 6 and greater are reserved */ 382b24aad44SBob Moore }; 383b24aad44SBob Moore 384b24aad44SBob Moore /* IBFT subtables */ 385b24aad44SBob Moore 386b24aad44SBob Moore struct acpi_ibft_control { 387b24aad44SBob Moore struct acpi_ibft_header header; 388b24aad44SBob Moore u16 extensions; 389b24aad44SBob Moore u16 initiator_offset; 390b24aad44SBob Moore u16 nic0_offset; 391b24aad44SBob Moore u16 target0_offset; 392b24aad44SBob Moore u16 nic1_offset; 393b24aad44SBob Moore u16 target1_offset; 394b24aad44SBob Moore }; 395b24aad44SBob Moore 396b24aad44SBob Moore struct acpi_ibft_initiator { 397b24aad44SBob Moore struct acpi_ibft_header header; 398b24aad44SBob Moore u8 sns_server[16]; 399b24aad44SBob Moore u8 slp_server[16]; 400b24aad44SBob Moore u8 primary_server[16]; 401b24aad44SBob Moore u8 secondary_server[16]; 402b24aad44SBob Moore u16 name_length; 403b24aad44SBob Moore u16 name_offset; 404b24aad44SBob Moore }; 405b24aad44SBob Moore 406b24aad44SBob Moore struct acpi_ibft_nic { 407b24aad44SBob Moore struct acpi_ibft_header header; 408b24aad44SBob Moore u8 ip_address[16]; 409b24aad44SBob Moore u8 subnet_mask_prefix; 410b24aad44SBob Moore u8 origin; 411b24aad44SBob Moore u8 gateway[16]; 412b24aad44SBob Moore u8 primary_dns[16]; 413b24aad44SBob Moore u8 secondary_dns[16]; 414b24aad44SBob Moore u8 dhcp[16]; 415b24aad44SBob Moore u16 vlan; 416b24aad44SBob Moore u8 mac_address[6]; 417b24aad44SBob Moore u16 pci_address; 418b24aad44SBob Moore u16 name_length; 419b24aad44SBob Moore u16 name_offset; 420b24aad44SBob Moore }; 421b24aad44SBob Moore 422b24aad44SBob Moore struct acpi_ibft_target { 423b24aad44SBob Moore struct acpi_ibft_header header; 424b24aad44SBob Moore u8 target_ip_address[16]; 425b24aad44SBob Moore u16 target_ip_socket; 426b24aad44SBob Moore u8 target_boot_lun[8]; 427b24aad44SBob Moore u8 chap_type; 428b24aad44SBob Moore u8 nic_association; 429b24aad44SBob Moore u16 target_name_length; 430b24aad44SBob Moore u16 target_name_offset; 431b24aad44SBob Moore u16 chap_name_length; 432b24aad44SBob Moore u16 chap_name_offset; 433b24aad44SBob Moore u16 chap_secret_length; 434b24aad44SBob Moore u16 chap_secret_offset; 435b24aad44SBob Moore u16 reverse_chap_name_length; 436b24aad44SBob Moore u16 reverse_chap_name_offset; 437b24aad44SBob Moore u16 reverse_chap_secret_length; 438b24aad44SBob Moore u16 reverse_chap_secret_offset; 439b24aad44SBob Moore }; 440b24aad44SBob Moore 441b24aad44SBob Moore /******************************************************************************* 442b24aad44SBob Moore * 4436e2d5ebdSBob Moore * IVRS - I/O Virtualization Reporting Structure 4446e2d5ebdSBob Moore * Version 1 4456e2d5ebdSBob Moore * 4466e2d5ebdSBob Moore * Conforms to "AMD I/O Virtualization Technology (IOMMU) Specification", 4476e2d5ebdSBob Moore * Revision 1.26, February 2009. 4486e2d5ebdSBob Moore * 4496e2d5ebdSBob Moore ******************************************************************************/ 4506e2d5ebdSBob Moore 4516e2d5ebdSBob Moore struct acpi_table_ivrs { 4526e2d5ebdSBob Moore struct acpi_table_header header; /* Common ACPI table header */ 4536e2d5ebdSBob Moore u32 info; /* Common virtualization info */ 4546e2d5ebdSBob Moore u64 reserved; 4556e2d5ebdSBob Moore }; 4566e2d5ebdSBob Moore 4576e2d5ebdSBob Moore /* Values for Info field above */ 4586e2d5ebdSBob Moore 4596e2d5ebdSBob Moore #define ACPI_IVRS_PHYSICAL_SIZE 0x00007F00 /* 7 bits, physical address size */ 4606e2d5ebdSBob Moore #define ACPI_IVRS_VIRTUAL_SIZE 0x003F8000 /* 7 bits, virtual address size */ 4616e2d5ebdSBob Moore #define ACPI_IVRS_ATS_RESERVED 0x00400000 /* ATS address translation range reserved */ 4626e2d5ebdSBob Moore 4636e2d5ebdSBob Moore /* IVRS subtable header */ 4646e2d5ebdSBob Moore 4656e2d5ebdSBob Moore struct acpi_ivrs_header { 4666e2d5ebdSBob Moore u8 type; /* Subtable type */ 4676e2d5ebdSBob Moore u8 flags; 4686e2d5ebdSBob Moore u16 length; /* Subtable length */ 4696e2d5ebdSBob Moore u16 device_id; /* ID of IOMMU */ 4706e2d5ebdSBob Moore }; 4716e2d5ebdSBob Moore 4726e2d5ebdSBob Moore /* Values for subtable Type above */ 4736e2d5ebdSBob Moore 4746e2d5ebdSBob Moore enum acpi_ivrs_type { 4756e2d5ebdSBob Moore ACPI_IVRS_TYPE_HARDWARE = 0x10, 4766e2d5ebdSBob Moore ACPI_IVRS_TYPE_MEMORY1 = 0x20, 4776e2d5ebdSBob Moore ACPI_IVRS_TYPE_MEMORY2 = 0x21, 4786e2d5ebdSBob Moore ACPI_IVRS_TYPE_MEMORY3 = 0x22 4796e2d5ebdSBob Moore }; 4806e2d5ebdSBob Moore 4816e2d5ebdSBob Moore /* Masks for Flags field above for IVHD subtable */ 4826e2d5ebdSBob Moore 4836e2d5ebdSBob Moore #define ACPI_IVHD_TT_ENABLE (1) 4846e2d5ebdSBob Moore #define ACPI_IVHD_PASS_PW (1<<1) 4856e2d5ebdSBob Moore #define ACPI_IVHD_RES_PASS_PW (1<<2) 4866e2d5ebdSBob Moore #define ACPI_IVHD_ISOC (1<<3) 4876e2d5ebdSBob Moore #define ACPI_IVHD_IOTLB (1<<4) 4886e2d5ebdSBob Moore 4896e2d5ebdSBob Moore /* Masks for Flags field above for IVMD subtable */ 4906e2d5ebdSBob Moore 4916e2d5ebdSBob Moore #define ACPI_IVMD_UNITY (1) 4926e2d5ebdSBob Moore #define ACPI_IVMD_READ (1<<1) 4936e2d5ebdSBob Moore #define ACPI_IVMD_WRITE (1<<2) 4946e2d5ebdSBob Moore #define ACPI_IVMD_EXCLUSION_RANGE (1<<3) 4956e2d5ebdSBob Moore 4966e2d5ebdSBob Moore /* 4976e2d5ebdSBob Moore * IVRS subtables, correspond to Type in struct acpi_ivrs_header 4986e2d5ebdSBob Moore */ 4996e2d5ebdSBob Moore 5006e2d5ebdSBob Moore /* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */ 5016e2d5ebdSBob Moore 5026e2d5ebdSBob Moore struct acpi_ivrs_hardware { 5036e2d5ebdSBob Moore struct acpi_ivrs_header header; 5046e2d5ebdSBob Moore u16 capability_offset; /* Offset for IOMMU control fields */ 5056e2d5ebdSBob Moore u64 base_address; /* IOMMU control registers */ 5066e2d5ebdSBob Moore u16 pci_segment_group; 5076e2d5ebdSBob Moore u16 info; /* MSI number and unit ID */ 5086e2d5ebdSBob Moore u32 reserved; 5096e2d5ebdSBob Moore }; 5106e2d5ebdSBob Moore 5116e2d5ebdSBob Moore /* Masks for Info field above */ 5126e2d5ebdSBob Moore 5136e2d5ebdSBob Moore #define ACPI_IVHD_MSI_NUMBER_MASK 0x001F /* 5 bits, MSI message number */ 5146e2d5ebdSBob Moore #define ACPI_IVHD_UNIT_ID_MASK 0x1F00 /* 5 bits, unit_iD */ 5156e2d5ebdSBob Moore 5166e2d5ebdSBob Moore /* 5176e2d5ebdSBob Moore * Device Entries for IVHD subtable, appear after struct acpi_ivrs_hardware structure. 5186e2d5ebdSBob Moore * Upper two bits of the Type field are the (encoded) length of the structure. 5196e2d5ebdSBob Moore * Currently, only 4 and 8 byte entries are defined. 16 and 32 byte entries 5206e2d5ebdSBob Moore * are reserved for future use but not defined. 5216e2d5ebdSBob Moore */ 5226e2d5ebdSBob Moore struct acpi_ivrs_de_header { 5236e2d5ebdSBob Moore u8 type; 5246e2d5ebdSBob Moore u16 id; 5256e2d5ebdSBob Moore u8 data_setting; 5266e2d5ebdSBob Moore }; 5276e2d5ebdSBob Moore 5286e2d5ebdSBob Moore /* Length of device entry is in the top two bits of Type field above */ 5296e2d5ebdSBob Moore 5306e2d5ebdSBob Moore #define ACPI_IVHD_ENTRY_LENGTH 0xC0 5316e2d5ebdSBob Moore 5326e2d5ebdSBob Moore /* Values for device entry Type field above */ 5336e2d5ebdSBob Moore 5346e2d5ebdSBob Moore enum acpi_ivrs_device_entry_type { 5356e2d5ebdSBob Moore /* 4-byte device entries, all use struct acpi_ivrs_device4 */ 5366e2d5ebdSBob Moore 5376e2d5ebdSBob Moore ACPI_IVRS_TYPE_PAD4 = 0, 5386e2d5ebdSBob Moore ACPI_IVRS_TYPE_ALL = 1, 5396e2d5ebdSBob Moore ACPI_IVRS_TYPE_SELECT = 2, 5406e2d5ebdSBob Moore ACPI_IVRS_TYPE_START = 3, 5416e2d5ebdSBob Moore ACPI_IVRS_TYPE_END = 4, 5426e2d5ebdSBob Moore 5436e2d5ebdSBob Moore /* 8-byte device entries */ 5446e2d5ebdSBob Moore 5456e2d5ebdSBob Moore ACPI_IVRS_TYPE_PAD8 = 64, 5466e2d5ebdSBob Moore ACPI_IVRS_TYPE_NOT_USED = 65, 5476e2d5ebdSBob Moore ACPI_IVRS_TYPE_ALIAS_SELECT = 66, /* Uses struct acpi_ivrs_device8a */ 5486e2d5ebdSBob Moore ACPI_IVRS_TYPE_ALIAS_START = 67, /* Uses struct acpi_ivrs_device8a */ 5496e2d5ebdSBob Moore ACPI_IVRS_TYPE_EXT_SELECT = 70, /* Uses struct acpi_ivrs_device8b */ 5506e2d5ebdSBob Moore ACPI_IVRS_TYPE_EXT_START = 71, /* Uses struct acpi_ivrs_device8b */ 5516e2d5ebdSBob Moore ACPI_IVRS_TYPE_SPECIAL = 72 /* Uses struct acpi_ivrs_device8c */ 5526e2d5ebdSBob Moore }; 5536e2d5ebdSBob Moore 5546e2d5ebdSBob Moore /* Values for Data field above */ 5556e2d5ebdSBob Moore 5566e2d5ebdSBob Moore #define ACPI_IVHD_INIT_PASS (1) 5576e2d5ebdSBob Moore #define ACPI_IVHD_EINT_PASS (1<<1) 5586e2d5ebdSBob Moore #define ACPI_IVHD_NMI_PASS (1<<2) 5596e2d5ebdSBob Moore #define ACPI_IVHD_SYSTEM_MGMT (3<<4) 5606e2d5ebdSBob Moore #define ACPI_IVHD_LINT0_PASS (1<<6) 5616e2d5ebdSBob Moore #define ACPI_IVHD_LINT1_PASS (1<<7) 5626e2d5ebdSBob Moore 5636e2d5ebdSBob Moore /* Types 0-4: 4-byte device entry */ 5646e2d5ebdSBob Moore 5656e2d5ebdSBob Moore struct acpi_ivrs_device4 { 5666e2d5ebdSBob Moore struct acpi_ivrs_de_header header; 5676e2d5ebdSBob Moore }; 5686e2d5ebdSBob Moore 5696e2d5ebdSBob Moore /* Types 66-67: 8-byte device entry */ 5706e2d5ebdSBob Moore 5716e2d5ebdSBob Moore struct acpi_ivrs_device8a { 5726e2d5ebdSBob Moore struct acpi_ivrs_de_header header; 5736e2d5ebdSBob Moore u8 reserved1; 5746e2d5ebdSBob Moore u16 used_id; 5756e2d5ebdSBob Moore u8 reserved2; 5766e2d5ebdSBob Moore }; 5776e2d5ebdSBob Moore 5786e2d5ebdSBob Moore /* Types 70-71: 8-byte device entry */ 5796e2d5ebdSBob Moore 5806e2d5ebdSBob Moore struct acpi_ivrs_device8b { 5816e2d5ebdSBob Moore struct acpi_ivrs_de_header header; 5826e2d5ebdSBob Moore u32 extended_data; 5836e2d5ebdSBob Moore }; 5846e2d5ebdSBob Moore 5856e2d5ebdSBob Moore /* Values for extended_data above */ 5866e2d5ebdSBob Moore 5876e2d5ebdSBob Moore #define ACPI_IVHD_ATS_DISABLED (1<<31) 5886e2d5ebdSBob Moore 5896e2d5ebdSBob Moore /* Type 72: 8-byte device entry */ 5906e2d5ebdSBob Moore 5916e2d5ebdSBob Moore struct acpi_ivrs_device8c { 5926e2d5ebdSBob Moore struct acpi_ivrs_de_header header; 5936e2d5ebdSBob Moore u8 handle; 5946e2d5ebdSBob Moore u16 used_id; 5956e2d5ebdSBob Moore u8 variety; 5966e2d5ebdSBob Moore }; 5976e2d5ebdSBob Moore 5986e2d5ebdSBob Moore /* Values for Variety field above */ 5996e2d5ebdSBob Moore 6006e2d5ebdSBob Moore #define ACPI_IVHD_IOAPIC 1 6016e2d5ebdSBob Moore #define ACPI_IVHD_HPET 2 6026e2d5ebdSBob Moore 6036e2d5ebdSBob Moore /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */ 6046e2d5ebdSBob Moore 6056e2d5ebdSBob Moore struct acpi_ivrs_memory { 6066e2d5ebdSBob Moore struct acpi_ivrs_header header; 6076e2d5ebdSBob Moore u16 aux_data; 6086e2d5ebdSBob Moore u64 reserved; 6096e2d5ebdSBob Moore u64 start_address; 6106e2d5ebdSBob Moore u64 memory_length; 6116e2d5ebdSBob Moore }; 6126e2d5ebdSBob Moore 6136e2d5ebdSBob Moore /******************************************************************************* 6146e2d5ebdSBob Moore * 615b24aad44SBob Moore * MCFG - PCI Memory Mapped Configuration table and sub-table 6166e2d5ebdSBob Moore * Version 1 6176e2d5ebdSBob Moore * 6186e2d5ebdSBob Moore * Conforms to "PCI Firmware Specification", Revision 3.0, June 20, 2005 619b24aad44SBob Moore * 620b24aad44SBob Moore ******************************************************************************/ 621b24aad44SBob Moore 622b24aad44SBob Moore struct acpi_table_mcfg { 623b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 624b24aad44SBob Moore u8 reserved[8]; 625b24aad44SBob Moore }; 626b24aad44SBob Moore 627b24aad44SBob Moore /* Subtable */ 628b24aad44SBob Moore 629b24aad44SBob Moore struct acpi_mcfg_allocation { 630b24aad44SBob Moore u64 address; /* Base address, processor-relative */ 631b24aad44SBob Moore u16 pci_segment; /* PCI segment group number */ 632b24aad44SBob Moore u8 start_bus_number; /* Starting PCI Bus number */ 633b24aad44SBob Moore u8 end_bus_number; /* Final PCI Bus number */ 634b24aad44SBob Moore u32 reserved; 635b24aad44SBob Moore }; 636b24aad44SBob Moore 637b24aad44SBob Moore /******************************************************************************* 638b24aad44SBob Moore * 639b24aad44SBob Moore * SPCR - Serial Port Console Redirection table 6406e2d5ebdSBob Moore * Version 1 6416e2d5ebdSBob Moore * 6426e2d5ebdSBob Moore * Conforms to "Serial Port Console Redirection Table", 6436e2d5ebdSBob Moore * Version 1.00, January 11, 2002 644b24aad44SBob Moore * 645b24aad44SBob Moore ******************************************************************************/ 646b24aad44SBob Moore 647b24aad44SBob Moore struct acpi_table_spcr { 648b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 649b24aad44SBob Moore u8 interface_type; /* 0=full 16550, 1=subset of 16550 */ 650b24aad44SBob Moore u8 reserved[3]; 651b24aad44SBob Moore struct acpi_generic_address serial_port; 652b24aad44SBob Moore u8 interrupt_type; 653b24aad44SBob Moore u8 pc_interrupt; 654b24aad44SBob Moore u32 interrupt; 655b24aad44SBob Moore u8 baud_rate; 656b24aad44SBob Moore u8 parity; 657b24aad44SBob Moore u8 stop_bits; 658b24aad44SBob Moore u8 flow_control; 659b24aad44SBob Moore u8 terminal_type; 660b24aad44SBob Moore u8 reserved1; 661b24aad44SBob Moore u16 pci_device_id; 662b24aad44SBob Moore u16 pci_vendor_id; 663b24aad44SBob Moore u8 pci_bus; 664b24aad44SBob Moore u8 pci_device; 665b24aad44SBob Moore u8 pci_function; 666b24aad44SBob Moore u32 pci_flags; 667b24aad44SBob Moore u8 pci_segment; 668b24aad44SBob Moore u32 reserved2; 669b24aad44SBob Moore }; 670b24aad44SBob Moore 6716e2d5ebdSBob Moore /* Masks for pci_flags field above */ 6726e2d5ebdSBob Moore 6736e2d5ebdSBob Moore #define ACPI_SPCR_DO_NOT_DISABLE (1) 6746e2d5ebdSBob Moore 675b24aad44SBob Moore /******************************************************************************* 676b24aad44SBob Moore * 677b24aad44SBob Moore * SPMI - Server Platform Management Interface table 6786e2d5ebdSBob Moore * Version 5 6796e2d5ebdSBob Moore * 6806e2d5ebdSBob Moore * Conforms to "Intelligent Platform Management Interface Specification 6816e2d5ebdSBob Moore * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with 6826e2d5ebdSBob Moore * June 12, 2009 markup. 683b24aad44SBob Moore * 684b24aad44SBob Moore ******************************************************************************/ 685b24aad44SBob Moore 686b24aad44SBob Moore struct acpi_table_spmi { 687b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 688b24aad44SBob Moore u8 interface_type; 6896e2d5ebdSBob Moore u8 reserved; /* Must be 1 */ 690b24aad44SBob Moore u16 spec_revision; /* Version of IPMI */ 691b24aad44SBob Moore u8 interrupt_type; 692b24aad44SBob Moore u8 gpe_number; /* GPE assigned */ 693b24aad44SBob Moore u8 reserved1; 694b24aad44SBob Moore u8 pci_device_flag; 695b24aad44SBob Moore u32 interrupt; 696b24aad44SBob Moore struct acpi_generic_address ipmi_register; 697b24aad44SBob Moore u8 pci_segment; 698b24aad44SBob Moore u8 pci_bus; 699b24aad44SBob Moore u8 pci_device; 700b24aad44SBob Moore u8 pci_function; 7016e2d5ebdSBob Moore u8 reserved2; 7026e2d5ebdSBob Moore }; 7036e2d5ebdSBob Moore 7046e2d5ebdSBob Moore /* Values for interface_type above */ 7056e2d5ebdSBob Moore 7066e2d5ebdSBob Moore enum acpi_spmi_interface_types { 7076e2d5ebdSBob Moore ACPI_SPMI_NOT_USED = 0, 7086e2d5ebdSBob Moore ACPI_SPMI_KEYBOARD = 1, 7096e2d5ebdSBob Moore ACPI_SPMI_SMI = 2, 7106e2d5ebdSBob Moore ACPI_SPMI_BLOCK_TRANSFER = 3, 7116e2d5ebdSBob Moore ACPI_SPMI_SMBUS = 4, 7126e2d5ebdSBob Moore ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */ 713b24aad44SBob Moore }; 714b24aad44SBob Moore 715b24aad44SBob Moore /******************************************************************************* 716b24aad44SBob Moore * 717b24aad44SBob Moore * TCPA - Trusted Computing Platform Alliance table 7186e2d5ebdSBob Moore * Version 1 7196e2d5ebdSBob Moore * 7206e2d5ebdSBob Moore * Conforms to "TCG PC Specific Implementation Specification", 7216e2d5ebdSBob Moore * Version 1.1, August 18, 2003 722b24aad44SBob Moore * 723b24aad44SBob Moore ******************************************************************************/ 724b24aad44SBob Moore 725b24aad44SBob Moore struct acpi_table_tcpa { 726b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 727b24aad44SBob Moore u16 reserved; 728b24aad44SBob Moore u32 max_log_length; /* Maximum length for the event log area */ 729b24aad44SBob Moore u64 log_address; /* Address of the event log area */ 730b24aad44SBob Moore }; 731b24aad44SBob Moore 732b24aad44SBob Moore /******************************************************************************* 733b24aad44SBob Moore * 734b24aad44SBob Moore * UEFI - UEFI Boot optimization Table 7356e2d5ebdSBob Moore * Version 1 7366e2d5ebdSBob Moore * 7376e2d5ebdSBob Moore * Conforms to "Unified Extensible Firmware Interface Specification", 7386e2d5ebdSBob Moore * Version 2.3, May 8, 2009 739b24aad44SBob Moore * 740b24aad44SBob Moore ******************************************************************************/ 741b24aad44SBob Moore 742b24aad44SBob Moore struct acpi_table_uefi { 743b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 744b24aad44SBob Moore u8 identifier[16]; /* UUID identifier */ 745b24aad44SBob Moore u16 data_offset; /* Offset of remaining data in table */ 746b24aad44SBob Moore }; 747b24aad44SBob Moore 748b24aad44SBob Moore /******************************************************************************* 749b24aad44SBob Moore * 7506e2d5ebdSBob Moore * WAET - Windows ACPI Emulated devices Table 7516e2d5ebdSBob Moore * Version 1 7526e2d5ebdSBob Moore * 7536e2d5ebdSBob Moore * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009 7546e2d5ebdSBob Moore * 7556e2d5ebdSBob Moore ******************************************************************************/ 7566e2d5ebdSBob Moore 7576e2d5ebdSBob Moore struct acpi_table_waet { 7586e2d5ebdSBob Moore struct acpi_table_header header; /* Common ACPI table header */ 7596e2d5ebdSBob Moore u32 flags; 7606e2d5ebdSBob Moore }; 7616e2d5ebdSBob Moore 7626e2d5ebdSBob Moore /* Masks for Flags field above */ 7636e2d5ebdSBob Moore 7646e2d5ebdSBob Moore #define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */ 7656e2d5ebdSBob Moore #define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */ 7666e2d5ebdSBob Moore 7676e2d5ebdSBob Moore /******************************************************************************* 7686e2d5ebdSBob Moore * 769b24aad44SBob Moore * WDAT - Watchdog Action Table 7706e2d5ebdSBob Moore * Version 1 7716e2d5ebdSBob Moore * 7726e2d5ebdSBob Moore * Conforms to "Hardware Watchdog Timers Design Specification", 7736e2d5ebdSBob Moore * Copyright 2006 Microsoft Corporation. 774b24aad44SBob Moore * 775b24aad44SBob Moore ******************************************************************************/ 776b24aad44SBob Moore 777b24aad44SBob Moore struct acpi_table_wdat { 778b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 779b24aad44SBob Moore u32 header_length; /* Watchdog Header Length */ 780b24aad44SBob Moore u16 pci_segment; /* PCI Segment number */ 781b24aad44SBob Moore u8 pci_bus; /* PCI Bus number */ 782b24aad44SBob Moore u8 pci_device; /* PCI Device number */ 783b24aad44SBob Moore u8 pci_function; /* PCI Function number */ 784b24aad44SBob Moore u8 reserved[3]; 785b24aad44SBob Moore u32 timer_period; /* Period of one timer count (msec) */ 786b24aad44SBob Moore u32 max_count; /* Maximum counter value supported */ 787b24aad44SBob Moore u32 min_count; /* Minimum counter value */ 788b24aad44SBob Moore u8 flags; 789b24aad44SBob Moore u8 reserved2[3]; 790b24aad44SBob Moore u32 entries; /* Number of watchdog entries that follow */ 791b24aad44SBob Moore }; 792b24aad44SBob Moore 7936e2d5ebdSBob Moore /* Masks for Flags field above */ 7946e2d5ebdSBob Moore 7956e2d5ebdSBob Moore #define ACPI_WDAT_ENABLED (1) 7966e2d5ebdSBob Moore #define ACPI_WDAT_STOPPED 0x80 7976e2d5ebdSBob Moore 798b24aad44SBob Moore /* WDAT Instruction Entries (actions) */ 799b24aad44SBob Moore 800b24aad44SBob Moore struct acpi_wdat_entry { 8016e2d5ebdSBob Moore u8 action; 8026e2d5ebdSBob Moore u8 instruction; 8036e2d5ebdSBob Moore u16 reserved; 8046e2d5ebdSBob Moore struct acpi_generic_address register_region; 8056e2d5ebdSBob Moore u32 value; /* Value used with Read/Write register */ 8066e2d5ebdSBob Moore u32 mask; /* Bitmask required for this register instruction */ 807b24aad44SBob Moore }; 808b24aad44SBob Moore 809b24aad44SBob Moore /* Values for Action field above */ 810b24aad44SBob Moore 811b24aad44SBob Moore enum acpi_wdat_actions { 812b24aad44SBob Moore ACPI_WDAT_RESET = 1, 813b24aad44SBob Moore ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4, 814b24aad44SBob Moore ACPI_WDAT_GET_COUNTDOWN = 5, 815b24aad44SBob Moore ACPI_WDAT_SET_COUNTDOWN = 6, 816b24aad44SBob Moore ACPI_WDAT_GET_RUNNING_STATE = 8, 817b24aad44SBob Moore ACPI_WDAT_SET_RUNNING_STATE = 9, 818b24aad44SBob Moore ACPI_WDAT_GET_STOPPED_STATE = 10, 819b24aad44SBob Moore ACPI_WDAT_SET_STOPPED_STATE = 11, 820b24aad44SBob Moore ACPI_WDAT_GET_REBOOT = 16, 821b24aad44SBob Moore ACPI_WDAT_SET_REBOOT = 17, 822b24aad44SBob Moore ACPI_WDAT_GET_SHUTDOWN = 18, 823b24aad44SBob Moore ACPI_WDAT_SET_SHUTDOWN = 19, 824b24aad44SBob Moore ACPI_WDAT_GET_STATUS = 32, 825b24aad44SBob Moore ACPI_WDAT_SET_STATUS = 33, 826b24aad44SBob Moore ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */ 827b24aad44SBob Moore }; 828b24aad44SBob Moore 829b24aad44SBob Moore /* Values for Instruction field above */ 830b24aad44SBob Moore 831b24aad44SBob Moore enum acpi_wdat_instructions { 832b24aad44SBob Moore ACPI_WDAT_READ_VALUE = 0, 833b24aad44SBob Moore ACPI_WDAT_READ_COUNTDOWN = 1, 834b24aad44SBob Moore ACPI_WDAT_WRITE_VALUE = 2, 835b24aad44SBob Moore ACPI_WDAT_WRITE_COUNTDOWN = 3, 836b24aad44SBob Moore ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */ 837b24aad44SBob Moore ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */ 838b24aad44SBob Moore }; 839b24aad44SBob Moore 840b24aad44SBob Moore /******************************************************************************* 841b24aad44SBob Moore * 842b24aad44SBob Moore * WDRT - Watchdog Resource Table 8436e2d5ebdSBob Moore * Version 1 8446e2d5ebdSBob Moore * 8456e2d5ebdSBob Moore * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003", 8466e2d5ebdSBob Moore * Version 1.01, August 28, 2006 847b24aad44SBob Moore * 848b24aad44SBob Moore ******************************************************************************/ 849b24aad44SBob Moore 850b24aad44SBob Moore struct acpi_table_wdrt { 851b24aad44SBob Moore struct acpi_table_header header; /* Common ACPI table header */ 8526e2d5ebdSBob Moore struct acpi_generic_address control_register; 8536e2d5ebdSBob Moore struct acpi_generic_address count_register; 8546e2d5ebdSBob Moore u16 pci_device_id; 8556e2d5ebdSBob Moore u16 pci_vendor_id; 856b24aad44SBob Moore u8 pci_bus; /* PCI Bus number */ 857b24aad44SBob Moore u8 pci_device; /* PCI Device number */ 858b24aad44SBob Moore u8 pci_function; /* PCI Function number */ 8596e2d5ebdSBob Moore u8 pci_segment; /* PCI Segment number */ 8606e2d5ebdSBob Moore u16 max_count; /* Maximum counter value supported */ 8616e2d5ebdSBob Moore u8 units; 862b24aad44SBob Moore }; 863b24aad44SBob Moore 864b24aad44SBob Moore /* Reset to default packing */ 865b24aad44SBob Moore 866b24aad44SBob Moore #pragma pack() 867b24aad44SBob Moore 868b24aad44SBob Moore #endif /* __ACTBL2_H__ */ 869