]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/Acpi60.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / Acpi60.h
index f0e4151fe4b0473c0e7533fef8a6e9ffb838712e..521d8a5b2ebd282228ca2d011f915e708f330b72 100644 (file)
@@ -1,15 +1,9 @@
-/** @file   \r
-  ACPI 6.0 definitions from the ACPI Specification Revision 6.0 April, 2015.\r
-\r
-  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
- (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>  \r
-  This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+/** @file\r
+  ACPI 6.0 definitions from the ACPI Specification Revision 6.0 Errata A January, 2016.\r
+\r
+  Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 **/\r
 \r
 #ifndef _ACPI_6_0_H_\r
@@ -88,7 +82,7 @@ typedef struct {
 \r
 //\r
 // Root System Description Table\r
-// No definition needed as it is a common description table header, the same with \r
+// No definition needed as it is a common description table header, the same with\r
 // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.\r
 //\r
 \r
@@ -99,7 +93,7 @@ typedef struct {
 \r
 //\r
 // Extended System Description Table\r
-// No definition needed as it is a common description table header, the same with \r
+// No definition needed as it is a common description table header, the same with\r
 // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.\r
 //\r
 \r
@@ -290,9 +284,9 @@ typedef struct {
 } EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;\r
 \r
 ///\r
-/// MADT Revision (as defined in ACPI 6.0 spec.)\r
+/// MADT Revision (as defined in ACPI 6.0 Errata A spec.)\r
 ///\r
-#define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x03\r
+#define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x04\r
 \r
 ///\r
 /// Multiple APIC Flags\r
@@ -1393,14 +1387,14 @@ typedef struct {
 //\r
 #define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_CONTROL_REGION_FOR_MANAGEMENT      BIT0\r
 #define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_PROXIMITY_DOMAIN_VALID             BIT1\r
-#define EFI_ACPI_6_0_NFIT_GUID_VOLATILE_MEMORY_REGION                             { 0x7305944F, 0xFDDA, 0x44E3, 0xB1, 0x6C, 0x3F, 0x22, 0xD2, 0x52, 0xE5, 0xD0 }\r
-#define EFI_ACPI_6_0_NFIT_GUID_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_REGION          { 0x66F0D379, 0xB4F3, 0x4074, 0xAC, 0x43, 0x0D, 0x33, 0x18, 0xB7, 0x8C, 0xDB }\r
-#define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_CONTROL_REGION                              { 0x92F701F6, 0x13B4, 0x405D, 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C }\r
-#define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_BLOCK_DATA_WINDOW_REGION                    { 0x91AF0530, 0x5D86, 0x470E, 0xA6, 0xB0, 0x0A, 0x2D, 0xB9, 0x40, 0x82, 0x49 }\r
-#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE   { 0x77AB535A, 0x45FC, 0x624B, 0x55, 0x60, 0xF7, 0xB2, 0x81, 0xD1, 0xF9, 0x6E }\r
-#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE     { 0x3D5ABD30, 0x4175, 0x87CE, 0x6D, 0x64, 0xD2, 0xAD, 0xE5, 0x23, 0xC4, 0xBB }\r
-#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT { 0x5CEA02C9, 0x4D07, 0x69D3, 0x26, 0x9F ,0x44, 0x96, 0xFB, 0xE0, 0x96, 0xF9 }\r
-#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT   { 0x08018188, 0x42CD, 0xBB48, 0x10, 0x0F, 0x53, 0x87, 0xD5, 0x3D, 0xED, 0x3D }\r
+#define EFI_ACPI_6_0_NFIT_GUID_VOLATILE_MEMORY_REGION                             { 0x7305944F, 0xFDDA, 0x44E3, { 0xB1, 0x6C, 0x3F, 0x22, 0xD2, 0x52, 0xE5, 0xD0 }}\r
+#define EFI_ACPI_6_0_NFIT_GUID_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_REGION          { 0x66F0D379, 0xB4F3, 0x4074, { 0xAC, 0x43, 0x0D, 0x33, 0x18, 0xB7, 0x8C, 0xDB }}\r
+#define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_CONTROL_REGION                              { 0x92F701F6, 0x13B4, 0x405D, { 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C }}\r
+#define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_BLOCK_DATA_WINDOW_REGION                    { 0x91AF0530, 0x5D86, 0x470E, { 0xA6, 0xB0, 0x0A, 0x2D, 0xB9, 0x40, 0x82, 0x49 }}\r
+#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE   { 0x77AB535A, 0x45FC, 0x624B, { 0x55, 0x60, 0xF7, 0xB2, 0x81, 0xD1, 0xF9, 0x6E }}\r
+#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE     { 0x3D5ABD30, 0x4175, 0x87CE, { 0x6D, 0x64, 0xD2, 0xAD, 0xE5, 0x23, 0xC4, 0xBB }}\r
+#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT { 0x5CEA02C9, 0x4D07, 0x69D3, { 0x26, 0x9F ,0x44, 0x96, 0xFB, 0xE0, 0x96, 0xF9 }}\r
+#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT   { 0x08018188, 0x42CD, 0xBB48, { 0x10, 0x0F, 0x53, 0x87, 0xD5, 0x3D, 0xED, 0x3D }}\r
 typedef struct {\r
   UINT16                                      Type;\r
   UINT16                                      Length;\r
@@ -1666,6 +1660,9 @@ typedef struct {
 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT       0x02\r
 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_SCI                   0x03\r
 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_NMI                   0x04\r
+#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CMCI                  0x05\r
+#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_MCE                   0x06\r
+#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_GPIO_SIGNAL           0x07\r
 \r
 ///\r
 /// Hardware Error Notification Configuration Write Enable Structure Definition\r
@@ -2017,7 +2014,9 @@ typedef struct {
 //\r
 // PCCT Subspace type\r
 //\r
-#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_GENERIC  0x00\r
+#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_GENERIC                         0x00\r
+#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS     0x01\r
+#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS     0x02\r
 \r
 ///\r
 /// PCC Subspace Structure Header\r
@@ -2058,7 +2057,7 @@ typedef struct {
   UINT8                                    CommandComplete:1;\r
   UINT8                                    SciDoorbell:1;\r
   UINT8                                    Error:1;\r
-  UINT8                                    PlatformNotification:1;  \r
+  UINT8                                    PlatformNotification:1;\r
   UINT8                                    Reserved:4;\r
   UINT8                                    Reserved1;\r
 } EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS;\r
@@ -2069,6 +2068,50 @@ typedef struct {
   EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS     Status;\r
 } EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER;\r
 \r
+#define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_POLARITY    BIT0\r
+#define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_MODE        BIT1\r
+\r
+///\r
+/// Type 1 HW-Reduced Communications Subspace Structure\r
+///\r
+typedef struct {\r
+  UINT8                                    Type;\r
+  UINT8                                    Length;\r
+  UINT32                                   DoorbellInterrupt;\r
+  UINT8                                    DoorbellInterruptFlags;\r
+  UINT8                                    Reserved;\r
+  UINT64                                   BaseAddress;\r
+  UINT64                                   AddressLength;\r
+  EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE   DoorbellRegister;\r
+  UINT64                                   DoorbellPreserve;\r
+  UINT64                                   DoorbellWrite;\r
+  UINT32                                   NominalLatency;\r
+  UINT32                                   MaximumPeriodicAccessRate;\r
+  UINT16                                   MinimumRequestTurnaroundTime;\r
+} EFI_ACPI_6_0_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS;\r
+\r
+///\r
+/// Type 2 HW-Reduced Communications Subspace Structure\r
+///\r
+typedef struct {\r
+  UINT8                                    Type;\r
+  UINT8                                    Length;\r
+  UINT32                                   DoorbellInterrupt;\r
+  UINT8                                    DoorbellInterruptFlags;\r
+  UINT8                                    Reserved;\r
+  UINT64                                   BaseAddress;\r
+  UINT64                                   AddressLength;\r
+  EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE   DoorbellRegister;\r
+  UINT64                                   DoorbellPreserve;\r
+  UINT64                                   DoorbellWrite;\r
+  UINT32                                   NominalLatency;\r
+  UINT32                                   MaximumPeriodicAccessRate;\r
+  UINT16                                   MinimumRequestTurnaroundTime;\r
+  EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE   DoorbellAckRegister;\r
+  UINT64                                   DoorbellAckPreserve;\r
+  UINT64                                   DoorbellAckWrite;\r
+} EFI_ACPI_6_0_PCCT_SUBSPACE_2_HW_REDUCED_COMMUNICATIONS;\r
+\r
 //\r
 // Known table signatures\r
 //\r
@@ -2076,7 +2119,7 @@ typedef struct {
 ///\r
 /// "RSD PTR " Root System Description Pointer\r
 ///\r
-#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE  SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') \r
+#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE  SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')\r
 \r
 ///\r
 /// "APIC" Multiple APIC Description Table\r
@@ -2249,9 +2292,9 @@ typedef struct {
 #define EFI_ACPI_6_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE  SIGNATURE_32('i', 'B', 'F', 'T')\r
 \r
 ///\r
-/// "IORT" Interrupt Source Override\r
+/// "IORT" I/O Remapping Table\r
 ///\r
-#define EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE_SIGNATURE  SIGNATURE_32('I', 'O', 'R', 'T')\r
+#define EFI_ACPI_6_0_IO_REMAPPING_TABLE_SIGNATURE  SIGNATURE_32('I', 'O', 'R', 'T')\r
 \r
 ///\r
 /// "IVRS" I/O Virtualization Reporting Structure\r