Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/external/bsd/acpica/dist VERSION 20200717
details: https://anonhg.NetBSD.org/src/rev/ea581150d40b
branches: trunk
changeset: 974549:ea581150d40b
user: christos <christos%NetBSD.org@localhost>
date: Sun Aug 02 20:23:09 2020 +0000
description:
VERSION 20200717
Submitted by Bob Moore on 17 July, 2020 - 13:35
17 July 2020. Summary of changes for version 20200717:
1) ACPICA kernel-resident subsystem:
Do not increment OperationRegion reference counts for field units.
Recent server firmware has revealed that this reference count can
overflow on large servers that declare many field units (thousands)
under the same OperationRegion. This occurs because each field unit
declaration will add a reference count to the source OperationRegion.
This release solves the reference count overflow for OperationRegion
objects by preventing fieldUnits from incrementing their parent
OperationRegion's reference count.
Replaced one-element arrays with flexible-arrays, which were
introduced in C99.
Restored the readme file containing the directions for generation
of ACPICA from source on MSVC 2017. Updated the file for MSVC 2017.
File is located at: generate/msvc2017/readme.txt
2) iASL Compiler/Disassembler and ACPICA tools:
iASL: Fixed a regression found in version 20200214. Prevent iASL
from emitting an extra byte of garbage data when control methods
declared a single parameter type without using braces. This extra
byte is known to cause a blue screen on the Windows AML interpreter.
iASL: Made a change to allow external declarations to specify the
type of a named object even when some name segments are not defined.
This change allows the following ASL code to compile (When DEV0 is
not defined or not defined yet):
External (\_SB.DEV0.OBJ1, IntObj)
External (\_SB.DEV0, DeviceObj)
iASL: Fixed a problem where method names in "Alias ()" statement
could be misinterpreted. They are now interpreted correctly as
method invocations.
iASL: capture a method parameter count (Within the Method info
segment, as well as the argument node) when using parameter type
lists.
VERSION 20200528
Submitted by Bob Moore on 28 May, 2020 - 13:24
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]
diffstat:
sys/external/bsd/acpica/dist/changes.txt | 102 ++++++++++++-
sys/external/bsd/acpica/dist/compiler/aslexternal.c | 8 +
sys/external/bsd/acpica/dist/compiler/aslkeywords.y | 1 +
sys/external/bsd/acpica/dist/compiler/aslmap.c | 1 +
sys/external/bsd/acpica/dist/compiler/aslmethod.c | 17 ++-
sys/external/bsd/acpica/dist/compiler/asltokens.y | 1 +
sys/external/bsd/acpica/dist/executer/exprep.c | 4 -
sys/external/bsd/acpica/dist/generate/release/build.sh | 13 +-
sys/external/bsd/acpica/dist/generate/unix/Makefile.config | 7 +-
sys/external/bsd/acpica/dist/include/platform/acmsvc.h | 3 +
sys/external/bsd/acpica/dist/utilities/utids.c | 2 +-
11 files changed, 141 insertions(+), 18 deletions(-)
diffs (truncated from 328 to 300 lines):
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/changes.txt
--- a/sys/external/bsd/acpica/dist/changes.txt Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/changes.txt Sun Aug 02 20:23:09 2020 +0000
@@ -1,9 +1,109 @@
----------------------------------------
+17 July 2020. Summary of changes for version 20200717:
+
+This release is available at https://acpica.org/downloads
+
+
+1) ACPICA kernel-resident subsystem:
+
+Do not increment OperationRegion reference counts for field units. Recent
+server firmware has revealed that this reference count can overflow on
+large servers that declare many field units (thousands) under the same
+OperationRegion. This occurs because each field unit declaration will add
+a reference count to the source OperationRegion. This release solves the
+reference count overflow for OperationRegion objects by preventing
+fieldUnits from incrementing their parent OperationRegion's reference
+count.
+
+Replaced one-element arrays with flexible-arrays, which were introduced
+in C99.
+
+Restored the readme file containing the directions for generation of
+ACPICA from source on MSVC 2017. Updated the file for MSVC 2017. File is
+located at: generate/msvc2017/readme.txt
+
+2) iASL Compiler/Disassembler and ACPICA tools:
+
+iASL: Fixed a regression found in version 20200214. Prevent iASL from
+emitting an extra byte of garbage data when control methods declared a
+single parameter type without using braces. This extra byte is known to
+cause a blue screen on the Windows AML interpreter.
+
+iASL: Made a change to allow external declarations to specify the type of
+a named object even when some name segments are not defined.
+This change allows the following ASL code to compile (When DEV0 is not
+defined or not defined yet):
+
+ External (\_SB.DEV0.OBJ1, IntObj)
+ External (\_SB.DEV0, DeviceObj)
+
+iASL: Fixed a problem where method names in "Alias ()" statement could be
+misinterpreted. They are now interpreted correctly as method invocations.
+
+iASL: capture a method parameter count (Within the Method info segment,
+as well as the argument node) when using parameter type lists.
+
+----------------------------------------
+
+
+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:
Cleaned up the coding style of a couple of global variables
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/compiler/aslexternal.c
--- a/sys/external/bsd/acpica/dist/compiler/aslexternal.c Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/compiler/aslexternal.c Sun Aug 02 20:23:09 2020 +0000
@@ -92,6 +92,14 @@
ExternType = AnMapObjTypeToBtype (ExternTypeOp);
+ if (ExternType != ACPI_BTYPE_METHOD)
+ {
+ /*
+ * If this is not a method, it has zero parameters this local variable
+ * is used only for methods
+ */
+ ParamCount = 0;
+ }
/*
* The parser allows optional parameter return types regardless of the
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/compiler/aslkeywords.y
--- a/sys/external/bsd/acpica/dist/compiler/aslkeywords.y Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/compiler/aslkeywords.y Sun Aug 02 20:23:09 2020 +0000
@@ -286,6 +286,7 @@
| 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);}
;
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/compiler/aslmap.c
--- a/sys/external/bsd/acpica/dist/compiler/aslmap.c Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/compiler/aslmap.c Sun Aug 02 20:23:09 2020 +0000
@@ -377,6 +377,7 @@
/* 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),
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/compiler/aslmethod.c
--- a/sys/external/bsd/acpica/dist/compiler/aslmethod.c Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/compiler/aslmethod.c Sun Aug 02 20:23:09 2020 +0000
@@ -198,6 +198,8 @@
{
ActualArgs = MtProcessParameterTypeList (NextType,
MethodInfo->ValidArgTypes);
+ MethodInfo->NumArguments = ActualArgs;
+ ArgNode->Asl.Value.Integer |= ActualArgs;
}
if ((MethodInfo->NumArguments) &&
@@ -563,6 +565,16 @@
UINT8 ParameterCount = 0;
+ if (ParamTypeOp && ParamTypeOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
+ {
+ /* Special case for a single parameter without braces */
+
+ TypeList[ParameterCount] =
+ MtProcessTypeOp (ParamTypeOp);
+
+ return (1);
+ }
+
while (ParamTypeOp)
{
TypeList[ParameterCount] =
@@ -616,7 +628,7 @@
}
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.
@@ -631,6 +643,9 @@
* 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);
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/compiler/asltokens.y
--- a/sys/external/bsd/acpica/dist/compiler/asltokens.y Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/compiler/asltokens.y Sun Aug 02 20:23:09 2020 +0000
@@ -314,6 +314,7 @@
%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
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/executer/exprep.c
--- a/sys/external/bsd/acpica/dist/executer/exprep.c Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/executer/exprep.c Sun Aug 02 20:23:09 2020 +0000
@@ -543,10 +543,6 @@
}
}
- /* An additional reference for the container */
-
- AcpiUtAddReference (ObjDesc->Field.RegionObj);
-
ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
"RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
ObjDesc->Field.StartFieldBitOffset,
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/generate/release/build.sh
--- a/sys/external/bsd/acpica/dist/generate/release/build.sh Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/generate/release/build.sh Sun Aug 02 20:23:09 2020 +0000
@@ -217,7 +217,6 @@
mkdir $TEMP_DIR/generate/unix/acpiexamples
mkdir $TEMP_DIR/generate/unix/acpiexec
mkdir $TEMP_DIR/generate/unix/acpihelp
- mkdir $TEMP_DIR/generate/unix/acpinames
mkdir $TEMP_DIR/generate/unix/acpisrc
mkdir $TEMP_DIR/generate/unix/acpixtract
mkdir $TEMP_DIR/generate/unix/iasl
@@ -264,7 +263,6 @@
cp generate/unix/acpiexamples/Makefile $TEMP_DIR/generate/unix/acpiexamples
cp generate/unix/acpiexec/Makefile $TEMP_DIR/generate/unix/acpiexec
cp generate/unix/acpihelp/Makefile $TEMP_DIR/generate/unix/acpihelp
- cp generate/unix/acpinames/Makefile $TEMP_DIR/generate/unix/acpinames
cp generate/unix/acpisrc/Makefile $TEMP_DIR/generate/unix/acpisrc
cp generate/unix/acpixtract/Makefile $TEMP_DIR/generate/unix/acpixtract
cp generate/unix/iasl/Makefile $TEMP_DIR/generate/unix/iasl
@@ -295,11 +293,13 @@
# Windows-specific activities
#
- # Copy project files for MS Visual Studio 2008 (VC++ 9.0)
+ # Copy project files for MS Visual Studio 2017
- mkdir $TEMP_DIR/generate/msvc9
- cp -r generate/msvc9/*.sln $TEMP_DIR/generate/msvc9/
- cp -r generate/msvc9/*.vcproj $TEMP_DIR/generate/msvc9/
+ mkdir $TEMP_DIR/generate/msvc2017
+ cp -r generate/msvc2017/*.sln $TEMP_DIR/generate/msvc2017/
+ cp -r generate/msvc2017/*.dsp $TEMP_DIR/generate/msvc2017/
+ cp -r generate/msvc2017/*.dsw $TEMP_DIR/generate/msvc2017/
+ cp -r generate/msvc2017/*.vcxproj $TEMP_DIR/generate/msvc2017/
build_windows_package
fi
@@ -412,7 +412,6 @@
cp libraries/acpidump.exe $TEMP_DIR
cp libraries/acpiexec.exe $TEMP_DIR
cp libraries/acpihelp.exe $TEMP_DIR
- cp libraries/acpinames.exe $TEMP_DIR
cp libraries/acpisrc.exe $TEMP_DIR
cp libraries/acpixtract.exe $TEMP_DIR
cp libraries/iasl.exe $TEMP_DIR
diff -r c903d8594e7b -r ea581150d40b sys/external/bsd/acpica/dist/generate/unix/Makefile.config
--- a/sys/external/bsd/acpica/dist/generate/unix/Makefile.config Sun Aug 02 20:13:05 2020 +0000
+++ b/sys/external/bsd/acpica/dist/generate/unix/Makefile.config Sun Aug 02 20:23:09 2020 +0000
@@ -2,8 +2,8 @@
# Makefile.config
#
# Common configuration and setup file to generate the ACPICA tools and
-# utilities: the iASL compiler, acpiexec, acpihelp, acpinames, acpisrc,
-# acpixtract, acpibin.
+# utilities: the iASL compiler, acpiexec, acpihelp, acpisrc, acpixtract,
+# acpibin.
#
# This file is included by the individual makefiles for each tool.
#
@@ -33,7 +33,7 @@
# not be necessary to change it.
#
.SUFFIXES :
-PROGS = acpibin acpidump acpiexamples acpiexec acpihelp acpinames acpisrc acpixtract iasl
+PROGS = acpibin acpidump acpiexamples acpiexec acpihelp acpisrc acpixtract iasl
ACPI_HOST ?= _CYGWIN
CC ?= gcc
@@ -129,7 +129,6 @@
ACPIEXAMPLES = $(ACPICA_TOOLS)/examples
ACPIEXEC = $(ACPICA_TOOLS)/acpiexec
ACPIHELP = $(ACPICA_TOOLS)/acpihelp
-ACPINAMES = $(ACPICA_TOOLS)/acpinames
Home |
Main Index |
Thread Index |
Old Index