Module Name: src Committed By: christos Date: Tue Jul 6 12:23:46 UTC 2021
Modified Files: src/sys/external/bsd/acpica/dist/compiler: aslcompiler.h aslutils.c dtfield.c dtutils.c src/sys/external/bsd/acpica/dist/include: acdisasm.h acpixf.h actbl1.h acutils.h src/sys/external/bsd/acpica/dist/namespace: nsrepair2.c src/sys/external/bsd/acpica/dist/utilities: utdelete.c utprint.c utuuid.c Log Message: merge changes for acpica-20210604 To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 \ src/sys/external/bsd/acpica/dist/compiler/aslcompiler.h cvs rdiff -u -r1.28 -r1.29 \ src/sys/external/bsd/acpica/dist/compiler/aslutils.c cvs rdiff -u -r1.17 -r1.18 \ src/sys/external/bsd/acpica/dist/compiler/dtfield.c cvs rdiff -u -r1.16 -r1.17 \ src/sys/external/bsd/acpica/dist/compiler/dtutils.c cvs rdiff -u -r1.21 -r1.22 \ src/sys/external/bsd/acpica/dist/include/acdisasm.h cvs rdiff -u -r1.29 -r1.30 src/sys/external/bsd/acpica/dist/include/acpixf.h cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/acpica/dist/include/actbl1.h cvs rdiff -u -r1.23 -r1.24 src/sys/external/bsd/acpica/dist/include/acutils.h cvs rdiff -u -r1.17 -r1.18 \ src/sys/external/bsd/acpica/dist/namespace/nsrepair2.c cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/acpica/dist/utilities/utdelete.c cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/acpica/dist/utilities/utprint.c cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/acpica/dist/utilities/utuuid.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/acpica/dist/compiler/aslcompiler.h diff -u src/sys/external/bsd/acpica/dist/compiler/aslcompiler.h:1.18 src/sys/external/bsd/acpica/dist/compiler/aslcompiler.h:1.19 --- src/sys/external/bsd/acpica/dist/compiler/aslcompiler.h:1.18 Sat Apr 3 13:45:02 2021 +++ src/sys/external/bsd/acpica/dist/compiler/aslcompiler.h Tue Jul 6 08:23:46 2021 @@ -1116,6 +1116,10 @@ DbgPrint ( #define ASL_PARSE_OUTPUT 1 #define ASL_TREE_OUTPUT 2 +BOOLEAN +UtIsIdInteger ( + UINT8 *Target); + UINT8 UtIsBigEndianMachine ( void); Index: src/sys/external/bsd/acpica/dist/compiler/aslutils.c diff -u src/sys/external/bsd/acpica/dist/compiler/aslutils.c:1.28 src/sys/external/bsd/acpica/dist/compiler/aslutils.c:1.29 --- src/sys/external/bsd/acpica/dist/compiler/aslutils.c:1.28 Sat Apr 3 13:45:02 2021 +++ src/sys/external/bsd/acpica/dist/compiler/aslutils.c Tue Jul 6 08:23:46 2021 @@ -98,6 +98,46 @@ UtIsBigEndianMachine ( } +/******************************************************************************* + * + * FUNCTION: UtIsIdInteger + * + * PARAMETERS: Pointer to an ACPI ID (HID, CID) string + * + * RETURN: TRUE if string is an integer + * FALSE if string is not an integer + * + * DESCRIPTION: Determine whether the input ACPI ID string can be converted to + * an integer value. + * + ******************************************************************************/ + +BOOLEAN +UtIsIdInteger ( + UINT8 *Target) +{ + UINT32 i; + + + /* The first three characters of the string must be alphabetic */ + + for (i = 0; i < 3; i++) + { + if (!isalpha ((int) Target[i])) + { + break; + } + } + + if (i < 3) + { + return (TRUE); + } + + return (FALSE); +} + + /****************************************************************************** * * FUNCTION: UtQueryForOverwrite Index: src/sys/external/bsd/acpica/dist/compiler/dtfield.c diff -u src/sys/external/bsd/acpica/dist/compiler/dtfield.c:1.17 src/sys/external/bsd/acpica/dist/compiler/dtfield.c:1.18 --- src/sys/external/bsd/acpica/dist/compiler/dtfield.c:1.17 Sat Apr 3 13:45:02 2021 +++ src/sys/external/bsd/acpica/dist/compiler/dtfield.c Tue Jul 6 08:23:46 2021 @@ -326,14 +326,14 @@ DtCompileInteger ( { if (Value != 1) { - DtError (ASL_WARNING, ASL_MSG_RESERVED_VALUE, Field, + DtError (ASL_WARNING, ASL_MSG_RESERVED_FIELD, Field, "Must be one, setting to one"); Value = 1; } } else if (Value != 0) { - DtError (ASL_WARNING, ASL_MSG_RESERVED_VALUE, Field, + DtError (ASL_WARNING, ASL_MSG_RESERVED_FIELD, Field, "Must be zero, setting to zero"); Value = 0; } Index: src/sys/external/bsd/acpica/dist/compiler/dtutils.c diff -u src/sys/external/bsd/acpica/dist/compiler/dtutils.c:1.16 src/sys/external/bsd/acpica/dist/compiler/dtutils.c:1.17 --- src/sys/external/bsd/acpica/dist/compiler/dtutils.c:1.16 Sat Apr 3 13:45:02 2021 +++ src/sys/external/bsd/acpica/dist/compiler/dtutils.c Tue Jul 6 08:23:46 2021 @@ -318,6 +318,7 @@ DtGetFieldType ( case ACPI_DMT_NAME6: case ACPI_DMT_NAME8: case ACPI_DMT_STRING: + case ACPI_DMT_IVRS_UNTERMINATED_STRING: Type = DT_FIELD_TYPE_STRING; break; @@ -468,11 +469,13 @@ DtGetFieldLength ( case ACPI_DMT_ACCWIDTH: case ACPI_DMT_CEDT: case ACPI_DMT_IVRS: + case ACPI_DMT_IVRS_DE: case ACPI_DMT_GTDT: case ACPI_DMT_MADT: case ACPI_DMT_PCCT: case ACPI_DMT_PMTT: case ACPI_DMT_PPTT: + case ACPI_DMT_RGRT: case ACPI_DMT_SDEV: case ACPI_DMT_SRAT: case ACPI_DMT_ASF: @@ -552,6 +555,22 @@ DtGetFieldLength ( } break; + case ACPI_DMT_IVRS_UNTERMINATED_STRING: + + Value = DtGetFieldValue (Field); + if (Value) + { + ByteLength = strlen (Value); + } + else + { /* At this point, this is a fatal error */ + + sprintf (AslGbl_MsgBuffer, "Expected \"%s\"", Info->Name); + DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, AslGbl_MsgBuffer); + return (0); + } + break; + case ACPI_DMT_GAS: ByteLength = sizeof (ACPI_GENERIC_ADDRESS); Index: src/sys/external/bsd/acpica/dist/include/acdisasm.h diff -u src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.21 src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.22 --- src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.21 Sat Apr 3 13:45:03 2021 +++ src/sys/external/bsd/acpica/dist/include/acdisasm.h Tue Jul 6 08:23:46 2021 @@ -158,6 +158,8 @@ typedef enum ACPI_DMT_HMAT, ACPI_DMT_IORTMEM, ACPI_DMT_IVRS, + ACPI_DMT_IVRS_DE, + ACPI_DMT_IVRS_UNTERMINATED_STRING, ACPI_DMT_LPIT, ACPI_DMT_MADT, ACPI_DMT_NFIT, @@ -166,6 +168,7 @@ typedef enum ACPI_DMT_PMTT, ACPI_DMT_PMTT_VENDOR, ACPI_DMT_PPTT, + ACPI_DMT_RGRT, ACPI_DMT_SDEI, ACPI_DMT_SDEV, ACPI_DMT_SLIC, @@ -257,6 +260,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTa extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[]; @@ -357,16 +361,20 @@ extern ACPI_DMTABLE_INFO AcpiDmTa extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs01[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware23[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsMemory[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidString[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsCidInteger[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHid1[]; -extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidString[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsUidInteger[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidString[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHidInteger[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[]; @@ -438,7 +446,12 @@ extern ACPI_DMTABLE_INFO AcpiDmTa extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPpttHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtModule[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[]; @@ -472,6 +485,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTa extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[]; @@ -666,6 +681,14 @@ void AcpiDmDumpPptt ( ACPI_TABLE_HEADER *Table); +void +AcpiDmDumpPrmt ( + ACPI_TABLE_HEADER *Table); + +void +AcpiDmDumpRgrt ( + ACPI_TABLE_HEADER *Table); + UINT32 AcpiDmDumpRsdp ( ACPI_TABLE_HEADER *Table); @@ -699,6 +722,10 @@ AcpiDmDumpStao ( ACPI_TABLE_HEADER *Table); void +AcpiDmDumpSvkl ( + ACPI_TABLE_HEADER *Table); + +void AcpiDmDumpTcpa ( ACPI_TABLE_HEADER *Table); Index: src/sys/external/bsd/acpica/dist/include/acpixf.h diff -u src/sys/external/bsd/acpica/dist/include/acpixf.h:1.29 src/sys/external/bsd/acpica/dist/include/acpixf.h:1.30 --- src/sys/external/bsd/acpica/dist/include/acpixf.h:1.29 Sat Apr 3 13:45:03 2021 +++ src/sys/external/bsd/acpica/dist/include/acpixf.h Tue Jul 6 08:23:46 2021 @@ -46,7 +46,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20210331 +#define ACPI_CA_VERSION 0x20210604 #include "acconfig.h" #include "actypes.h" Index: src/sys/external/bsd/acpica/dist/include/actbl1.h diff -u src/sys/external/bsd/acpica/dist/include/actbl1.h:1.17 src/sys/external/bsd/acpica/dist/include/actbl1.h:1.18 --- src/sys/external/bsd/acpica/dist/include/actbl1.h:1.17 Sat Apr 3 13:45:03 2021 +++ src/sys/external/bsd/acpica/dist/include/actbl1.h Tue Jul 6 08:23:46 2021 @@ -415,9 +415,19 @@ typedef struct acpi_cedt_header enum AcpiCedtType { ACPI_CEDT_TYPE_CHBS = 0, - ACPI_CEDT_TYPE_RESERVED = 1 + ACPI_CEDT_TYPE_CFMWS = 1, + ACPI_CEDT_TYPE_RESERVED = 2, }; +/* Values for version field above */ + +#define ACPI_CEDT_CHBS_VERSION_CXL11 (0) +#define ACPI_CEDT_CHBS_VERSION_CXL20 (1) + +/* Values for length field above */ + +#define ACPI_CEDT_CHBS_LENGTH_CXL11 (0x2000) +#define ACPI_CEDT_CHBS_LENGTH_CXL20 (0x10000) /* * CEDT subtables @@ -437,6 +447,37 @@ typedef struct acpi_cedt_chbs } ACPI_CEDT_CHBS; +/* 1: CXL Fixed Memory Window Structure */ + +typedef struct acpi_cedt_cfmws +{ + ACPI_CEDT_HEADER Header; + UINT32 Reserved1; + UINT64 BaseHpa; + UINT64 WindowSize; + UINT8 InterleaveWays; + UINT8 InterleaveArithmetic; + UINT16 Reserved2; + UINT32 Granularity; + UINT16 Restrictions; + UINT16 QtgId; + UINT32 InterleaveTargets[]; + +} ACPI_CEDT_CFMWS; + +/* Values for Interleave Arithmetic field above */ + +#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0) + +/* Values for Restrictions field above */ + +#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1) +#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1) +#define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2) +#define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3) +#define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4) + + /******************************************************************************* * * CPEP - Corrected Platform Error Polling table (ACPI 4.0) Index: src/sys/external/bsd/acpica/dist/include/acutils.h diff -u src/sys/external/bsd/acpica/dist/include/acutils.h:1.23 src/sys/external/bsd/acpica/dist/include/acutils.h:1.24 --- src/sys/external/bsd/acpica/dist/include/acutils.h:1.23 Sat Apr 3 13:45:03 2021 +++ src/sys/external/bsd/acpica/dist/include/acutils.h Tue Jul 6 08:23:46 2021 @@ -1160,6 +1160,11 @@ void AcpiUtConvertStringToUuid ( const char *InString, UINT8 *UuidBuffer); + +ACPI_STATUS +AcpiUtConvertUuidToString ( + char *UuidBuffer, + char *OutString); #endif #endif /* _ACUTILS_H */ Index: src/sys/external/bsd/acpica/dist/namespace/nsrepair2.c diff -u src/sys/external/bsd/acpica/dist/namespace/nsrepair2.c:1.17 src/sys/external/bsd/acpica/dist/namespace/nsrepair2.c:1.18 --- src/sys/external/bsd/acpica/dist/namespace/nsrepair2.c:1.17 Sat Apr 3 13:45:03 2021 +++ src/sys/external/bsd/acpica/dist/namespace/nsrepair2.c Tue Jul 6 08:23:46 2021 @@ -457,6 +457,13 @@ AcpiNsRepair_CID ( (*ElementPtr)->Common.ReferenceCount = OriginalRefCount; + + /* + * The OriginalElement holds a reference from the package object + * that represents _HID. Since a new element was created by _HID, + * remove the reference from the _CID package. + */ + AcpiUtRemoveReference (OriginalElement); } ElementPtr++; Index: src/sys/external/bsd/acpica/dist/utilities/utdelete.c diff -u src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.6 src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.7 --- src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.6 Sat Apr 3 13:45:04 2021 +++ src/sys/external/bsd/acpica/dist/utilities/utdelete.c Tue Jul 6 08:23:46 2021 @@ -335,6 +335,14 @@ AcpiUtDeleteInternalObj ( } break; + case ACPI_TYPE_LOCAL_ADDRESS_HANDLER: + + ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, + "***** Address handler %p\n", Object)); + + AcpiOsDeleteMutex (Object->AddressSpace.ContextMutex); + break; + default: break; Index: src/sys/external/bsd/acpica/dist/utilities/utprint.c diff -u src/sys/external/bsd/acpica/dist/utilities/utprint.c:1.10 src/sys/external/bsd/acpica/dist/utilities/utprint.c:1.11 --- src/sys/external/bsd/acpica/dist/utilities/utprint.c:1.10 Sat Apr 3 13:45:04 2021 +++ src/sys/external/bsd/acpica/dist/utilities/utprint.c Tue Jul 6 08:23:46 2021 @@ -624,7 +624,7 @@ vsnprintf ( case 'X': Type |= ACPI_FORMAT_UPPER; - /* FALLTHROUGH */ + ACPI_FALLTHROUGH; case 'x': Index: src/sys/external/bsd/acpica/dist/utilities/utuuid.c diff -u src/sys/external/bsd/acpica/dist/utilities/utuuid.c:1.9 src/sys/external/bsd/acpica/dist/utilities/utuuid.c:1.10 --- src/sys/external/bsd/acpica/dist/utilities/utuuid.c:1.9 Sat Apr 3 13:45:04 2021 +++ src/sys/external/bsd/acpica/dist/utilities/utuuid.c Tue Jul 6 08:23:46 2021 @@ -100,4 +100,52 @@ AcpiUtConvertStringToUuid ( InString[AcpiGbl_MapToUuidOffset[i] + 1]); } } + + +/******************************************************************************* + * + * FUNCTION: AcpiUtConvertUuidToString + * + * PARAMETERS: UuidBuffer - 16-byte UUID buffer + * OutString - 36-byte formatted UUID string + * + * RETURN: Status + * + * DESCRIPTION: Convert 16-byte UUID buffer to 36-byte formatted UUID string + * OutString must be 37 bytes to include null terminator. + * + ******************************************************************************/ + +ACPI_STATUS +AcpiUtConvertUuidToString ( + char *UuidBuffer, + char *OutString) +{ + UINT32 i; + + + if (!UuidBuffer || !OutString) + { + return (AE_BAD_PARAMETER); + } + + for (i = 0; i < UUID_BUFFER_LENGTH; i++) + { + OutString[AcpiGbl_MapToUuidOffset[i]] = + AcpiUtHexToAsciiChar (UuidBuffer[i], 4); + + OutString[AcpiGbl_MapToUuidOffset[i] + 1] = + AcpiUtHexToAsciiChar (UuidBuffer[i], 0); + } + + /* Insert required hyphens (dashes) */ + + OutString[UUID_HYPHEN1_OFFSET] = + OutString[UUID_HYPHEN2_OFFSET] = + OutString[UUID_HYPHEN3_OFFSET] = + OutString[UUID_HYPHEN4_OFFSET] = '-'; + + OutString[UUID_STRING_LENGTH] = 0; /* Null terminate */ + return (AE_OK); +} #endif