Date: Thu, 4 Jun 2020 19:21:41 +0000 (UTC) From: Mitchell Horne <mhorne@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r361802 - in head/sys/contrib/edk2: . Include Include/Guid Include/IndustryStandard Include/Library Include/Protocol Include/Uefi Message-ID: <202006041921.054JLfBw026270@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mhorne Date: Thu Jun 4 19:21:41 2020 New Revision: 361802 URL: https://svnweb.freebsd.org/changeset/base/361802 Log: Update edk2 headers to stable202005 We use these to compile libefivar. The particular motivation for this update is the inclusion of the RISC-V machine definitions that allow us to build the library on the platform. This support could easily have been submitted as a small local diff, but the timing of the release coincided with this work, and it has been over 3 years since these sources were initially imported. Note that this comes with a license change from regular BSD 2-clause to the BSD+Patent license. This has been approved by core@ for this particular project [1]. As with the original import, we retain only the subset of headers that we actually need to build libefivar. I adapted imp@'s process slightly for this update: # Generate list of the headers needed to build cp -r ../vendor/edk2/dist/MdePkg/Include sys/contrib/edk2 cd lib/libefivar make pushd `make -V .OBJDIR` cat .depend*.o | grep sys/contrib | cut -d' ' -f 3 | sort -u | sed -e 's=/full/path/sys/contrib/edk2/==' > /tmp/xxx popd # Merge the needed files cd ../../sys/contrib/edk2 svn revert -R . for i in `cat /tmp/xxx`; do svn merge -c VendorRevision svn+ssh://repo.freebsd.org/base/vendor/edk2/dist/MdePkg/$i $i done svn merge -c VendorRevision svn+ssh://repo.freebsd.org/base/vendor/edk2/dist/MdePkg/MdePkg.dec MdePkg.dec [1] https://www.freebsd.org/internal/software-license.html Modified: head/sys/contrib/edk2/Include/Base.h (contents, props changed) head/sys/contrib/edk2/Include/Guid/HiiFormMapMethodGuid.h (contents, props changed) head/sys/contrib/edk2/Include/Guid/PcAnsi.h (contents, props changed) head/sys/contrib/edk2/Include/Guid/WinCertificate.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/Acpi10.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/Acpi20.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/Acpi30.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/Acpi40.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/Acpi50.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/Acpi51.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/Acpi60.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/AcpiAml.h (contents, props changed) head/sys/contrib/edk2/Include/IndustryStandard/Bluetooth.h (contents, props changed) head/sys/contrib/edk2/Include/Library/BaseLib.h (contents, props changed) head/sys/contrib/edk2/Include/Library/BaseMemoryLib.h (contents, props changed) head/sys/contrib/edk2/Include/Library/DebugLib.h (contents, props changed) head/sys/contrib/edk2/Include/Library/DevicePathLib.h (contents, props changed) head/sys/contrib/edk2/Include/Library/MemoryAllocationLib.h (contents, props changed) head/sys/contrib/edk2/Include/Library/PcdLib.h (contents, props changed) head/sys/contrib/edk2/Include/Library/PrintLib.h (contents, props changed) head/sys/contrib/edk2/Include/Library/UefiBootServicesTableLib.h (contents, props changed) head/sys/contrib/edk2/Include/Protocol/DebugPort.h (contents, props changed) head/sys/contrib/edk2/Include/Protocol/DevicePath.h (contents, props changed) head/sys/contrib/edk2/Include/Protocol/DevicePathFromText.h (contents, props changed) head/sys/contrib/edk2/Include/Protocol/DevicePathToText.h (contents, props changed) head/sys/contrib/edk2/Include/Protocol/DevicePathUtilities.h (contents, props changed) head/sys/contrib/edk2/Include/Protocol/SimpleTextIn.h (contents, props changed) head/sys/contrib/edk2/Include/Protocol/SimpleTextInEx.h (contents, props changed) head/sys/contrib/edk2/Include/Protocol/SimpleTextOut.h (contents, props changed) head/sys/contrib/edk2/Include/Uefi.h (contents, props changed) head/sys/contrib/edk2/Include/Uefi/UefiBaseType.h (contents, props changed) head/sys/contrib/edk2/Include/Uefi/UefiGpt.h (contents, props changed) head/sys/contrib/edk2/Include/Uefi/UefiInternalFormRepresentation.h (contents, props changed) head/sys/contrib/edk2/Include/Uefi/UefiMultiPhase.h (contents, props changed) head/sys/contrib/edk2/Include/Uefi/UefiPxe.h (contents, props changed) head/sys/contrib/edk2/Include/Uefi/UefiSpec.h (contents, props changed) head/sys/contrib/edk2/MdePkg.dec (contents, props changed) Directory Properties: head/sys/contrib/edk2/ (props changed) Modified: head/sys/contrib/edk2/Include/Base.h ============================================================================== --- head/sys/contrib/edk2/Include/Base.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/Base.h Thu Jun 4 19:21:41 2020 (r361802) @@ -6,16 +6,10 @@ environment. There are a set of base libraries in the Mde Package that can be used to implement base modules. -Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> -This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php. +SPDX-License-Identifier: BSD-2-Clause-Patent -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - **/ @@ -34,64 +28,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EIT #pragma warning ( disable : 4200 ) #endif -/** - Verifies the storage size of a given data type. - - This macro generates a divide by zero error or a zero size array declaration in - the preprocessor if the size is incorrect. These are declared as "extern" so - the space for these arrays will not be in the modules. - - @param TYPE The date type to determine the size of. - @param Size The expected size for the TYPE. - -**/ -#define VERIFY_SIZE_OF(TYPE, Size) extern UINT8 _VerifySizeof##TYPE[(sizeof(TYPE) == (Size)) / (sizeof(TYPE) == (Size))] - // -// Verify that ProcessorBind.h produced UEFI Data Types that are compliant with -// Section 2.3.1 of the UEFI 2.3 Specification. -// -VERIFY_SIZE_OF (BOOLEAN, 1); -VERIFY_SIZE_OF (INT8, 1); -VERIFY_SIZE_OF (UINT8, 1); -VERIFY_SIZE_OF (INT16, 2); -VERIFY_SIZE_OF (UINT16, 2); -VERIFY_SIZE_OF (INT32, 4); -VERIFY_SIZE_OF (UINT32, 4); -VERIFY_SIZE_OF (INT64, 8); -VERIFY_SIZE_OF (UINT64, 8); -VERIFY_SIZE_OF (CHAR8, 1); -VERIFY_SIZE_OF (CHAR16, 2); - -// -// The following three enum types are used to verify that the compiler -// configuration for enum types is compliant with Section 2.3.1 of the -// UEFI 2.3 Specification. These enum types and enum values are not -// intended to be used. A prefix of '__' is used avoid conflicts with -// other types. -// -typedef enum { - __VerifyUint8EnumValue = 0xff -} __VERIFY_UINT8_ENUM_SIZE; - -typedef enum { - __VerifyUint16EnumValue = 0xffff -} __VERIFY_UINT16_ENUM_SIZE; - -typedef enum { - __VerifyUint32EnumValue = 0xffffffff -} __VERIFY_UINT32_ENUM_SIZE; - -VERIFY_SIZE_OF (__VERIFY_UINT8_ENUM_SIZE, 4); -VERIFY_SIZE_OF (__VERIFY_UINT16_ENUM_SIZE, 4); -VERIFY_SIZE_OF (__VERIFY_UINT32_ENUM_SIZE, 4); - -// // The Microsoft* C compiler can removed references to unreferenced data items // if the /OPT:REF linker option is used. We defined a macro as this is a // a non standard extension // -#if defined(_MSC_EXTENSIONS) && !defined (MDE_CPU_EBC) +#if defined(_MSC_VER) && _MSC_VER < 1800 && !defined (MDE_CPU_EBC) /// /// Remove global variable from the linked image if there are no references to /// it after all compiler and linker optimizations have been performed. @@ -112,11 +54,10 @@ VERIFY_SIZE_OF (__VERIFY_UINT32_ENUM_SIZE, 4); // warnings. // #ifndef UNREACHABLE - #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4) + #ifdef __GNUC__ /// /// Signal compilers and analyzers that this call is not reachable. It is /// up to the compiler to remove any code past that point. - /// Not implemented by GCC 4.4 or earlier. /// #define UNREACHABLE() __builtin_unreachable () #elif defined (__has_feature) @@ -218,6 +159,26 @@ VERIFY_SIZE_OF (__VERIFY_UINT32_ENUM_SIZE, 4); #endif #endif +/// +/// Tell the code optimizer that the function will return twice. +/// This prevents wrong optimizations which can cause bugs. +/// +#ifndef RETURNS_TWICE + #if defined (__GNUC__) || defined (__clang__) + /// + /// Tell the code optimizer that the function will return twice. + /// This prevents wrong optimizations which can cause bugs. + /// + #define RETURNS_TWICE __attribute__((returns_twice)) + #else + /// + /// Tell the code optimizer that the function will return twice. + /// This prevents wrong optimizations which can cause bugs. + /// + #define RETURNS_TWICE + #endif +#endif + // // For symbol name in assembly code, an extra "_" is sometimes necessary // @@ -234,7 +195,7 @@ VERIFY_SIZE_OF (__VERIFY_UINT32_ENUM_SIZE, 4); /// #define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name) -#if __APPLE__ +#ifdef __APPLE__ // // Apple extension that is used by the linker to optimize code size // with assembly functions. Put at the end of your .S files @@ -376,6 +337,14 @@ struct _LIST_ENTRY { #define MAX_INT64 ((INT64)0x7FFFFFFFFFFFFFFFULL) #define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFFULL) +/// +/// Minimum values for the signed UEFI Data Types +/// +#define MIN_INT8 (((INT8) -127) - 1) +#define MIN_INT16 (((INT16) -32767) - 1) +#define MIN_INT32 (((INT32) -2147483647) - 1) +#define MIN_INT64 (((INT64) -9223372036854775807LL) - 1) + #define BIT0 0x00000001 #define BIT1 0x00000002 #define BIT2 0x00000004 @@ -552,21 +521,24 @@ struct _LIST_ENTRY { #define BASE_8EB 0x8000000000000000ULL // -// Support for variable length argument lists using the ANSI standard. +// Support for variable argument lists in freestanding edk2 modules. // -// Since we are using the ANSI standard we used the standard naming and -// did not follow the coding convention +// For modules that use the ISO C library interfaces for variable +// argument lists, refer to "StdLib/Include/stdarg.h". // // VA_LIST - typedef for argument list. // VA_START (VA_LIST Marker, argument before the ...) - Init Marker for use. // VA_END (VA_LIST Marker) - Clear Marker -// VA_ARG (VA_LIST Marker, var arg size) - Use Marker to get an argument from -// the ... list. You must know the size and pass it in this macro. +// VA_ARG (VA_LIST Marker, var arg type) - Use Marker to get an argument from +// the ... list. You must know the type and pass it in this macro. Type +// must be compatible with the type of the actual next argument (as promoted +// according to the default argument promotions.) // VA_COPY (VA_LIST Dest, VA_LIST Start) - Initialize Dest as a copy of Start. // -// example: +// Example: // // UINTN +// EFIAPI // ExampleVarArg ( // IN UINTN NumberOfArgs, // ... @@ -582,15 +554,21 @@ struct _LIST_ENTRY { // VA_START (Marker, NumberOfArgs); // for (Index = 0, Result = 0; Index < NumberOfArgs; Index++) { // // -// // The ... list is a series of UINTN values, so average them up. +// // The ... list is a series of UINTN values, so sum them up. // // // Result += VA_ARG (Marker, UINTN); // } // // VA_END (Marker); -// return Result +// return Result; // } // +// Notes: +// - Functions that call VA_START() / VA_END() must have a variable +// argument list and must be declared EFIAPI. +// - Functions that call VA_COPY() / VA_END() must be declared EFIAPI. +// - Functions that only use VA_LIST and VA_ARG() need not be EFIAPI. +// /** Return the size of argument that has been aligned to sizeof (UINTN). @@ -631,8 +609,20 @@ struct _LIST_ENTRY { #define VA_COPY(Dest, Start) __va_copy (Dest, Start) -#elif defined(__GNUC__) +#elif defined(_M_ARM) || defined(_M_ARM64) +// +// MSFT ARM variable argument list support. +// +typedef char* VA_LIST; + +#define VA_START(Marker, Parameter) __va_start (&Marker, &Parameter, _INT_SIZE_OF (Parameter), __alignof(Parameter), &Parameter) +#define VA_ARG(Marker, TYPE) (*(TYPE *) ((Marker += _INT_SIZE_OF (TYPE) + ((-(INTN)Marker) & (sizeof(TYPE) - 1))) - _INT_SIZE_OF (TYPE))) +#define VA_END(Marker) (Marker = (VA_LIST) 0) +#define VA_COPY(Dest, Start) ((void)((Dest) = (Start))) + +#elif defined(__GNUC__) || defined(__clang__) + #if defined(MDE_CPU_X64) && !defined(NO_MSABI_VA_FUNCS) // // X64 only. Use MS ABI version of GCC built-in macros for variable argument lists. @@ -736,7 +726,7 @@ typedef CHAR8 *VA_LIST; This macro initializes Dest as a copy of Start, as if the VA_START macro had been applied to Dest followed by the same sequence of uses of the VA_ARG macro as had previously been used to reach - the present state of Start. + the present state of Start. @param Dest VA_LIST used to traverse the list of arguments. @param Start VA_LIST used to traverse the list of arguments. @@ -791,17 +781,71 @@ typedef UINTN *BASE_LIST; @return Offset, in bytes, of field. **/ -#ifdef __GNUC__ -#if __GNUC__ >= 4 +#if (defined(__GNUC__) && __GNUC__ >= 4) || defined(__clang__) #define OFFSET_OF(TYPE, Field) ((UINTN) __builtin_offsetof(TYPE, Field)) #endif -#endif #ifndef OFFSET_OF #define OFFSET_OF(TYPE, Field) ((UINTN) &(((TYPE *)0)->Field)) #endif /** + Portable definition for compile time assertions. + Equivalent to C11 static_assert macro from assert.h. + + @param Expression Boolean expression. + @param Message Raised compiler diagnostic message when expression is false. + +**/ +#ifdef MDE_CPU_EBC + #define STATIC_ASSERT(Expression, Message) +#elif defined(_MSC_EXTENSIONS) + #define STATIC_ASSERT static_assert +#else + #define STATIC_ASSERT _Static_assert +#endif + +// +// Verify that ProcessorBind.h produced UEFI Data Types that are compliant with +// Section 2.3.1 of the UEFI 2.3 Specification. +// + +STATIC_ASSERT (sizeof (BOOLEAN) == 1, "sizeof (BOOLEAN) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (INT8) == 1, "sizeof (INT8) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (UINT8) == 1, "sizeof (UINT8) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (INT16) == 2, "sizeof (INT16) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (UINT16) == 2, "sizeof (UINT16) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (INT32) == 4, "sizeof (INT32) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (UINT32) == 4, "sizeof (UINT32) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (INT64) == 8, "sizeof (INT64) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (UINT64) == 8, "sizeof (UINT64) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (CHAR8) == 1, "sizeof (CHAR8) does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (CHAR16) == 2, "sizeof (CHAR16) does not meet UEFI Specification Data Type requirements"); + +// +// The following three enum types are used to verify that the compiler +// configuration for enum types is compliant with Section 2.3.1 of the +// UEFI 2.3 Specification. These enum types and enum values are not +// intended to be used. A prefix of '__' is used avoid conflicts with +// other types. +// +typedef enum { + __VerifyUint8EnumValue = 0xff +} __VERIFY_UINT8_ENUM_SIZE; + +typedef enum { + __VerifyUint16EnumValue = 0xffff +} __VERIFY_UINT16_ENUM_SIZE; + +typedef enum { + __VerifyUint32EnumValue = 0xffffffff +} __VERIFY_UINT32_ENUM_SIZE; + +STATIC_ASSERT (sizeof (__VERIFY_UINT8_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (__VERIFY_UINT16_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); +STATIC_ASSERT (sizeof (__VERIFY_UINT32_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); + +/** Macro that returns a pointer to the data structure that contains a specified field of that data structure. This is a lightweight method to hide information by placing a public data structure inside a larger private data structure and using a pointer to @@ -820,7 +864,7 @@ typedef UINTN *BASE_LIST; @return A pointer to the structure from one of it's elements. **/ -#define BASE_CR(Record, TYPE, Field) ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *) 0)->Field))) +#define BASE_CR(Record, TYPE, Field) ((TYPE *) ((CHAR8 *) (Record) - OFFSET_OF (TYPE, Field))) /** Rounds a value up to the next boundary using a specified alignment. @@ -1213,6 +1257,7 @@ typedef UINTN RETURN_STATUS; (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32)) #if defined(_MSC_EXTENSIONS) && !defined (__INTEL_COMPILER) && !defined (MDE_CPU_EBC) + void * _ReturnAddress(void); #pragma intrinsic(_ReturnAddress) /** Get the return address of the calling function. @@ -1227,7 +1272,7 @@ typedef UINTN RETURN_STATUS; **/ #define RETURN_ADDRESS(L) ((L == 0) ? _ReturnAddress() : (VOID *) 0) -#elif defined(__GNUC__) +#elif defined (__GNUC__) || defined (__clang__) void * __builtin_return_address (unsigned int level); /** Get the return address of the calling function. Modified: head/sys/contrib/edk2/Include/Guid/HiiFormMapMethodGuid.h ============================================================================== --- head/sys/contrib/edk2/Include/Guid/HiiFormMapMethodGuid.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/Guid/HiiFormMapMethodGuid.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,14 +1,8 @@ /** @file Guid used to identify HII FormMap configuration method. - Copyright (c) 2009, Intel Corporation. All rights reserved.<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent @par Revision Reference: GUID defined in UEFI 2.2 spec. Modified: head/sys/contrib/edk2/Include/Guid/PcAnsi.h ============================================================================== --- head/sys/contrib/edk2/Include/Guid/PcAnsi.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/Guid/PcAnsi.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,15 +1,9 @@ /** @file Terminal Device Path Vendor Guid. - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - @par Revision Reference: GUIDs defined in UEFI 2.0 spec. @@ -42,7 +36,7 @@ { \ 0x37499a9d, 0x542f, 0x4c89, {0xa0, 0x26, 0x35, 0xda, 0x14, 0x20, 0x94, 0xe4 } \ } - + #define EFI_SAS_DEVICE_PATH_GUID \ { \ 0xd487ddb4, 0x008b, 0x11d9, {0xaf, 0xdc, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d } \ Modified: head/sys/contrib/edk2/Include/Guid/WinCertificate.h ============================================================================== --- head/sys/contrib/edk2/Include/Guid/WinCertificate.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/Guid/WinCertificate.h Thu Jun 4 19:21:41 2020 (r361802) @@ -2,13 +2,7 @@ GUID for UEFI WIN_CERTIFICATE structure. Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + SPDX-License-Identifier: BSD-2-Clause-Patent @par Revision Reference: GUID defined in UEFI 2.0 spec. Modified: head/sys/contrib/edk2/Include/IndustryStandard/Acpi10.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/Acpi10.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/Acpi10.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,14 +1,8 @@ -/** @file +/** @file ACPI 1.0b definitions from the ACPI Specification, revision 1.0b -Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR> -This program and the accompanying materials are licensed and made available under -the terms and conditions of the BSD License that accompanies this distribution. -The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php. - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> +SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _ACPI_1_0_H_ @@ -43,7 +37,7 @@ typedef struct { #pragma pack() // -// Define for Desriptor +// Define for Descriptor // #define ACPI_SMALL_ITEM_FLAG 0x00 #define ACPI_LARGE_ITEM_FLAG 0x01 @@ -115,7 +109,7 @@ typedef struct { #pragma pack(1) /// -/// The commond definition of QWORD, DWORD, and WORD +/// The common definition of QWORD, DWORD, and WORD /// Address Space Descriptors. /// typedef PACKED struct { @@ -357,7 +351,7 @@ typedef struct { #define EFI_ACPI_DMA_SPEED_TYPE_A 0x20 #define EFI_ACPI_DMA_SPEED_TYPE_B 0x40 #define EFI_ACPI_DMA_SPEED_TYPE_F 0x60 - + #define EFI_ACPI_DMA_BUS_MASTER_MASK 0x04 #define EFI_ACPI_DMA_BUS_MASTER 0x04 @@ -403,7 +397,7 @@ typedef struct { // // Root System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. // Modified: head/sys/contrib/edk2/Include/IndustryStandard/Acpi20.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/Acpi20.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/Acpi20.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,14 +1,8 @@ -/** @file +/** @file ACPI 2.0 definitions from the ACPI Specification, revision 2.0 - Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _ACPI_2_0_H_ @@ -17,7 +11,7 @@ #include <IndustryStandard/Acpi10.h> // -// Define for Desriptor +// Define for Descriptor // #define ACPI_LARGE_GENERIC_REGISTER_DESCRIPTOR_NAME 0x02 @@ -103,7 +97,7 @@ typedef struct { // // Root System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. // @@ -114,7 +108,7 @@ typedef struct { // // Extended System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. // @@ -511,7 +505,7 @@ typedef struct { #define EFI_ACPI_2_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T') /// -/// "SPCR" Serial Port Concole Redirection Table +/// "SPCR" Serial Port Console Redirection Table /// #define EFI_ACPI_2_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') Modified: head/sys/contrib/edk2/Include/IndustryStandard/Acpi30.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/Acpi30.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/Acpi30.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,14 +1,8 @@ -/** @file +/** @file ACPI 3.0 definitions from the ACPI Specification Revision 3.0b October 10, 2006 - Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _ACPI_3_0_H_ @@ -17,7 +11,7 @@ #include <IndustryStandard/Acpi20.h> // -// Define for Desriptor +// Define for Descriptor // #define ACPI_LARGE_EXTENDED_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0B @@ -128,7 +122,7 @@ typedef struct { // // Root System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. // @@ -139,7 +133,7 @@ typedef struct { // // Extended System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. // @@ -597,7 +591,7 @@ typedef struct { /// /// "RSD PTR " Root System Description Pointer /// -#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') +#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') /// /// "APIC" Multiple APIC Description Table @@ -690,7 +684,7 @@ typedef struct { #define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G') /// -/// "SPCR" Serial Port Concole Redirection Table +/// "SPCR" Serial Port Console Redirection Table /// #define EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') Modified: head/sys/contrib/edk2/Include/IndustryStandard/Acpi40.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/Acpi40.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/Acpi40.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,14 +1,8 @@ -/** @file +/** @file ACPI 4.0 definitions from the ACPI Specification Revision 4.0a April 5, 2010 - Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _ACPI_4_0_H_ @@ -86,7 +80,7 @@ typedef struct { // // Root System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. // @@ -97,7 +91,7 @@ typedef struct { // // Extended System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. // @@ -1132,7 +1126,7 @@ typedef struct { /// /// "RSD PTR " Root System Description Pointer /// -#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') +#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') /// /// "APIC" Multiple APIC Description Table @@ -1270,7 +1264,7 @@ typedef struct { #define EFI_ACPI_4_0_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I') /// -/// "SPCR" Serial Port Concole Redirection Table +/// "SPCR" Serial Port Console Redirection Table /// #define EFI_ACPI_4_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') Modified: head/sys/contrib/edk2/Include/IndustryStandard/Acpi50.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/Acpi50.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/Acpi50.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,15 +1,10 @@ -/** @file +/** @file ACPI 5.0 definitions from the ACPI Specification Revision 5.0a November 13, 2013. Copyright (c) 2014 Hewlett-Packard Development Company, L.P.<BR> - Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2020, ARM Ltd. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _ACPI_5_0_H_ @@ -18,7 +13,7 @@ #include <IndustryStandard/Acpi40.h> // -// Define for Desriptor +// Define for Descriptor // #define ACPI_SMALL_FIXED_DMA_DESCRIPTOR_NAME 0x0A #define ACPI_LARGE_GPIO_CONNECTION_DESCRIPTOR_NAME 0x0C @@ -208,7 +203,7 @@ typedef struct { // // Root System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. // @@ -219,7 +214,7 @@ typedef struct { // // Extended System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. // @@ -1207,7 +1202,7 @@ typedef struct { /// UINT64 ExitBootServicesEntry; /// - /// Timer value logged at the point just prior towhen the OS loader gaining + /// Timer value logged at the point just prior to when the OS loader gaining /// control back from calls the ExitBootServices function for UEFI compatible firmware. /// For non-UEFI compatible boots, this field must be zero. /// @@ -1876,7 +1871,7 @@ typedef struct { /// /// "RSD PTR " Root System Description Pointer /// -#define EFI_ACPI_5_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') +#define EFI_ACPI_5_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') /// /// "APIC" Multiple APIC Description Table @@ -2064,12 +2059,17 @@ typedef struct { #define EFI_ACPI_5_0_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M') /// +/// "PCCT" Platform Communications Channel Table +/// +#define EFI_ACPI_5_0_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE SIGNATURE_32('P', 'C', 'C', 'T') + +/// /// "SLIC" MS Software Licensing Table Specification /// #define EFI_ACPI_5_0_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C') /// -/// "SPCR" Serial Port Concole Redirection Table +/// "SPCR" Serial Port Console Redirection Table /// #define EFI_ACPI_5_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') Modified: head/sys/contrib/edk2/Include/IndustryStandard/Acpi51.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/Acpi51.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/Acpi51.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,16 +1,11 @@ -/** @file +/** @file ACPI 5.1 definitions from the ACPI Specification Revision 5.1 Errata B January, 2016. Copyright (c) 2014 Hewlett-Packard Development Company, L.P.<BR> - Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2014 - 2018, Intel Corporation. All rights reserved.<BR> (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + Copyright (c) 2020, ARM Ltd. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _ACPI_5_1_H_ @@ -89,7 +84,7 @@ typedef struct { // // Root System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. // @@ -100,7 +95,7 @@ typedef struct { // // Extended System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. // @@ -1160,7 +1155,7 @@ typedef struct { /// UINT64 ExitBootServicesEntry; /// - /// Timer value logged at the point just prior towhen the OS loader gaining + /// Timer value logged at the point just prior to when the OS loader gaining /// control back from calls the ExitBootServices function for UEFI compatible firmware. /// For non-UEFI compatible boots, this field must be zero. /// @@ -1874,7 +1869,7 @@ typedef struct { UINT8 CommandComplete:1; UINT8 SciDoorbell:1; UINT8 Error:1; - UINT8 PlatformNotification:1; + UINT8 PlatformNotification:1; UINT8 Reserved:4; UINT8 Reserved1; } EFI_ACPI_5_1_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS; @@ -1892,7 +1887,7 @@ typedef struct { /// /// "RSD PTR " Root System Description Pointer /// -#define EFI_ACPI_5_1_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') +#define EFI_ACPI_5_1_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') /// /// "APIC" Multiple APIC Description Table @@ -2085,12 +2080,17 @@ typedef struct { #define EFI_ACPI_5_1_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M') /// +/// "PCCT" Platform Communications Channel Table +/// +#define EFI_ACPI_5_1_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE SIGNATURE_32('P', 'C', 'C', 'T') + +/// /// "SLIC" MS Software Licensing Table Specification /// #define EFI_ACPI_5_1_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C') /// -/// "SPCR" Serial Port Concole Redirection Table +/// "SPCR" Serial Port Console Redirection Table /// #define EFI_ACPI_5_1_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') Modified: head/sys/contrib/edk2/Include/IndustryStandard/Acpi60.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/Acpi60.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/Acpi60.h Thu Jun 4 19:21:41 2020 (r361802) @@ -1,15 +1,10 @@ -/** @file +/** @file ACPI 6.0 definitions from the ACPI Specification Revision 6.0 Errata A January, 2016. - Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR> (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + Copyright (c) 2020, ARM Ltd. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _ACPI_6_0_H_ @@ -88,7 +83,7 @@ typedef struct { // // Root System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. // @@ -99,7 +94,7 @@ typedef struct { // // Extended System Description Table -// No definition needed as it is a common description table header, the same with +// No definition needed as it is a common description table header, the same with // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. // @@ -1175,7 +1170,7 @@ typedef struct { /// UINT64 ExitBootServicesEntry; /// - /// Timer value logged at the point just prior towhen the OS loader gaining + /// Timer value logged at the point just prior to when the OS loader gaining /// control back from calls the ExitBootServices function for UEFI compatible firmware. /// For non-UEFI compatible boots, this field must be zero. /// @@ -2020,7 +2015,9 @@ typedef struct { // // PCCT Subspace type // -#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_GENERIC 0x00 +#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_GENERIC 0x00 +#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS 0x01 +#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS 0x02 /// /// PCC Subspace Structure Header @@ -2061,7 +2058,7 @@ typedef struct { UINT8 CommandComplete:1; UINT8 SciDoorbell:1; UINT8 Error:1; - UINT8 PlatformNotification:1; + UINT8 PlatformNotification:1; UINT8 Reserved:4; UINT8 Reserved1; } EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS; @@ -2072,6 +2069,50 @@ typedef struct { EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS Status; } EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER; +#define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_POLARITY BIT0 +#define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_MODE BIT1 + +/// +/// Type 1 HW-Reduced Communications Subspace Structure +/// +typedef struct { + UINT8 Type; + UINT8 Length; + UINT32 DoorbellInterrupt; + UINT8 DoorbellInterruptFlags; + UINT8 Reserved; + UINT64 BaseAddress; + UINT64 AddressLength; + EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister; + UINT64 DoorbellPreserve; + UINT64 DoorbellWrite; + UINT32 NominalLatency; + UINT32 MaximumPeriodicAccessRate; + UINT16 MinimumRequestTurnaroundTime; +} EFI_ACPI_6_0_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS; + +/// +/// Type 2 HW-Reduced Communications Subspace Structure +/// +typedef struct { + UINT8 Type; + UINT8 Length; + UINT32 DoorbellInterrupt; + UINT8 DoorbellInterruptFlags; + UINT8 Reserved; + UINT64 BaseAddress; + UINT64 AddressLength; + EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister; + UINT64 DoorbellPreserve; + UINT64 DoorbellWrite; + UINT32 NominalLatency; + UINT32 MaximumPeriodicAccessRate; + UINT16 MinimumRequestTurnaroundTime; + EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellAckRegister; + UINT64 DoorbellAckPreserve; + UINT64 DoorbellAckWrite; +} EFI_ACPI_6_0_PCCT_SUBSPACE_2_HW_REDUCED_COMMUNICATIONS; + // // Known table signatures // @@ -2079,7 +2120,7 @@ typedef struct { /// /// "RSD PTR " Root System Description Pointer /// -#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') +#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') /// /// "APIC" Multiple APIC Description Table @@ -2282,12 +2323,17 @@ typedef struct { #define EFI_ACPI_6_0_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M') /// +/// "PCCT" Platform Communications Channel Table +/// +#define EFI_ACPI_6_0_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE SIGNATURE_32('P', 'C', 'C', 'T') + +/// /// "SLIC" MS Software Licensing Table Specification /// #define EFI_ACPI_6_0_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C') /// -/// "SPCR" Serial Port Concole Redirection Table +/// "SPCR" Serial Port Console Redirection Table /// #define EFI_ACPI_6_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') Modified: head/sys/contrib/edk2/Include/IndustryStandard/AcpiAml.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/AcpiAml.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/AcpiAml.h Thu Jun 4 19:21:41 2020 (r361802) @@ -2,14 +2,9 @@ This file contains AML code definition in the latest ACPI spec. Copyright (c) 2011, Intel Corporation. All rights reserved.<BR> - This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php + Copyright (c) 2019, ARM Limited. All rights reserved.<BR> + SPDX-License-Identifier: BSD-2-Clause-Patent - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - **/ #ifndef _ACPI_AML_H_ @@ -36,6 +31,7 @@ #define AML_PACKAGE_OP 0x12 #define AML_VAR_PACKAGE_OP 0x13 #define AML_METHOD_OP 0x14 +#define AML_EXTERNAL_OP 0x15 #define AML_DUAL_NAME_PREFIX 0x2e #define AML_MULTI_NAME_PREFIX 0x2f #define AML_NAME_CHAR_A 0x41 @@ -171,5 +167,13 @@ #define AML_EXT_INDEX_FIELD_OP 0x86 #define AML_EXT_BANK_FIELD_OP 0x87 #define AML_EXT_DATA_REGION_OP 0x88 + +// +// FieldElement OpCode +// +#define AML_FIELD_RESERVED_OP 0x00 +#define AML_FIELD_ACCESS_OP 0x01 +#define AML_FIELD_CONNECTION_OP 0x02 +#define AML_FIELD_EXT_ACCESS_OP 0x03 #endif Modified: head/sys/contrib/edk2/Include/IndustryStandard/Bluetooth.h ============================================================================== --- head/sys/contrib/edk2/Include/IndustryStandard/Bluetooth.h Thu Jun 4 18:35:21 2020 (r361801) +++ head/sys/contrib/edk2/Include/IndustryStandard/Bluetooth.h Thu Jun 4 19:21:41 2020 (r361802) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202006041921.054JLfBw026270>