Author: jkim Date: Thu May 28 21:19:44 2020 New Revision: 361600 URL: https://svnweb.freebsd.org/changeset/base/361600
Log: MFV: r361597 Import ACPICA 20200528. Modified: head/sys/contrib/dev/acpica/changes.txt head/sys/contrib/dev/acpica/compiler/aslcompiler.l head/sys/contrib/dev/acpica/compiler/aslkeywords.y head/sys/contrib/dev/acpica/compiler/aslmap.c head/sys/contrib/dev/acpica/compiler/aslmethod.c head/sys/contrib/dev/acpica/compiler/asltokens.y head/sys/contrib/dev/acpica/compiler/aslxref.c head/sys/contrib/dev/acpica/components/debugger/dbdisply.c head/sys/contrib/dev/acpica/components/utilities/utdecode.c head/sys/contrib/dev/acpica/include/acpixf.h head/sys/contrib/dev/acpica/include/actypes.h Directory Properties: head/sys/contrib/dev/acpica/ (props changed) Modified: head/sys/contrib/dev/acpica/changes.txt ============================================================================== --- head/sys/contrib/dev/acpica/changes.txt Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/changes.txt Thu May 28 21:19:44 2020 (r361600) @@ -1,8 +1,61 @@ ---------------------------------------- -30 April 2020. Summary of changes for version 20200430: +28 May 2020. Summary of changes for version 20200528: + +1) ACPICA kernel-resident subsystem: + +Removed old/obsolete Visual Studio files which were used to build the +Windows versions of the ACPICA tools. Since we have moved to Visual +Studio 2017, we are no longer supporting Visual Studio 2006 and 2009 +project files. The new subdirectory and solution file are located at: + + acpica/generate/msvc2017/AcpiComponents.sln + + +2) iASL Compiler/Disassembler and ACPICA tools: + +iASL: added support for a new OperationRegion Address Space (subtype): +PlatformRtMechanism. Support for this new keyword is being released for +early prototyping. It will appear in the next release of the ACPI +specification. + +iASL: do not optimize the NameString parameter of the CondRefOf operator. +In the previous iASL compiler release, the NameString parameter of the +CondRefOf was optimized. There is evidence that some implementations of +the AML interpreter do not perform the recursive search-to-parent search +during the execution of the CondRefOf operator. Therefore, the CondRefOf +operator behaves differently when the NameString parameter is a single +name segment (a NameSeg) as opposed to a full NamePath (starting at the +root scope) or a NameString containing parent prefixes. + +iASL: Prevent an inadvertent remark message. This change prevents a +remark if within a control method the following exist: +1) An Operation Region is defined, and +2) A Field operator is defined that refers to the region. +This happens because at the top level, the Field operator does not +actually create a new named object, it simply references the operation +region. + +Removed support for the acpinames utility. The acpinames was a simple +utility used to populate and display the ACPI namespace without executing +any AML code. However, ACPICA now supports executable opcodes outside of +control methods. This means that executable AML opcodes such as If and +Store opcodes need to be executed during table load. Therefore, acpinames +would need to be updated to match the same behavior as the acpiexec +utility and since acpiexec can already dump the entire namespace (via the +'namespace' command), we no longer have the need to maintain acpinames. + + In order to dump the contents of the ACPI namepsace using acpiexec, +execute the following command from the command line: + + acpiexec -b "n" [aml files] + +---------------------------------------- + + +30 April 2020. Summary of changes for version 20200430: 1) ACPICA kernel-resident subsystem: Modified: head/sys/contrib/dev/acpica/compiler/aslcompiler.l ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslcompiler.l Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/compiler/aslcompiler.l Thu May 28 21:19:44 2020 (r361600) @@ -693,6 +693,7 @@ NamePathTail [.]{NameSeg} "GeneralPurposeIo" { count (0); return (PARSEOP_REGIONSPACE_GPIO); } /* ACPI 5.0 */ "GenericSerialBus" { count (0); return (PARSEOP_REGIONSPACE_GSBUS); } /* ACPI 5.0 */ "PCC" { count (0); return (PARSEOP_REGIONSPACE_PCC); } /* ACPI 5.0 */ +"PlatformRtMechanism" { count (0); return (PARSEOP_REGIONSPACE_PRM); } "FFixedHW" { count (0); return (PARSEOP_REGIONSPACE_FFIXEDHW); } /* ResourceTypeKeyword: Resource Usage - Resource Descriptors */ Modified: head/sys/contrib/dev/acpica/compiler/aslkeywords.y ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslkeywords.y Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/compiler/aslkeywords.y Thu May 28 21:19:44 2020 (r361600) @@ -394,6 +394,7 @@ RegionSpaceKeyword | PARSEOP_REGIONSPACE_GPIO {$$ = TrCreateLeafOp (PARSEOP_REGIONSPACE_GPIO);} | PARSEOP_REGIONSPACE_GSBUS {$$ = TrCreateLeafOp (PARSEOP_REGIONSPACE_GSBUS);} | PARSEOP_REGIONSPACE_PCC {$$ = TrCreateLeafOp (PARSEOP_REGIONSPACE_PCC);} + | PARSEOP_REGIONSPACE_PRM {$$ = TrCreateLeafOp (PARSEOP_REGIONSPACE_PRM);} | PARSEOP_REGIONSPACE_FFIXEDHW {$$ = TrCreateLeafOp (PARSEOP_REGIONSPACE_FFIXEDHW);} ; Modified: head/sys/contrib/dev/acpica/compiler/aslmap.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmap.c Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/compiler/aslmap.c Thu May 28 21:19:44 2020 (r361600) @@ -485,6 +485,7 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] = /* REGIONSPACE_PCC */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, ACPI_ADR_SPACE_PLATFORM_COMM, 0, 0), /* REGIONSPACE_PCI */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, ACPI_ADR_SPACE_PCI_CONFIG, 0, 0), /* REGIONSPACE_PCIBAR */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, ACPI_ADR_SPACE_PCI_BAR_TARGET, 0, 0), +/* REGIONSPACE_PRM */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, ACPI_ADR_SPACE_PLATFORM_RT, 0, 0), /* REGIONSPACE_SMBUS */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, ACPI_ADR_SPACE_SMBUS, 0, 0), /* REGISTER */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), /* RELEASE */ OP_TABLE_ENTRY (AML_RELEASE_OP, 0, 0, 0), Modified: head/sys/contrib/dev/acpica/compiler/aslmethod.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslmethod.c Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/compiler/aslmethod.c Thu May 28 21:19:44 2020 (r361600) @@ -724,7 +724,7 @@ MtCheckNamedObjectInMethod ( } OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode); - if (OpInfo->Class == AML_CLASS_NAMED_OBJECT) + if ((OpInfo->Class == AML_CLASS_NAMED_OBJECT) && (Op->Asl.AmlOpcode != AML_FIELD_OP)) { /* * 1) Mark the method as a method that creates named objects. @@ -739,6 +739,9 @@ MtCheckNamedObjectInMethod ( * Reason: If a thread blocks within the method for any reason, and * another thread enters the method, the method will fail because * an attempt will be made to create the same object twice. + * + * Note: The Field opcode is disallowed here because Field() does not + * create a new named object. */ ExternalPath = AcpiNsGetNormalizedPathname (MethodInfo->Op->Asl.Node, TRUE); Modified: head/sys/contrib/dev/acpica/compiler/asltokens.y ============================================================================== --- head/sys/contrib/dev/acpica/compiler/asltokens.y Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/compiler/asltokens.y Thu May 28 21:19:44 2020 (r361600) @@ -422,6 +422,7 @@ NoEcho(' %token <i> PARSEOP_REGIONSPACE_PCC %token <i> PARSEOP_REGIONSPACE_PCI %token <i> PARSEOP_REGIONSPACE_PCIBAR +%token <i> PARSEOP_REGIONSPACE_PRM %token <i> PARSEOP_REGIONSPACE_SMBUS %token <i> PARSEOP_REGISTER %token <i> PARSEOP_RELEASE Modified: head/sys/contrib/dev/acpica/compiler/aslxref.c ============================================================================== --- head/sys/contrib/dev/acpica/compiler/aslxref.c Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/compiler/aslxref.c Thu May 28 21:19:44 2020 (r361600) @@ -821,9 +821,24 @@ XfNamespaceLocateBegin ( Node->Flags |= ANOBJ_IS_REFERENCED; } - /* Attempt to optimize the NamePath */ - - OptOptimizeNamePath (Op, OpInfo->Flags, WalkState, Path, Node); + /* + * Attempt to optimize the NamePath + * + * One special case: CondRefOf operator - not all AML interpreter + * implementations expect optimized namepaths as a parameter to this + * operator. They require relative name paths with prefix operators or + * namepaths starting with the root scope. + * + * Other AML interpreter implementations do not perform the namespace + * search that starts at the current scope and recursively searching the + * parent scope until the root scope. The lack of search is only known to + * occur for the namestring parameter for the CondRefOf operator. + */ + if ((Op->Asl.Parent) && + (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_CONDREFOF)) + { + OptOptimizeNamePath (Op, OpInfo->Flags, WalkState, Path, Node); + } /* * 1) Dereference an alias (A name reference that is an alias) Modified: head/sys/contrib/dev/acpica/components/debugger/dbdisply.c ============================================================================== --- head/sys/contrib/dev/acpica/components/debugger/dbdisply.c Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/components/debugger/dbdisply.c Thu May 28 21:19:44 2020 (r361600) @@ -204,6 +204,8 @@ static ACPI_ADR_SPACE_TYPE AcpiGbl_SpaceIdList[] = ACPI_ADR_SPACE_IPMI, ACPI_ADR_SPACE_GPIO, ACPI_ADR_SPACE_GSBUS, + ACPI_ADR_SPACE_PLATFORM_COMM, + ACPI_ADR_SPACE_PLATFORM_RT, ACPI_ADR_SPACE_DATA_TABLE, ACPI_ADR_SPACE_FIXED_HARDWARE }; Modified: head/sys/contrib/dev/acpica/components/utilities/utdecode.c ============================================================================== --- head/sys/contrib/dev/acpica/components/utilities/utdecode.c Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/components/utilities/utdecode.c Thu May 28 21:19:44 2020 (r361600) @@ -214,17 +214,18 @@ const UINT8 AcpiGbl_NsProperties[A const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] = { - "SystemMemory", /* 0x00 */ - "SystemIO", /* 0x01 */ - "PCI_Config", /* 0x02 */ - "EmbeddedControl", /* 0x03 */ - "SMBus", /* 0x04 */ - "SystemCMOS", /* 0x05 */ - "PCIBARTarget", /* 0x06 */ - "IPMI", /* 0x07 */ - "GeneralPurposeIo", /* 0x08 */ - "GenericSerialBus", /* 0x09 */ - "PCC" /* 0x0A */ + "SystemMemory", /* 0x00 */ + "SystemIO", /* 0x01 */ + "PCI_Config", /* 0x02 */ + "EmbeddedControl", /* 0x03 */ + "SMBus", /* 0x04 */ + "SystemCMOS", /* 0x05 */ + "PCIBARTarget", /* 0x06 */ + "IPMI", /* 0x07 */ + "GeneralPurposeIo", /* 0x08 */ + "GenericSerialBus", /* 0x09 */ + "PCC", /* 0x0A */ + "PlatformRtMechanism" /* 0x0B */ }; Modified: head/sys/contrib/dev/acpica/include/acpixf.h ============================================================================== --- head/sys/contrib/dev/acpica/include/acpixf.h Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/include/acpixf.h Thu May 28 21:19:44 2020 (r361600) @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20200430 +#define ACPI_CA_VERSION 0x20200528 #include <contrib/dev/acpica/include/acconfig.h> #include <contrib/dev/acpica/include/actypes.h> Modified: head/sys/contrib/dev/acpica/include/actypes.h ============================================================================== --- head/sys/contrib/dev/acpica/include/actypes.h Thu May 28 21:06:10 2020 (r361599) +++ head/sys/contrib/dev/acpica/include/actypes.h Thu May 28 21:19:44 2020 (r361600) @@ -968,8 +968,9 @@ typedef UINT8 ACPI_ADR_SPACE #define ACPI_ADR_SPACE_GPIO (ACPI_ADR_SPACE_TYPE) 8 #define ACPI_ADR_SPACE_GSBUS (ACPI_ADR_SPACE_TYPE) 9 #define ACPI_ADR_SPACE_PLATFORM_COMM (ACPI_ADR_SPACE_TYPE) 10 +#define ACPI_ADR_SPACE_PLATFORM_RT (ACPI_ADR_SPACE_TYPE) 11 -#define ACPI_NUM_PREDEFINED_REGIONS 11 +#define ACPI_NUM_PREDEFINED_REGIONS 12 /* * Special Address Spaces _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"