diff options
Diffstat (limited to 'include/acpi/actbl2.h')
-rw-r--r-- | include/acpi/actbl2.h | 339 |
1 files changed, 311 insertions, 28 deletions
diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index b271aba0e524..6f3dce9991e1 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h | |||
@@ -14,8 +14,9 @@ | |||
14 | ******************************************************************************/ | 14 | ******************************************************************************/ |
15 | 15 | ||
16 | /* | 16 | /* |
17 | * Values for description table header signatures. Useful because they make | 17 | * Values for description table header signatures for tables defined in this |
18 | * it more difficult to inadvertently type in the wrong signature. | 18 | * file. Useful because they make it more difficult to inadvertently type in |
19 | * the wrong signature. | ||
19 | */ | 20 | */ |
20 | #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ | 21 | #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ |
21 | #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ | 22 | #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ |
@@ -23,12 +24,14 @@ | |||
23 | #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ | 24 | #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ |
24 | #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ | 25 | #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ |
25 | #define ACPI_SIG_IBFT "IBFT" /* i_sCSI Boot Firmware Table */ | 26 | #define ACPI_SIG_IBFT "IBFT" /* i_sCSI Boot Firmware Table */ |
27 | #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ | ||
26 | #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ | 28 | #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ |
27 | #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ | 29 | #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ |
28 | #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ | 30 | #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ |
29 | #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ | 31 | #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ |
30 | #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ | 32 | #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ |
31 | #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ | 33 | #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ |
34 | #define ACPI_SIG_WAET "WAET" /* Windows ACPI Emulated devices Table */ | ||
32 | #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ | 35 | #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ |
33 | #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ | 36 | #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ |
34 | 37 | ||
@@ -47,6 +50,7 @@ | |||
47 | /******************************************************************************* | 50 | /******************************************************************************* |
48 | * | 51 | * |
49 | * ASF - Alert Standard Format table (Signature "ASF!") | 52 | * ASF - Alert Standard Format table (Signature "ASF!") |
53 | * Revision 0x10 | ||
50 | * | 54 | * |
51 | * Conforms to the Alert Standard Format Specification V2.0, 23 April 2003 | 55 | * Conforms to the Alert Standard Format Specification V2.0, 23 April 2003 |
52 | * | 56 | * |
@@ -91,6 +95,10 @@ struct acpi_asf_info { | |||
91 | u8 reserved2[3]; | 95 | u8 reserved2[3]; |
92 | }; | 96 | }; |
93 | 97 | ||
98 | /* Masks for Flags field above */ | ||
99 | |||
100 | #define ACPI_ASF_SMBUS_PROTOCOLS (1) | ||
101 | |||
94 | /* 1: ASF Alerts */ | 102 | /* 1: ASF Alerts */ |
95 | 103 | ||
96 | struct acpi_asf_alert { | 104 | struct acpi_asf_alert { |
@@ -156,6 +164,9 @@ struct acpi_asf_address { | |||
156 | /******************************************************************************* | 164 | /******************************************************************************* |
157 | * | 165 | * |
158 | * BOOT - Simple Boot Flag Table | 166 | * BOOT - Simple Boot Flag Table |
167 | * Version 1 | ||
168 | * | ||
169 | * Conforms to the "Simple Boot Flag Specification", Version 2.1 | ||
159 | * | 170 | * |
160 | ******************************************************************************/ | 171 | ******************************************************************************/ |
161 | 172 | ||
@@ -168,6 +179,9 @@ struct acpi_table_boot { | |||
168 | /******************************************************************************* | 179 | /******************************************************************************* |
169 | * | 180 | * |
170 | * DBGP - Debug Port table | 181 | * DBGP - Debug Port table |
182 | * Version 1 | ||
183 | * | ||
184 | * Conforms to the "Debug Port Specification", Version 1.00, 2/9/2000 | ||
171 | * | 185 | * |
172 | ******************************************************************************/ | 186 | ******************************************************************************/ |
173 | 187 | ||
@@ -181,7 +195,10 @@ struct acpi_table_dbgp { | |||
181 | /******************************************************************************* | 195 | /******************************************************************************* |
182 | * | 196 | * |
183 | * DMAR - DMA Remapping table | 197 | * DMAR - DMA Remapping table |
184 | * From "Intel Virtualization Technology for Directed I/O", Sept. 2007 | 198 | * Version 1 |
199 | * | ||
200 | * Conforms to "Intel Virtualization Technology for Directed I/O", | ||
201 | * Version 1.2, Sept. 2008 | ||
185 | * | 202 | * |
186 | ******************************************************************************/ | 203 | ******************************************************************************/ |
187 | 204 | ||
@@ -192,7 +209,7 @@ struct acpi_table_dmar { | |||
192 | u8 reserved[10]; | 209 | u8 reserved[10]; |
193 | }; | 210 | }; |
194 | 211 | ||
195 | /* Flags */ | 212 | /* Masks for Flags field above */ |
196 | 213 | ||
197 | #define ACPI_DMAR_INTR_REMAP (1) | 214 | #define ACPI_DMAR_INTR_REMAP (1) |
198 | 215 | ||
@@ -209,9 +226,12 @@ enum acpi_dmar_type { | |||
209 | ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, | 226 | ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, |
210 | ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, | 227 | ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, |
211 | ACPI_DMAR_TYPE_ATSR = 2, | 228 | ACPI_DMAR_TYPE_ATSR = 2, |
212 | ACPI_DMAR_TYPE_RESERVED = 3 /* 3 and greater are reserved */ | 229 | ACPI_DMAR_HARDWARE_AFFINITY = 3, |
230 | ACPI_DMAR_TYPE_RESERVED = 4 /* 4 and greater are reserved */ | ||
213 | }; | 231 | }; |
214 | 232 | ||
233 | /* DMAR Device Scope structure */ | ||
234 | |||
215 | struct acpi_dmar_device_scope { | 235 | struct acpi_dmar_device_scope { |
216 | u8 entry_type; | 236 | u8 entry_type; |
217 | u8 length; | 237 | u8 length; |
@@ -250,7 +270,7 @@ struct acpi_dmar_hardware_unit { | |||
250 | u64 address; /* Register Base Address */ | 270 | u64 address; /* Register Base Address */ |
251 | }; | 271 | }; |
252 | 272 | ||
253 | /* Flags */ | 273 | /* Masks for Flags field above */ |
254 | 274 | ||
255 | #define ACPI_DMAR_INCLUDE_ALL (1) | 275 | #define ACPI_DMAR_INCLUDE_ALL (1) |
256 | 276 | ||
@@ -264,7 +284,7 @@ struct acpi_dmar_reserved_memory { | |||
264 | u64 end_address; /* 4_k aligned limit address */ | 284 | u64 end_address; /* 4_k aligned limit address */ |
265 | }; | 285 | }; |
266 | 286 | ||
267 | /* Flags */ | 287 | /* Masks for Flags field above */ |
268 | 288 | ||
269 | #define ACPI_DMAR_ALLOW_ALL (1) | 289 | #define ACPI_DMAR_ALLOW_ALL (1) |
270 | 290 | ||
@@ -277,13 +297,26 @@ struct acpi_dmar_atsr { | |||
277 | u16 segment; | 297 | u16 segment; |
278 | }; | 298 | }; |
279 | 299 | ||
280 | /* Flags */ | 300 | /* Masks for Flags field above */ |
281 | 301 | ||
282 | #define ACPI_DMAR_ALL_PORTS (1) | 302 | #define ACPI_DMAR_ALL_PORTS (1) |
283 | 303 | ||
304 | /* 3: Remapping Hardware Static Affinity Structure */ | ||
305 | |||
306 | struct acpi_dmar_rhsa { | ||
307 | struct acpi_dmar_header header; | ||
308 | u32 reserved; | ||
309 | u64 base_address; | ||
310 | u32 proximity_domain; | ||
311 | }; | ||
312 | |||
284 | /******************************************************************************* | 313 | /******************************************************************************* |
285 | * | 314 | * |
286 | * HPET - High Precision Event Timer table | 315 | * HPET - High Precision Event Timer table |
316 | * Version 1 | ||
317 | * | ||
318 | * Conforms to "IA-PC HPET (High Precision Event Timers) Specification", | ||
319 | * Version 1.0a, October 2004 | ||
287 | * | 320 | * |
288 | ******************************************************************************/ | 321 | ******************************************************************************/ |
289 | 322 | ||
@@ -296,17 +329,28 @@ struct acpi_table_hpet { | |||
296 | u8 flags; | 329 | u8 flags; |
297 | }; | 330 | }; |
298 | 331 | ||
299 | /*! Flags */ | 332 | /* Masks for Flags field above */ |
300 | 333 | ||
301 | #define ACPI_HPET_PAGE_PROTECT (1) /* 00: No page protection */ | 334 | #define ACPI_HPET_PAGE_PROTECT_MASK (3) |
302 | #define ACPI_HPET_PAGE_PROTECT_4 (1<<1) /* 01: 4KB page protected */ | ||
303 | #define ACPI_HPET_PAGE_PROTECT_64 (1<<2) /* 02: 64KB page protected */ | ||
304 | 335 | ||
305 | /*! [End] no source code translation !*/ | 336 | /* Values for Page Protect flags */ |
337 | |||
338 | enum acpi_hpet_page_protect { | ||
339 | ACPI_HPET_NO_PAGE_PROTECT = 0, | ||
340 | ACPI_HPET_PAGE_PROTECT4 = 1, | ||
341 | ACPI_HPET_PAGE_PROTECT64 = 2 | ||
342 | }; | ||
306 | 343 | ||
307 | /******************************************************************************* | 344 | /******************************************************************************* |
308 | * | 345 | * |
309 | * IBFT - Boot Firmware Table | 346 | * IBFT - Boot Firmware Table |
347 | * Version 1 | ||
348 | * | ||
349 | * Conforms to "iSCSI Boot Firmware Table (iBFT) as Defined in ACPI 3.0b | ||
350 | * Specification", Version 1.01, March 1, 2007 | ||
351 | * | ||
352 | * Note: It appears that this table is not intended to appear in the RSDT/XSDT. | ||
353 | * Therefore, it is not currently supported by the disassembler. | ||
310 | * | 354 | * |
311 | ******************************************************************************/ | 355 | ******************************************************************************/ |
312 | 356 | ||
@@ -396,7 +440,182 @@ struct acpi_ibft_target { | |||
396 | 440 | ||
397 | /******************************************************************************* | 441 | /******************************************************************************* |
398 | * | 442 | * |
443 | * IVRS - I/O Virtualization Reporting Structure | ||
444 | * Version 1 | ||
445 | * | ||
446 | * Conforms to "AMD I/O Virtualization Technology (IOMMU) Specification", | ||
447 | * Revision 1.26, February 2009. | ||
448 | * | ||
449 | ******************************************************************************/ | ||
450 | |||
451 | struct acpi_table_ivrs { | ||
452 | struct acpi_table_header header; /* Common ACPI table header */ | ||
453 | u32 info; /* Common virtualization info */ | ||
454 | u64 reserved; | ||
455 | }; | ||
456 | |||
457 | /* Values for Info field above */ | ||
458 | |||
459 | #define ACPI_IVRS_PHYSICAL_SIZE 0x00007F00 /* 7 bits, physical address size */ | ||
460 | #define ACPI_IVRS_VIRTUAL_SIZE 0x003F8000 /* 7 bits, virtual address size */ | ||
461 | #define ACPI_IVRS_ATS_RESERVED 0x00400000 /* ATS address translation range reserved */ | ||
462 | |||
463 | /* IVRS subtable header */ | ||
464 | |||
465 | struct acpi_ivrs_header { | ||
466 | u8 type; /* Subtable type */ | ||
467 | u8 flags; | ||
468 | u16 length; /* Subtable length */ | ||
469 | u16 device_id; /* ID of IOMMU */ | ||
470 | }; | ||
471 | |||
472 | /* Values for subtable Type above */ | ||
473 | |||
474 | enum acpi_ivrs_type { | ||
475 | ACPI_IVRS_TYPE_HARDWARE = 0x10, | ||
476 | ACPI_IVRS_TYPE_MEMORY1 = 0x20, | ||
477 | ACPI_IVRS_TYPE_MEMORY2 = 0x21, | ||
478 | ACPI_IVRS_TYPE_MEMORY3 = 0x22 | ||
479 | }; | ||
480 | |||
481 | /* Masks for Flags field above for IVHD subtable */ | ||
482 | |||
483 | #define ACPI_IVHD_TT_ENABLE (1) | ||
484 | #define ACPI_IVHD_PASS_PW (1<<1) | ||
485 | #define ACPI_IVHD_RES_PASS_PW (1<<2) | ||
486 | #define ACPI_IVHD_ISOC (1<<3) | ||
487 | #define ACPI_IVHD_IOTLB (1<<4) | ||
488 | |||
489 | /* Masks for Flags field above for IVMD subtable */ | ||
490 | |||
491 | #define ACPI_IVMD_UNITY (1) | ||
492 | #define ACPI_IVMD_READ (1<<1) | ||
493 | #define ACPI_IVMD_WRITE (1<<2) | ||
494 | #define ACPI_IVMD_EXCLUSION_RANGE (1<<3) | ||
495 | |||
496 | /* | ||
497 | * IVRS subtables, correspond to Type in struct acpi_ivrs_header | ||
498 | */ | ||
499 | |||
500 | /* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */ | ||
501 | |||
502 | struct acpi_ivrs_hardware { | ||
503 | struct acpi_ivrs_header header; | ||
504 | u16 capability_offset; /* Offset for IOMMU control fields */ | ||
505 | u64 base_address; /* IOMMU control registers */ | ||
506 | u16 pci_segment_group; | ||
507 | u16 info; /* MSI number and unit ID */ | ||
508 | u32 reserved; | ||
509 | }; | ||
510 | |||
511 | /* Masks for Info field above */ | ||
512 | |||
513 | #define ACPI_IVHD_MSI_NUMBER_MASK 0x001F /* 5 bits, MSI message number */ | ||
514 | #define ACPI_IVHD_UNIT_ID_MASK 0x1F00 /* 5 bits, unit_iD */ | ||
515 | |||
516 | /* | ||
517 | * Device Entries for IVHD subtable, appear after struct acpi_ivrs_hardware structure. | ||
518 | * Upper two bits of the Type field are the (encoded) length of the structure. | ||
519 | * Currently, only 4 and 8 byte entries are defined. 16 and 32 byte entries | ||
520 | * are reserved for future use but not defined. | ||
521 | */ | ||
522 | struct acpi_ivrs_de_header { | ||
523 | u8 type; | ||
524 | u16 id; | ||
525 | u8 data_setting; | ||
526 | }; | ||
527 | |||
528 | /* Length of device entry is in the top two bits of Type field above */ | ||
529 | |||
530 | #define ACPI_IVHD_ENTRY_LENGTH 0xC0 | ||
531 | |||
532 | /* Values for device entry Type field above */ | ||
533 | |||
534 | enum acpi_ivrs_device_entry_type { | ||
535 | /* 4-byte device entries, all use struct acpi_ivrs_device4 */ | ||
536 | |||
537 | ACPI_IVRS_TYPE_PAD4 = 0, | ||
538 | ACPI_IVRS_TYPE_ALL = 1, | ||
539 | ACPI_IVRS_TYPE_SELECT = 2, | ||
540 | ACPI_IVRS_TYPE_START = 3, | ||
541 | ACPI_IVRS_TYPE_END = 4, | ||
542 | |||
543 | /* 8-byte device entries */ | ||
544 | |||
545 | ACPI_IVRS_TYPE_PAD8 = 64, | ||
546 | ACPI_IVRS_TYPE_NOT_USED = 65, | ||
547 | ACPI_IVRS_TYPE_ALIAS_SELECT = 66, /* Uses struct acpi_ivrs_device8a */ | ||
548 | ACPI_IVRS_TYPE_ALIAS_START = 67, /* Uses struct acpi_ivrs_device8a */ | ||
549 | ACPI_IVRS_TYPE_EXT_SELECT = 70, /* Uses struct acpi_ivrs_device8b */ | ||
550 | ACPI_IVRS_TYPE_EXT_START = 71, /* Uses struct acpi_ivrs_device8b */ | ||
551 | ACPI_IVRS_TYPE_SPECIAL = 72 /* Uses struct acpi_ivrs_device8c */ | ||
552 | }; | ||
553 | |||
554 | /* Values for Data field above */ | ||
555 | |||
556 | #define ACPI_IVHD_INIT_PASS (1) | ||
557 | #define ACPI_IVHD_EINT_PASS (1<<1) | ||
558 | #define ACPI_IVHD_NMI_PASS (1<<2) | ||
559 | #define ACPI_IVHD_SYSTEM_MGMT (3<<4) | ||
560 | #define ACPI_IVHD_LINT0_PASS (1<<6) | ||
561 | #define ACPI_IVHD_LINT1_PASS (1<<7) | ||
562 | |||
563 | /* Types 0-4: 4-byte device entry */ | ||
564 | |||
565 | struct acpi_ivrs_device4 { | ||
566 | struct acpi_ivrs_de_header header; | ||
567 | }; | ||
568 | |||
569 | /* Types 66-67: 8-byte device entry */ | ||
570 | |||
571 | struct acpi_ivrs_device8a { | ||
572 | struct acpi_ivrs_de_header header; | ||
573 | u8 reserved1; | ||
574 | u16 used_id; | ||
575 | u8 reserved2; | ||
576 | }; | ||
577 | |||
578 | /* Types 70-71: 8-byte device entry */ | ||
579 | |||
580 | struct acpi_ivrs_device8b { | ||
581 | struct acpi_ivrs_de_header header; | ||
582 | u32 extended_data; | ||
583 | }; | ||
584 | |||
585 | /* Values for extended_data above */ | ||
586 | |||
587 | #define ACPI_IVHD_ATS_DISABLED (1<<31) | ||
588 | |||
589 | /* Type 72: 8-byte device entry */ | ||
590 | |||
591 | struct acpi_ivrs_device8c { | ||
592 | struct acpi_ivrs_de_header header; | ||
593 | u8 handle; | ||
594 | u16 used_id; | ||
595 | u8 variety; | ||
596 | }; | ||
597 | |||
598 | /* Values for Variety field above */ | ||
599 | |||
600 | #define ACPI_IVHD_IOAPIC 1 | ||
601 | #define ACPI_IVHD_HPET 2 | ||
602 | |||
603 | /* 0x20, 0x21, 0x22: I/O Virtualization Memory Definition Block (IVMD) */ | ||
604 | |||
605 | struct acpi_ivrs_memory { | ||
606 | struct acpi_ivrs_header header; | ||
607 | u16 aux_data; | ||
608 | u64 reserved; | ||
609 | u64 start_address; | ||
610 | u64 memory_length; | ||
611 | }; | ||
612 | |||
613 | /******************************************************************************* | ||
614 | * | ||
399 | * MCFG - PCI Memory Mapped Configuration table and sub-table | 615 | * MCFG - PCI Memory Mapped Configuration table and sub-table |
616 | * Version 1 | ||
617 | * | ||
618 | * Conforms to "PCI Firmware Specification", Revision 3.0, June 20, 2005 | ||
400 | * | 619 | * |
401 | ******************************************************************************/ | 620 | ******************************************************************************/ |
402 | 621 | ||
@@ -418,6 +637,10 @@ struct acpi_mcfg_allocation { | |||
418 | /******************************************************************************* | 637 | /******************************************************************************* |
419 | * | 638 | * |
420 | * SPCR - Serial Port Console Redirection table | 639 | * SPCR - Serial Port Console Redirection table |
640 | * Version 1 | ||
641 | * | ||
642 | * Conforms to "Serial Port Console Redirection Table", | ||
643 | * Version 1.00, January 11, 2002 | ||
421 | * | 644 | * |
422 | ******************************************************************************/ | 645 | ******************************************************************************/ |
423 | 646 | ||
@@ -445,16 +668,25 @@ struct acpi_table_spcr { | |||
445 | u32 reserved2; | 668 | u32 reserved2; |
446 | }; | 669 | }; |
447 | 670 | ||
671 | /* Masks for pci_flags field above */ | ||
672 | |||
673 | #define ACPI_SPCR_DO_NOT_DISABLE (1) | ||
674 | |||
448 | /******************************************************************************* | 675 | /******************************************************************************* |
449 | * | 676 | * |
450 | * SPMI - Server Platform Management Interface table | 677 | * SPMI - Server Platform Management Interface table |
678 | * Version 5 | ||
679 | * | ||
680 | * Conforms to "Intelligent Platform Management Interface Specification | ||
681 | * Second Generation v2.0", Document Revision 1.0, February 12, 2004 with | ||
682 | * June 12, 2009 markup. | ||
451 | * | 683 | * |
452 | ******************************************************************************/ | 684 | ******************************************************************************/ |
453 | 685 | ||
454 | struct acpi_table_spmi { | 686 | struct acpi_table_spmi { |
455 | struct acpi_table_header header; /* Common ACPI table header */ | 687 | struct acpi_table_header header; /* Common ACPI table header */ |
456 | u8 reserved; | ||
457 | u8 interface_type; | 688 | u8 interface_type; |
689 | u8 reserved; /* Must be 1 */ | ||
458 | u16 spec_revision; /* Version of IPMI */ | 690 | u16 spec_revision; /* Version of IPMI */ |
459 | u8 interrupt_type; | 691 | u8 interrupt_type; |
460 | u8 gpe_number; /* GPE assigned */ | 692 | u8 gpe_number; /* GPE assigned */ |
@@ -466,11 +698,27 @@ struct acpi_table_spmi { | |||
466 | u8 pci_bus; | 698 | u8 pci_bus; |
467 | u8 pci_device; | 699 | u8 pci_device; |
468 | u8 pci_function; | 700 | u8 pci_function; |
701 | u8 reserved2; | ||
702 | }; | ||
703 | |||
704 | /* Values for interface_type above */ | ||
705 | |||
706 | enum acpi_spmi_interface_types { | ||
707 | ACPI_SPMI_NOT_USED = 0, | ||
708 | ACPI_SPMI_KEYBOARD = 1, | ||
709 | ACPI_SPMI_SMI = 2, | ||
710 | ACPI_SPMI_BLOCK_TRANSFER = 3, | ||
711 | ACPI_SPMI_SMBUS = 4, | ||
712 | ACPI_SPMI_RESERVED = 5 /* 5 and above are reserved */ | ||
469 | }; | 713 | }; |
470 | 714 | ||
471 | /******************************************************************************* | 715 | /******************************************************************************* |
472 | * | 716 | * |
473 | * TCPA - Trusted Computing Platform Alliance table | 717 | * TCPA - Trusted Computing Platform Alliance table |
718 | * Version 1 | ||
719 | * | ||
720 | * Conforms to "TCG PC Specific Implementation Specification", | ||
721 | * Version 1.1, August 18, 2003 | ||
474 | * | 722 | * |
475 | ******************************************************************************/ | 723 | ******************************************************************************/ |
476 | 724 | ||
@@ -484,6 +732,10 @@ struct acpi_table_tcpa { | |||
484 | /******************************************************************************* | 732 | /******************************************************************************* |
485 | * | 733 | * |
486 | * UEFI - UEFI Boot optimization Table | 734 | * UEFI - UEFI Boot optimization Table |
735 | * Version 1 | ||
736 | * | ||
737 | * Conforms to "Unified Extensible Firmware Interface Specification", | ||
738 | * Version 2.3, May 8, 2009 | ||
487 | * | 739 | * |
488 | ******************************************************************************/ | 740 | ******************************************************************************/ |
489 | 741 | ||
@@ -491,12 +743,34 @@ struct acpi_table_uefi { | |||
491 | struct acpi_table_header header; /* Common ACPI table header */ | 743 | struct acpi_table_header header; /* Common ACPI table header */ |
492 | u8 identifier[16]; /* UUID identifier */ | 744 | u8 identifier[16]; /* UUID identifier */ |
493 | u16 data_offset; /* Offset of remaining data in table */ | 745 | u16 data_offset; /* Offset of remaining data in table */ |
494 | u8 data; | ||
495 | }; | 746 | }; |
496 | 747 | ||
497 | /******************************************************************************* | 748 | /******************************************************************************* |
498 | * | 749 | * |
750 | * WAET - Windows ACPI Emulated devices Table | ||
751 | * Version 1 | ||
752 | * | ||
753 | * Conforms to "Windows ACPI Emulated Devices Table", version 1.0, April 6, 2009 | ||
754 | * | ||
755 | ******************************************************************************/ | ||
756 | |||
757 | struct acpi_table_waet { | ||
758 | struct acpi_table_header header; /* Common ACPI table header */ | ||
759 | u32 flags; | ||
760 | }; | ||
761 | |||
762 | /* Masks for Flags field above */ | ||
763 | |||
764 | #define ACPI_WAET_RTC_NO_ACK (1) /* RTC requires no int acknowledge */ | ||
765 | #define ACPI_WAET_TIMER_ONE_READ (1<<1) /* PM timer requires only one read */ | ||
766 | |||
767 | /******************************************************************************* | ||
768 | * | ||
499 | * WDAT - Watchdog Action Table | 769 | * WDAT - Watchdog Action Table |
770 | * Version 1 | ||
771 | * | ||
772 | * Conforms to "Hardware Watchdog Timers Design Specification", | ||
773 | * Copyright 2006 Microsoft Corporation. | ||
500 | * | 774 | * |
501 | ******************************************************************************/ | 775 | ******************************************************************************/ |
502 | 776 | ||
@@ -516,10 +790,20 @@ struct acpi_table_wdat { | |||
516 | u32 entries; /* Number of watchdog entries that follow */ | 790 | u32 entries; /* Number of watchdog entries that follow */ |
517 | }; | 791 | }; |
518 | 792 | ||
793 | /* Masks for Flags field above */ | ||
794 | |||
795 | #define ACPI_WDAT_ENABLED (1) | ||
796 | #define ACPI_WDAT_STOPPED 0x80 | ||
797 | |||
519 | /* WDAT Instruction Entries (actions) */ | 798 | /* WDAT Instruction Entries (actions) */ |
520 | 799 | ||
521 | struct acpi_wdat_entry { | 800 | struct acpi_wdat_entry { |
522 | struct acpi_whea_header whea_header; /* Common header for WHEA tables */ | 801 | u8 action; |
802 | u8 instruction; | ||
803 | u16 reserved; | ||
804 | struct acpi_generic_address register_region; | ||
805 | u32 value; /* Value used with Read/Write register */ | ||
806 | u32 mask; /* Bitmask required for this register instruction */ | ||
523 | }; | 807 | }; |
524 | 808 | ||
525 | /* Values for Action field above */ | 809 | /* Values for Action field above */ |
@@ -556,28 +840,27 @@ enum acpi_wdat_instructions { | |||
556 | /******************************************************************************* | 840 | /******************************************************************************* |
557 | * | 841 | * |
558 | * WDRT - Watchdog Resource Table | 842 | * WDRT - Watchdog Resource Table |
843 | * Version 1 | ||
844 | * | ||
845 | * Conforms to "Watchdog Timer Hardware Requirements for Windows Server 2003", | ||
846 | * Version 1.01, August 28, 2006 | ||
559 | * | 847 | * |
560 | ******************************************************************************/ | 848 | ******************************************************************************/ |
561 | 849 | ||
562 | struct acpi_table_wdrt { | 850 | struct acpi_table_wdrt { |
563 | struct acpi_table_header header; /* Common ACPI table header */ | 851 | struct acpi_table_header header; /* Common ACPI table header */ |
564 | u32 header_length; /* Watchdog Header Length */ | 852 | struct acpi_generic_address control_register; |
565 | u8 pci_segment; /* PCI Segment number */ | 853 | struct acpi_generic_address count_register; |
854 | u16 pci_device_id; | ||
855 | u16 pci_vendor_id; | ||
566 | u8 pci_bus; /* PCI Bus number */ | 856 | u8 pci_bus; /* PCI Bus number */ |
567 | u8 pci_device; /* PCI Device number */ | 857 | u8 pci_device; /* PCI Device number */ |
568 | u8 pci_function; /* PCI Function number */ | 858 | u8 pci_function; /* PCI Function number */ |
569 | u32 timer_period; /* Period of one timer count (msec) */ | 859 | u8 pci_segment; /* PCI Segment number */ |
570 | u32 max_count; /* Maximum counter value supported */ | 860 | u16 max_count; /* Maximum counter value supported */ |
571 | u32 min_count; /* Minimum counter value */ | 861 | u8 units; |
572 | u8 flags; | ||
573 | u8 reserved[3]; | ||
574 | u32 entries; /* Number of watchdog entries that follow */ | ||
575 | }; | 862 | }; |
576 | 863 | ||
577 | /* Flags */ | ||
578 | |||
579 | #define ACPI_WDRT_TIMER_ENABLED (1) /* 00: Timer enabled */ | ||
580 | |||
581 | /* Reset to default packing */ | 864 | /* Reset to default packing */ |
582 | 865 | ||
583 | #pragma pack() | 866 | #pragma pack() |