]> 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 01fda4b2c3d089885da59b12bd4381f6dfa21121..521d8a5b2ebd282228ca2d011f915e708f330b72 100644 (file)
@@ -1,15 +1,9 @@
-/** @file   \r
-  ACPI 6.0 definitions from the ACPI Specification Revision 6.0 April, 2015.\r
+/** @file\r
+  ACPI 6.0 definitions from the ACPI Specification Revision 6.0 Errata A January, 2016.\r
 \r
-  Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
   (C) Copyright 2015-2016 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
+  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
@@ -2020,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
@@ -2061,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
@@ -2072,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
@@ -2079,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
@@ -2252,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