diff options
Diffstat (limited to 'include/acpi/actbl1.h')
-rw-r--r-- | include/acpi/actbl1.h | 561 |
1 files changed, 559 insertions, 2 deletions
diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h index a1b1b2ee3e51..9af239bd1153 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2007, R. Byron Moore | 8 | * Copyright (C) 2000 - 2008, Intel Corp. |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -58,20 +58,28 @@ | |||
58 | * it more difficult to inadvertently type in the wrong signature. | 58 | * it more difficult to inadvertently type in the wrong signature. |
59 | */ | 59 | */ |
60 | #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ | 60 | #define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */ |
61 | #define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */ | ||
61 | #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ | 62 | #define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */ |
62 | #define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */ | 63 | #define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */ |
63 | #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ | 64 | #define ACPI_SIG_DBGP "DBGP" /* Debug Port table */ |
64 | #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ | 65 | #define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */ |
65 | #define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */ | 66 | #define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */ |
67 | #define ACPI_SIG_EINJ "EINJ" /* Error Injection table */ | ||
68 | #define ACPI_SIG_ERST "ERST" /* Error Record Serialization Table */ | ||
69 | #define ACPI_SIG_HEST "HEST" /* Hardware Error Source Table */ | ||
66 | #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ | 70 | #define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ |
71 | #define ACPI_SIG_IBFT "IBFT" /* i_sCSI Boot Firmware Table */ | ||
67 | #define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */ | 72 | #define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */ |
68 | #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ | 73 | #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ |
69 | #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ | 74 | #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ |
75 | #define ACPI_SIG_SLIC "SLIC" /* Software Licensing Description Table */ | ||
70 | #define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */ | 76 | #define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */ |
71 | #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ | 77 | #define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */ |
72 | #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ | 78 | #define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */ |
73 | #define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */ | 79 | #define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */ |
74 | #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ | 80 | #define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */ |
81 | #define ACPI_SIG_UEFI "UEFI" /* Uefi Boot Optimization Table */ | ||
82 | #define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */ | ||
75 | #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ | 83 | #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ |
76 | 84 | ||
77 | /* | 85 | /* |
@@ -86,13 +94,25 @@ | |||
86 | * portable, so do not use any other bitfield types. | 94 | * portable, so do not use any other bitfield types. |
87 | */ | 95 | */ |
88 | 96 | ||
89 | /* Common Sub-table header (used in MADT, SRAT, etc.) */ | 97 | /* Common Subtable header (used in MADT, SRAT, etc.) */ |
90 | 98 | ||
91 | struct acpi_subtable_header { | 99 | struct acpi_subtable_header { |
92 | u8 type; | 100 | u8 type; |
93 | u8 length; | 101 | u8 length; |
94 | }; | 102 | }; |
95 | 103 | ||
104 | /* Common Subtable header for WHEA tables (EINJ, ERST, WDAT) */ | ||
105 | |||
106 | struct acpi_whea_header { | ||
107 | u8 action; | ||
108 | u8 instruction; | ||
109 | u8 flags; | ||
110 | u8 reserved; | ||
111 | struct acpi_generic_address register_region; | ||
112 | u64 value; /* Value used with Read/Write register */ | ||
113 | u64 mask; /* Bitmask required for this register instruction */ | ||
114 | }; | ||
115 | |||
96 | /******************************************************************************* | 116 | /******************************************************************************* |
97 | * | 117 | * |
98 | * ASF - Alert Standard Format table (Signature "ASF!") | 118 | * ASF - Alert Standard Format table (Signature "ASF!") |
@@ -204,6 +224,35 @@ struct acpi_asf_address { | |||
204 | 224 | ||
205 | /******************************************************************************* | 225 | /******************************************************************************* |
206 | * | 226 | * |
227 | * BERT - Boot Error Record Table | ||
228 | * | ||
229 | ******************************************************************************/ | ||
230 | |||
231 | struct acpi_table_bert { | ||
232 | struct acpi_table_header header; /* Common ACPI table header */ | ||
233 | u32 region_length; /* Length of the boot error region */ | ||
234 | u64 address; /* Physical addresss of the error region */ | ||
235 | }; | ||
236 | |||
237 | /* Boot Error Region */ | ||
238 | |||
239 | struct acpi_bert_region { | ||
240 | u32 block_status; | ||
241 | u32 raw_data_offset; | ||
242 | u32 raw_data_length; | ||
243 | u32 data_length; | ||
244 | u32 error_severity; | ||
245 | }; | ||
246 | |||
247 | /* block_status Flags */ | ||
248 | |||
249 | #define ACPI_BERT_UNCORRECTABLE (1) | ||
250 | #define ACPI_BERT_CORRECTABLE (2) | ||
251 | #define ACPI_BERT_MULTIPLE_UNCORRECTABLE (4) | ||
252 | #define ACPI_BERT_MULTIPLE_CORRECTABLE (8) | ||
253 | |||
254 | /******************************************************************************* | ||
255 | * | ||
207 | * BOOT - Simple Boot Flag Table | 256 | * BOOT - Simple Boot Flag Table |
208 | * | 257 | * |
209 | ******************************************************************************/ | 258 | ******************************************************************************/ |
@@ -350,6 +399,352 @@ struct acpi_table_ecdt { | |||
350 | 399 | ||
351 | /******************************************************************************* | 400 | /******************************************************************************* |
352 | * | 401 | * |
402 | * EINJ - Error Injection Table | ||
403 | * | ||
404 | ******************************************************************************/ | ||
405 | |||
406 | struct acpi_table_einj { | ||
407 | struct acpi_table_header header; /* Common ACPI table header */ | ||
408 | u32 header_length; | ||
409 | u32 reserved; | ||
410 | u32 entries; | ||
411 | }; | ||
412 | |||
413 | /* EINJ Injection Instruction Entries (actions) */ | ||
414 | |||
415 | struct acpi_einj_entry { | ||
416 | struct acpi_whea_header whea_header; /* Common header for WHEA tables */ | ||
417 | }; | ||
418 | |||
419 | /* Values for Action field above */ | ||
420 | |||
421 | enum acpi_einj_actions { | ||
422 | ACPI_EINJ_BEGIN_OPERATION = 0, | ||
423 | ACPI_EINJ_GET_TRIGGER_TABLE = 1, | ||
424 | ACPI_EINJ_SET_ERROR_TYPE = 2, | ||
425 | ACPI_EINJ_GET_ERROR_TYPE = 3, | ||
426 | ACPI_EINJ_END_OPERATION = 4, | ||
427 | ACPI_EINJ_EXECUTE_OPERATION = 5, | ||
428 | ACPI_EINJ_CHECK_BUSY_STATUS = 6, | ||
429 | ACPI_EINJ_GET_COMMAND_STATUS = 7, | ||
430 | ACPI_EINJ_ACTION_RESERVED = 8, /* 8 and greater are reserved */ | ||
431 | ACPI_EINJ_TRIGGER_ERROR = 0xFF /* Except for this value */ | ||
432 | }; | ||
433 | |||
434 | /* Values for Instruction field above */ | ||
435 | |||
436 | enum acpi_einj_instructions { | ||
437 | ACPI_EINJ_READ_REGISTER = 0, | ||
438 | ACPI_EINJ_READ_REGISTER_VALUE = 1, | ||
439 | ACPI_EINJ_WRITE_REGISTER = 2, | ||
440 | ACPI_EINJ_WRITE_REGISTER_VALUE = 3, | ||
441 | ACPI_EINJ_NOOP = 4, | ||
442 | ACPI_EINJ_INSTRUCTION_RESERVED = 5 /* 5 and greater are reserved */ | ||
443 | }; | ||
444 | |||
445 | /* EINJ Trigger Error Action Table */ | ||
446 | |||
447 | struct acpi_einj_trigger { | ||
448 | u32 header_size; | ||
449 | u32 revision; | ||
450 | u32 table_size; | ||
451 | u32 entry_count; | ||
452 | }; | ||
453 | |||
454 | /******************************************************************************* | ||
455 | * | ||
456 | * ERST - Error Record Serialization Table | ||
457 | * | ||
458 | ******************************************************************************/ | ||
459 | |||
460 | struct acpi_table_erst { | ||
461 | struct acpi_table_header header; /* Common ACPI table header */ | ||
462 | u32 header_length; | ||
463 | u32 reserved; | ||
464 | u32 entries; | ||
465 | }; | ||
466 | |||
467 | /* ERST Serialization Entries (actions) */ | ||
468 | |||
469 | struct acpi_erst_entry { | ||
470 | struct acpi_whea_header whea_header; /* Common header for WHEA tables */ | ||
471 | }; | ||
472 | |||
473 | /* Values for Action field above */ | ||
474 | |||
475 | enum acpi_erst_actions { | ||
476 | ACPI_ERST_BEGIN_WRITE_OPERATION = 0, | ||
477 | ACPI_ERST_BEGIN_READ_OPERATION = 1, | ||
478 | ACPI_ERST_BETGIN_CLEAR_OPERATION = 2, | ||
479 | ACPI_ERST_END_OPERATION = 3, | ||
480 | ACPI_ERST_SET_RECORD_OFFSET = 4, | ||
481 | ACPI_ERST_EXECUTE_OPERATION = 5, | ||
482 | ACPI_ERST_CHECK_BUSY_STATUS = 6, | ||
483 | ACPI_ERST_GET_COMMAND_STATUS = 7, | ||
484 | ACPI_ERST_GET_RECORD_IDENTIFIER = 8, | ||
485 | ACPI_ERST_SET_RECORD_IDENTIFIER = 9, | ||
486 | ACPI_ERST_GET_RECORD_COUNT = 10, | ||
487 | ACPI_ERST_BEGIN_DUMMY_WRIITE = 11, | ||
488 | ACPI_ERST_NOT_USED = 12, | ||
489 | ACPI_ERST_GET_ERROR_RANGE = 13, | ||
490 | ACPI_ERST_GET_ERROR_LENGTH = 14, | ||
491 | ACPI_ERST_GET_ERROR_ATTRIBUTES = 15, | ||
492 | ACPI_ERST_ACTION_RESERVED = 16 /* 16 and greater are reserved */ | ||
493 | }; | ||
494 | |||
495 | /* Values for Instruction field above */ | ||
496 | |||
497 | enum acpi_erst_instructions { | ||
498 | ACPI_ERST_READ_REGISTER = 0, | ||
499 | ACPI_ERST_READ_REGISTER_VALUE = 1, | ||
500 | ACPI_ERST_WRITE_REGISTER = 2, | ||
501 | ACPI_ERST_WRITE_REGISTER_VALUE = 3, | ||
502 | ACPI_ERST_NOOP = 4, | ||
503 | ACPI_ERST_LOAD_VAR1 = 5, | ||
504 | ACPI_ERST_LOAD_VAR2 = 6, | ||
505 | ACPI_ERST_STORE_VAR1 = 7, | ||
506 | ACPI_ERST_ADD = 8, | ||
507 | ACPI_ERST_SUBTRACT = 9, | ||
508 | ACPI_ERST_ADD_VALUE = 10, | ||
509 | ACPI_ERST_SUBTRACT_VALUE = 11, | ||
510 | ACPI_ERST_STALL = 12, | ||
511 | ACPI_ERST_STALL_WHILE_TRUE = 13, | ||
512 | ACPI_ERST_SKIP_NEXT_IF_TRUE = 14, | ||
513 | ACPI_ERST_GOTO = 15, | ||
514 | ACPI_ERST_SET_SRC_ADDRESS_BASE = 16, | ||
515 | ACPI_ERST_SET_DST_ADDRESS_BASE = 17, | ||
516 | ACPI_ERST_MOVE_DATA = 18, | ||
517 | ACPI_ERST_INSTRUCTION_RESERVED = 19 /* 19 and greater are reserved */ | ||
518 | }; | ||
519 | |||
520 | /******************************************************************************* | ||
521 | * | ||
522 | * HEST - Hardware Error Source Table | ||
523 | * | ||
524 | ******************************************************************************/ | ||
525 | |||
526 | struct acpi_table_hest { | ||
527 | struct acpi_table_header header; /* Common ACPI table header */ | ||
528 | u32 error_source_count; | ||
529 | }; | ||
530 | |||
531 | /* HEST subtable header */ | ||
532 | |||
533 | struct acpi_hest_header { | ||
534 | u16 type; | ||
535 | }; | ||
536 | |||
537 | /* Values for Type field above for subtables */ | ||
538 | |||
539 | enum acpi_hest_types { | ||
540 | ACPI_HEST_TYPE_XPF_MACHINE_CHECK = 0, | ||
541 | ACPI_HEST_TYPE_XPF_CORRECTED_MACHINE_CHECK = 1, | ||
542 | ACPI_HEST_TYPE_XPF_UNUSED = 2, | ||
543 | ACPI_HEST_TYPE_XPF_NON_MASKABLE_INTERRUPT = 3, | ||
544 | ACPI_HEST_TYPE_IPF_CORRECTED_MACHINE_CHECK = 4, | ||
545 | ACPI_HEST_TYPE_IPF_CORRECTED_PLATFORM_ERROR = 5, | ||
546 | ACPI_HEST_TYPE_AER_ROOT_PORT = 6, | ||
547 | ACPI_HEST_TYPE_AER_ENDPOINT = 7, | ||
548 | ACPI_HEST_TYPE_AER_BRIDGE = 8, | ||
549 | ACPI_HEST_TYPE_GENERIC_HARDWARE_ERROR_SOURCE = 9, | ||
550 | ACPI_HEST_TYPE_RESERVED = 10 /* 10 and greater are reserved */ | ||
551 | }; | ||
552 | |||
553 | /* | ||
554 | * HEST Sub-subtables | ||
555 | */ | ||
556 | |||
557 | /* XPF Machine Check Error Bank */ | ||
558 | |||
559 | struct acpi_hest_xpf_error_bank { | ||
560 | u8 bank_number; | ||
561 | u8 clear_status_on_init; | ||
562 | u8 status_format; | ||
563 | u8 config_write_enable; | ||
564 | u32 control_register; | ||
565 | u64 control_init_data; | ||
566 | u32 status_register; | ||
567 | u32 address_register; | ||
568 | u32 misc_register; | ||
569 | }; | ||
570 | |||
571 | /* Generic Error Status */ | ||
572 | |||
573 | struct acpi_hest_generic_status { | ||
574 | u32 block_status; | ||
575 | u32 raw_data_offset; | ||
576 | u32 raw_data_length; | ||
577 | u32 data_length; | ||
578 | u32 error_severity; | ||
579 | }; | ||
580 | |||
581 | /* Generic Error Data */ | ||
582 | |||
583 | struct acpi_hest_generic_data { | ||
584 | u8 section_type[16]; | ||
585 | u32 error_severity; | ||
586 | u16 revision; | ||
587 | u8 validation_bits; | ||
588 | u8 flags; | ||
589 | u32 error_data_length; | ||
590 | u8 fru_id[16]; | ||
591 | u8 fru_text[20]; | ||
592 | }; | ||
593 | |||
594 | /* Common HEST structure for PCI/AER types below (6,7,8) */ | ||
595 | |||
596 | struct acpi_hest_aer_common { | ||
597 | u16 source_id; | ||
598 | u16 config_write_enable; | ||
599 | u8 flags; | ||
600 | u8 enabled; | ||
601 | u32 records_to_pre_allocate; | ||
602 | u32 max_sections_per_record; | ||
603 | u32 bus; | ||
604 | u16 device; | ||
605 | u16 function; | ||
606 | u16 device_control; | ||
607 | u16 reserved; | ||
608 | u32 uncorrectable_error_mask; | ||
609 | u32 uncorrectable_error_severity; | ||
610 | u32 correctable_error_mask; | ||
611 | u32 advanced_error_cababilities; | ||
612 | }; | ||
613 | |||
614 | /* Hardware Error Notification */ | ||
615 | |||
616 | struct acpi_hest_notify { | ||
617 | u8 type; | ||
618 | u8 length; | ||
619 | u16 config_write_enable; | ||
620 | u32 poll_interval; | ||
621 | u32 vector; | ||
622 | u32 polling_threshold_value; | ||
623 | u32 polling_threshold_window; | ||
624 | u32 error_threshold_value; | ||
625 | u32 error_threshold_window; | ||
626 | }; | ||
627 | |||
628 | /* Values for Notify Type field above */ | ||
629 | |||
630 | enum acpi_hest_notify_types { | ||
631 | ACPI_HEST_NOTIFY_POLLED = 0, | ||
632 | ACPI_HEST_NOTIFY_EXTERNAL = 1, | ||
633 | ACPI_HEST_NOTIFY_LOCAL = 2, | ||
634 | ACPI_HEST_NOTIFY_SCI = 3, | ||
635 | ACPI_HEST_NOTIFY_NMI = 4, | ||
636 | ACPI_HEST_NOTIFY_RESERVED = 5 /* 5 and greater are reserved */ | ||
637 | }; | ||
638 | |||
639 | /* | ||
640 | * HEST subtables | ||
641 | * | ||
642 | * From WHEA Design Document, 16 May 2007. | ||
643 | * Note: There is no subtable type 2 in this version of the document, | ||
644 | * and there are two different subtable type 3s. | ||
645 | */ | ||
646 | |||
647 | /* 0: XPF Machine Check Exception */ | ||
648 | |||
649 | struct acpi_hest_xpf_machine_check { | ||
650 | struct acpi_hest_header header; | ||
651 | u16 source_id; | ||
652 | u16 config_write_enable; | ||
653 | u8 flags; | ||
654 | u8 reserved1; | ||
655 | u32 records_to_pre_allocate; | ||
656 | u32 max_sections_per_record; | ||
657 | u64 global_capability_data; | ||
658 | u64 global_control_data; | ||
659 | u8 num_hardware_banks; | ||
660 | u8 reserved2[7]; | ||
661 | }; | ||
662 | |||
663 | /* 1: XPF Corrected Machine Check */ | ||
664 | |||
665 | struct acpi_table_hest_xpf_corrected { | ||
666 | struct acpi_hest_header header; | ||
667 | u16 source_id; | ||
668 | u16 config_write_enable; | ||
669 | u8 flags; | ||
670 | u8 enabled; | ||
671 | u32 records_to_pre_allocate; | ||
672 | u32 max_sections_per_record; | ||
673 | struct acpi_hest_notify notify; | ||
674 | u8 num_hardware_banks; | ||
675 | u8 reserved[3]; | ||
676 | }; | ||
677 | |||
678 | /* 3: XPF Non-Maskable Interrupt */ | ||
679 | |||
680 | struct acpi_hest_xpf_nmi { | ||
681 | struct acpi_hest_header header; | ||
682 | u16 source_id; | ||
683 | u32 reserved; | ||
684 | u32 records_to_pre_allocate; | ||
685 | u32 max_sections_per_record; | ||
686 | u32 max_raw_data_length; | ||
687 | }; | ||
688 | |||
689 | /* 4: IPF Corrected Machine Check */ | ||
690 | |||
691 | struct acpi_hest_ipf_corrected { | ||
692 | struct acpi_hest_header header; | ||
693 | u8 enabled; | ||
694 | u8 reserved; | ||
695 | }; | ||
696 | |||
697 | /* 5: IPF Corrected Platform Error */ | ||
698 | |||
699 | struct acpi_hest_ipf_corrected_platform { | ||
700 | struct acpi_hest_header header; | ||
701 | u8 enabled; | ||
702 | u8 reserved; | ||
703 | }; | ||
704 | |||
705 | /* 6: PCI Express Root Port AER */ | ||
706 | |||
707 | struct acpi_hest_aer_root { | ||
708 | struct acpi_hest_header header; | ||
709 | struct acpi_hest_aer_common aer; | ||
710 | u32 root_error_command; | ||
711 | }; | ||
712 | |||
713 | /* 7: PCI Express AER (AER Endpoint) */ | ||
714 | |||
715 | struct acpi_hest_aer { | ||
716 | struct acpi_hest_header header; | ||
717 | struct acpi_hest_aer_common aer; | ||
718 | }; | ||
719 | |||
720 | /* 8: PCI Express/PCI-X Bridge AER */ | ||
721 | |||
722 | struct acpi_hest_aer_bridge { | ||
723 | struct acpi_hest_header header; | ||
724 | struct acpi_hest_aer_common aer; | ||
725 | u32 secondary_uncorrectable_error_mask; | ||
726 | u32 secondary_uncorrectable_error_severity; | ||
727 | u32 secondary_advanced_capabilities; | ||
728 | }; | ||
729 | |||
730 | /* 9: Generic Hardware Error Source */ | ||
731 | |||
732 | struct acpi_hest_generic { | ||
733 | struct acpi_hest_header header; | ||
734 | u16 source_id; | ||
735 | u16 related_source_id; | ||
736 | u8 config_write_enable; | ||
737 | u8 enabled; | ||
738 | u32 records_to_pre_allocate; | ||
739 | u32 max_sections_per_record; | ||
740 | u32 max_raw_data_length; | ||
741 | struct acpi_generic_address error_status_address; | ||
742 | struct acpi_hest_notify notify; | ||
743 | u32 error_status_block_length; | ||
744 | }; | ||
745 | |||
746 | /******************************************************************************* | ||
747 | * | ||
353 | * HPET - High Precision Event Timer table | 748 | * HPET - High Precision Event Timer table |
354 | * | 749 | * |
355 | ******************************************************************************/ | 750 | ******************************************************************************/ |
@@ -373,6 +768,96 @@ struct acpi_table_hpet { | |||
373 | 768 | ||
374 | /******************************************************************************* | 769 | /******************************************************************************* |
375 | * | 770 | * |
771 | * IBFT - Boot Firmware Table | ||
772 | * | ||
773 | ******************************************************************************/ | ||
774 | |||
775 | struct acpi_table_ibft { | ||
776 | struct acpi_table_header header; /* Common ACPI table header */ | ||
777 | u8 reserved[12]; | ||
778 | }; | ||
779 | |||
780 | /* IBFT common subtable header */ | ||
781 | |||
782 | struct acpi_ibft_header { | ||
783 | u8 type; | ||
784 | u8 version; | ||
785 | u16 length; | ||
786 | u8 index; | ||
787 | u8 flags; | ||
788 | }; | ||
789 | |||
790 | /* Values for Type field above */ | ||
791 | |||
792 | enum acpi_ibft_type { | ||
793 | ACPI_IBFT_TYPE_NOT_USED = 0, | ||
794 | ACPI_IBFT_TYPE_CONTROL = 1, | ||
795 | ACPI_IBFT_TYPE_INITIATOR = 2, | ||
796 | ACPI_IBFT_TYPE_NIC = 3, | ||
797 | ACPI_IBFT_TYPE_TARGET = 4, | ||
798 | ACPI_IBFT_TYPE_EXTENSIONS = 5, | ||
799 | ACPI_IBFT_TYPE_RESERVED = 6 /* 6 and greater are reserved */ | ||
800 | }; | ||
801 | |||
802 | /* IBFT subtables */ | ||
803 | |||
804 | struct acpi_ibft_control { | ||
805 | struct acpi_ibft_header header; | ||
806 | u16 extensions; | ||
807 | u16 initiator_offset; | ||
808 | u16 nic0_offset; | ||
809 | u16 target0_offset; | ||
810 | u16 nic1_offset; | ||
811 | u16 target1_offset; | ||
812 | }; | ||
813 | |||
814 | struct acpi_ibft_initiator { | ||
815 | struct acpi_ibft_header header; | ||
816 | u8 sns_server[16]; | ||
817 | u8 slp_server[16]; | ||
818 | u8 primary_server[16]; | ||
819 | u8 secondary_server[16]; | ||
820 | u16 name_length; | ||
821 | u16 name_offset; | ||
822 | }; | ||
823 | |||
824 | struct acpi_ibft_nic { | ||
825 | struct acpi_ibft_header header; | ||
826 | u8 ip_address[16]; | ||
827 | u8 subnet_mask_prefix; | ||
828 | u8 origin; | ||
829 | u8 gateway[16]; | ||
830 | u8 primary_dns[16]; | ||
831 | u8 secondary_dns[16]; | ||
832 | u8 dhcp[16]; | ||
833 | u16 vlan; | ||
834 | u8 mac_address[6]; | ||
835 | u16 pci_address; | ||
836 | u16 name_length; | ||
837 | u16 name_offset; | ||
838 | }; | ||
839 | |||
840 | struct acpi_ibft_target { | ||
841 | struct acpi_ibft_header header; | ||
842 | u8 target_ip_address[16]; | ||
843 | u16 target_ip_socket; | ||
844 | u8 target_boot_lun[8]; | ||
845 | u8 chap_type; | ||
846 | u8 nic_association; | ||
847 | u16 target_name_length; | ||
848 | u16 target_name_offset; | ||
849 | u16 chap_name_length; | ||
850 | u16 chap_name_offset; | ||
851 | u16 chap_secret_length; | ||
852 | u16 chap_secret_offset; | ||
853 | u16 reverse_chap_name_length; | ||
854 | u16 reverse_chap_name_offset; | ||
855 | u16 reverse_chap_secret_length; | ||
856 | u16 reverse_chap_secret_offset; | ||
857 | }; | ||
858 | |||
859 | /******************************************************************************* | ||
860 | * | ||
376 | * MADT - Multiple APIC Description Table | 861 | * MADT - Multiple APIC Description Table |
377 | * | 862 | * |
378 | ******************************************************************************/ | 863 | ******************************************************************************/ |
@@ -697,6 +1182,78 @@ struct acpi_table_tcpa { | |||
697 | 1182 | ||
698 | /******************************************************************************* | 1183 | /******************************************************************************* |
699 | * | 1184 | * |
1185 | * UEFI - UEFI Boot optimization Table | ||
1186 | * | ||
1187 | ******************************************************************************/ | ||
1188 | |||
1189 | struct acpi_table_uefi { | ||
1190 | struct acpi_table_header header; /* Common ACPI table header */ | ||
1191 | u8 identifier[16]; /* UUID identifier */ | ||
1192 | u16 data_offset; /* Offset of remaining data in table */ | ||
1193 | u8 data; | ||
1194 | }; | ||
1195 | |||
1196 | /******************************************************************************* | ||
1197 | * | ||
1198 | * WDAT - Watchdog Action Table | ||
1199 | * | ||
1200 | ******************************************************************************/ | ||
1201 | |||
1202 | struct acpi_table_wdat { | ||
1203 | struct acpi_table_header header; /* Common ACPI table header */ | ||
1204 | u32 header_length; /* Watchdog Header Length */ | ||
1205 | u16 pci_segment; /* PCI Segment number */ | ||
1206 | u8 pci_bus; /* PCI Bus number */ | ||
1207 | u8 pci_device; /* PCI Device number */ | ||
1208 | u8 pci_function; /* PCI Function number */ | ||
1209 | u8 reserved[3]; | ||
1210 | u32 timer_period; /* Period of one timer count (msec) */ | ||
1211 | u32 max_count; /* Maximum counter value supported */ | ||
1212 | u32 min_count; /* Minimum counter value */ | ||
1213 | u8 flags; | ||
1214 | u8 reserved2[3]; | ||
1215 | u32 entries; /* Number of watchdog entries that follow */ | ||
1216 | }; | ||
1217 | |||
1218 | /* WDAT Instruction Entries (actions) */ | ||
1219 | |||
1220 | struct acpi_wdat_entry { | ||
1221 | struct acpi_whea_header whea_header; /* Common header for WHEA tables */ | ||
1222 | }; | ||
1223 | |||
1224 | /* Values for Action field above */ | ||
1225 | |||
1226 | enum acpi_wdat_actions { | ||
1227 | ACPI_WDAT_RESET = 1, | ||
1228 | ACPI_WDAT_GET_CURRENT_COUNTDOWN = 4, | ||
1229 | ACPI_WDAT_GET_COUNTDOWN = 5, | ||
1230 | ACPI_WDAT_SET_COUNTDOWN = 6, | ||
1231 | ACPI_WDAT_GET_RUNNING_STATE = 8, | ||
1232 | ACPI_WDAT_SET_RUNNING_STATE = 9, | ||
1233 | ACPI_WDAT_GET_STOPPED_STATE = 10, | ||
1234 | ACPI_WDAT_SET_STOPPED_STATE = 11, | ||
1235 | ACPI_WDAT_GET_REBOOT = 16, | ||
1236 | ACPI_WDAT_SET_REBOOT = 17, | ||
1237 | ACPI_WDAT_GET_SHUTDOWN = 18, | ||
1238 | ACPI_WDAT_SET_SHUTDOWN = 19, | ||
1239 | ACPI_WDAT_GET_STATUS = 32, | ||
1240 | ACPI_WDAT_SET_STATUS = 33, | ||
1241 | ACPI_WDAT_ACTION_RESERVED = 34 /* 34 and greater are reserved */ | ||
1242 | }; | ||
1243 | |||
1244 | /* Values for Instruction field above */ | ||
1245 | |||
1246 | enum acpi_wdat_instructions { | ||
1247 | ACPI_WDAT_READ_VALUE = 0, | ||
1248 | ACPI_WDAT_READ_COUNTDOWN = 1, | ||
1249 | ACPI_WDAT_WRITE_VALUE = 2, | ||
1250 | ACPI_WDAT_WRITE_COUNTDOWN = 3, | ||
1251 | ACPI_WDAT_INSTRUCTION_RESERVED = 4, /* 4 and greater are reserved */ | ||
1252 | ACPI_WDAT_PRESERVE_REGISTER = 0x80 /* Except for this value */ | ||
1253 | }; | ||
1254 | |||
1255 | /******************************************************************************* | ||
1256 | * | ||
700 | * WDRT - Watchdog Resource Table | 1257 | * WDRT - Watchdog Resource Table |
701 | * | 1258 | * |
702 | ******************************************************************************/ | 1259 | ******************************************************************************/ |