MFV: r361597
Import ACPICA 20200528.
This commit is contained in:
commit
0b229c80ae
@ -1,9 +1,62 @@
|
||||
----------------------------------------
|
||||
|
||||
|
||||
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
|
||||
|
@ -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 */
|
||||
|
@ -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);}
|
||||
;
|
||||
|
||||
|
@ -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),
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -214,17 +214,18 @@ const UINT8 AcpiGbl_NsProperties[ACPI_NUM_NS_TYPES] =
|
||||
|
||||
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 */
|
||||
};
|
||||
|
||||
|
||||
|
@ -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>
|
||||
|
@ -968,8 +968,9 @@ typedef UINT8 ACPI_ADR_SPACE_TYPE;
|
||||
#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
|
||||
|
Loading…
x
Reference in New Issue
Block a user