summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2019-02-20 23:04:28 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2019-02-20 23:04:28 +0000
commit933b0124ad04366156cb4793d2530ad791d88ead (patch)
tree6d20df0ad987596d76c7b0f8e58ef8e8e25b4b69 /source
parentca9862327327526f102b9370cc74b2a9e4641b0d (diff)
Notes
Diffstat (limited to 'source')
-rw-r--r--source/common/ahpredef.c7
-rw-r--r--source/common/ahuuids.c2
-rw-r--r--source/common/dmextern.c2
-rw-r--r--source/common/dmrestag.c2
-rw-r--r--source/common/dmtable.c3
-rw-r--r--source/common/dmtbdump1.c21
-rw-r--r--source/common/dmtbdump3.c5
-rw-r--r--source/common/dmtbinfo1.c17
-rw-r--r--source/common/dmtbinfo2.c24
-rw-r--r--source/common/dmtbinfo3.c14
-rw-r--r--source/compiler/aslcompile.c2
-rw-r--r--source/compiler/aslcompiler.h4
-rw-r--r--source/compiler/aslcompiler.l9
-rw-r--r--source/compiler/aslload.c6
-rw-r--r--source/compiler/aslmessages.c8
-rw-r--r--source/compiler/aslmessages.h6
-rw-r--r--source/compiler/asloperands.c10
-rw-r--r--source/compiler/aslopt.c2
-rw-r--r--source/compiler/aslpredef.c2
-rw-r--r--source/compiler/aslprintf.c2
-rw-r--r--source/compiler/aslresources.y4
-rw-r--r--source/compiler/aslsupport.l2
-rw-r--r--source/compiler/aslxref.c118
-rw-r--r--source/compiler/cvcompiler.c10
-rw-r--r--source/compiler/cvparser.c6
-rw-r--r--source/compiler/dtexpress.c2
-rw-r--r--source/compiler/dtio.c2
-rw-r--r--source/compiler/dttable1.c24
-rw-r--r--source/compiler/dttable2.c5
-rw-r--r--source/compiler/dttemplate.h65
-rw-r--r--source/components/debugger/dbdisply.c4
-rw-r--r--source/components/debugger/dbexec.c4
-rw-r--r--source/components/debugger/dbnames.c2
-rw-r--r--source/components/debugger/dbobject.c2
-rw-r--r--source/components/debugger/dbtest.c163
-rw-r--r--source/components/disassembler/dmbuffer.c2
-rw-r--r--source/components/disassembler/dmcstyle.c4
-rw-r--r--source/components/disassembler/dmnames.c2
-rw-r--r--source/components/disassembler/dmresrc.c4
-rw-r--r--source/components/disassembler/dmresrcs.c2
-rw-r--r--source/components/dispatcher/dsfield.c6
-rw-r--r--source/components/dispatcher/dsopcode.c13
-rw-r--r--source/components/dispatcher/dswload2.c2
-rw-r--r--source/components/events/evgpe.c2
-rw-r--r--source/components/events/evregion.c2
-rw-r--r--source/components/events/evrgnini.c18
-rw-r--r--source/components/events/evxfgpe.c4
-rw-r--r--source/components/executer/exconvrt.c2
-rw-r--r--source/components/executer/exfield.c62
-rw-r--r--source/components/executer/exserial.c2
-rw-r--r--source/components/executer/exutils.c2
-rw-r--r--source/components/namespace/nsload.c2
-rw-r--r--source/components/namespace/nsparse.c70
-rw-r--r--source/components/namespace/nsutils.c2
-rw-r--r--source/components/parser/psloop.c195
-rw-r--r--source/components/parser/psparse.c4
-rw-r--r--source/components/resources/rsdumpinfo.c14
-rw-r--r--source/components/resources/rsirq.c8
-rw-r--r--source/components/resources/rsserial.c10
-rw-r--r--source/components/tables/tbfadt.c2
-rw-r--r--source/components/tables/tbxface.c4
-rw-r--r--source/components/tables/tbxfload.c26
-rw-r--r--source/components/utilities/utclib.c4
-rw-r--r--source/components/utilities/utdecode.c5
-rw-r--r--source/components/utilities/utdelete.c5
-rw-r--r--source/components/utilities/uterror.c9
-rw-r--r--source/include/acclib.h2
-rw-r--r--source/include/acconfig.h2
-rw-r--r--source/include/acdebug.h3
-rw-r--r--source/include/acdisasm.h2
-rw-r--r--source/include/acexcep.h2
-rw-r--r--source/include/aclocal.h2
-rw-r--r--source/include/acmacros.h2
-rw-r--r--source/include/acobject.h1
-rw-r--r--source/include/acpixf.h10
-rw-r--r--source/include/acpredef.h15
-rw-r--r--source/include/acrestyp.h14
-rw-r--r--source/include/actbinfo.h7
-rw-r--r--source/include/actbl1.h20
-rw-r--r--source/include/actbl2.h15
-rw-r--r--source/include/actbl3.h23
-rw-r--r--source/include/actypes.h3
-rw-r--r--source/include/platform/acefi.h2
-rw-r--r--source/tools/acpiexec/aeinstall.c1
-rw-r--r--source/tools/acpiexec/aemain.c11
-rw-r--r--source/tools/acpiexec/aeregion.c19
-rw-r--r--source/tools/acpihelp/ahdecode.c2
-rw-r--r--source/tools/acpinames/anmain.c2
-rw-r--r--source/tools/acpisrc/astable.c3
89 files changed, 668 insertions, 545 deletions
diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c
index afa71a1ff2fa..58b2d6627c8d 100644
--- a/source/common/ahpredef.c
+++ b/source/common/ahpredef.c
@@ -305,6 +305,11 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_MSM", "Memory Set Monitoring", "Sets bandwidth monitoring parameters for a memory device"),
AH_PREDEF ("_MTL", "Minimum Throttle Limit", "Returns the minimum throttle limit for a thermal zone"),
AH_PREDEF ("_MTP", "Memory Type", "Resource Descriptor field"),
+ AH_PREDEF ("_NBS", "NVDIMM Boot Status", "Returns information about NVDIMM device’s status at boot time"),
+ AH_PREDEF ("_NCH", "NVDIMM Current Health Information", "Returns current health information of the NVDIMM device"),
+ AH_PREDEF ("_NIC", "NVDIMM Health Error Injection Capabilities", "Returns health error injection capabilities that are supported by the platform"),
+ AH_PREDEF ("_NIG", "NVDIMM Inject Health Error Status","Returns currently active health errors and their error attributes that are injected by _NIH"),
+ AH_PREDEF ("_NIH", "NVDIMM Inject/Clear Health Errors", "Returns the status of injecting or clearing Health Errors"),
AH_PREDEF ("_NTT", "Notification Temperature Threshold", "Returns a threshold for device temperature change that requires platform notification"),
AH_PREDEF ("_OFF", "Power Off", "Sets a power resource to the off state"),
AH_PREDEF ("_ON_", "Power On", "Sets a power resource to the on state"),
@@ -393,7 +398,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_SDD", "Set Device Data", "Sets data for a SATA device"),
AH_PREDEF ("_SEG", "PCI Segment", "Returns a device's PCI Segment Group number"),
AH_PREDEF ("_SHL", "Set Hardware Limit", "Sets the hardware limit enforced by the Power Meter"),
- AH_PREDEF ("_SHR", "Sharable", "Interrupt share status, Resource Descriptor field"),
+ AH_PREDEF ("_SHR", "Shareable", "Interrupt share status, Resource Descriptor field"),
AH_PREDEF ("_SI_", "System Indicators", "Predefined scope"),
AH_PREDEF ("_SIZ", "Size", "DMA transfer size, Resource Descriptor field"),
AH_PREDEF ("_SLI", "System Locality Information", "Returns a list of NUMA system localities"),
diff --git a/source/common/ahuuids.c b/source/common/ahuuids.c
index 0d0a359052ec..c9a390ba9036 100644
--- a/source/common/ahuuids.c
+++ b/source/common/ahuuids.c
@@ -226,7 +226,7 @@ AcpiAhMatchUuid (
for (Info = Gbl_AcpiUuids; Info->Description; Info++)
{
- /* Null string means desciption is a UUID class */
+ /* Null string means description is a UUID class */
if (!Info->String)
{
diff --git a/source/common/dmextern.c b/source/common/dmextern.c
index 629105fb717e..8ac2c60cc21f 100644
--- a/source/common/dmextern.c
+++ b/source/common/dmextern.c
@@ -1216,7 +1216,7 @@ AcpiDmCreateSubobjectForExternal (
*
* DESCRIPTION: Add one external to the namespace by resolvign the external
* (by performing a namespace lookup) and annotating the resulting
- * namespace node with the approperiate information if the type
+ * namespace node with the appropriate information if the type
* is ACPI_TYPE_REGION or ACPI_TYPE_METHOD.
*
******************************************************************************/
diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c
index f5789847409a..c33b0497b67e 100644
--- a/source/common/dmrestag.c
+++ b/source/common/dmrestag.c
@@ -906,7 +906,7 @@ AcpiDmUpdateResourceName (
*
* PARAMETERS: BitIndex - Index into the resource descriptor
* Resource - Pointer to the raw resource data
- * ResourceIndex - Index correspoinding to the resource type
+ * ResourceIndex - Index corresponding to the resource type
*
* RETURN: Pointer to the resource tag (ACPI_NAME). NULL if no match.
*
diff --git a/source/common/dmtable.c b/source/common/dmtable.c
index f0fb2aa4445b..e51ff424f1b4 100644
--- a/source/common/dmtable.c
+++ b/source/common/dmtable.c
@@ -320,7 +320,7 @@ static const char *AcpiDmHestNotifySubnames[] =
static const char *AcpiDmHmatSubnames[] =
{
- "Memory Subystem Address Range",
+ "Memory Proximity Domain Attributes",
"System Locality Latency and Bandwidth Information",
"Memory Side Cache Information",
"Unknown Structure Type" /* Reserved */
@@ -400,6 +400,7 @@ static const char *AcpiDmSratSubnames[] =
"Processor Local x2APIC Affinity",
"GICC Affinity",
"GIC ITS Affinity", /* Acpi 6.2 */
+ "Generic Initiator Affinity", /* Acpi 6.3 */
"Unknown Subtable Type" /* Reserved */
};
diff --git a/source/common/dmtbdump1.c b/source/common/dmtbdump1.c
index e55d64960cb1..c363ac8d5fad 100644
--- a/source/common/dmtbdump1.c
+++ b/source/common/dmtbdump1.c
@@ -1106,9 +1106,26 @@ AcpiDmDumpGtdt (
return;
}
- /* Subtables */
+ /* Rev 3 fields */
Subtable = ACPI_ADD_PTR (ACPI_GTDT_HEADER, Table, Offset);
+
+ if (Table->Revision > 2)
+ {
+ SubtableLength = sizeof (ACPI_GTDT_EL2);
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
+ SubtableLength, AcpiDmTableInfoGtdtEl2);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset += SubtableLength;
+ }
+
+ Subtable = ACPI_ADD_PTR (ACPI_GTDT_HEADER, Table, Offset);
+
+ /* Subtables */
+
while (Offset < Table->Length)
{
/* Common subtable header */
@@ -1406,7 +1423,7 @@ AcpiDmDumpHmat (
case ACPI_HMAT_TYPE_ADDRESS_RANGE:
InfoTable = AcpiDmTableInfoHmat0;
- Length = sizeof (ACPI_HMAT_ADDRESS_RANGE);
+ Length = sizeof (ACPI_HMAT_PROXIMITY_DOMAIN);
break;
case ACPI_HMAT_TYPE_LOCALITY:
diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c
index f0a8751e6dc5..0b9863cce596 100644
--- a/source/common/dmtbdump3.c
+++ b/source/common/dmtbdump3.c
@@ -333,6 +333,11 @@ AcpiDmDumpSrat (
InfoTable = AcpiDmTableInfoSrat4;
break;
+ case ACPI_SRAT_TYPE_GENERIC_AFFINITY:
+
+ InfoTable = AcpiDmTableInfoSrat5;
+ break;
+
default:
AcpiOsPrintf ("\n**** Unknown SRAT subtable type 0x%X\n",
Subtable->Type);
diff --git a/source/common/dmtbinfo1.c b/source/common/dmtbinfo1.c
index 70013701f040..7d7155d37670 100644
--- a/source/common/dmtbinfo1.c
+++ b/source/common/dmtbinfo1.c
@@ -814,6 +814,15 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[] =
ACPI_DMT_TERMINATOR
};
+/* GDTD EL2 timer info. This table is appended to AcpiDmTableInfoGtdt for rev 3 and later */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[] =
+{
+ {ACPI_DMT_UINT32, ACPI_GTDT_EL2_OFFSET (VirtualEL2TimerGsiv), "Virtual EL2 Timer GSIV", 0},
+ {ACPI_DMT_UINT32, ACPI_GTDT_EL2_OFFSET (VirtualEL2TimerFlags), "Virtual EL2 Timer Flags", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/* GTDT Subtable header (one per Subtable) */
ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[] =
@@ -1105,20 +1114,18 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoHmatHdr[] =
/* HMAT subtables */
-/* 0x00: Memory Subsystem Address Range */
+/* 0x00: Memory proximity domain attributes */
ACPI_DMTABLE_INFO AcpiDmTableInfoHmat0[] =
{
{ACPI_DMT_UINT16, ACPI_HMAT0_OFFSET (Flags), "Flags (decoded below)", 0},
{ACPI_DMT_FLAG0, ACPI_HMAT0_FLAG_OFFSET (Flags,0), "Processor Proximity Domain Valid", 0},
- {ACPI_DMT_FLAG1, ACPI_HMAT0_FLAG_OFFSET (Flags,0), "Memory Proximity Domain Valid", 0},
- {ACPI_DMT_FLAG2, ACPI_HMAT0_FLAG_OFFSET (Flags,0), "Reservation Hint", 0},
{ACPI_DMT_UINT16, ACPI_HMAT0_OFFSET (Reserved1), "Reserved1", 0},
{ACPI_DMT_UINT32, ACPI_HMAT0_OFFSET (ProcessorPD), "Processor Proximity Domain", 0},
{ACPI_DMT_UINT32, ACPI_HMAT0_OFFSET (MemoryPD), "Memory Proximity Domain", 0},
{ACPI_DMT_UINT32, ACPI_HMAT0_OFFSET (Reserved2), "Reserved2", 0},
- {ACPI_DMT_UINT64, ACPI_HMAT0_OFFSET (PhysicalAddressBase), "Physical Address Range Base", 0},
- {ACPI_DMT_UINT64, ACPI_HMAT0_OFFSET (PhysicalAddressLength), "Physical Address Range Size", 0},
+ {ACPI_DMT_UINT64, ACPI_HMAT0_OFFSET (Reserved3), "Reserved3", 0},
+ {ACPI_DMT_UINT64, ACPI_HMAT0_OFFSET (Reserved4), "Reserved4", 0},
ACPI_DMT_TERMINATOR
};
diff --git a/source/common/dmtbinfo2.c b/source/common/dmtbinfo2.c
index 6727f0b222af..1371af7d4888 100644
--- a/source/common/dmtbinfo2.c
+++ b/source/common/dmtbinfo2.c
@@ -535,6 +535,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[] =
{ACPI_DMT_UINT8, ACPI_MADT0_OFFSET (Id), "Local Apic ID", 0},
{ACPI_DMT_UINT32, ACPI_MADT0_OFFSET (LapicFlags), "Flags (decoded below)", DT_FLAG},
{ACPI_DMT_FLAG0, ACPI_MADT0_FLAG_OFFSET (LapicFlags,0), "Processor Enabled", 0},
+ {ACPI_DMT_FLAG1, ACPI_MADT0_FLAG_OFFSET (LapicFlags,0), "Runtime Online Capable", 0},
ACPI_DMT_TERMINATOR
};
@@ -683,7 +684,8 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[] =
{ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicrBaseAddress), "Redistributor Base Address", 0},
{ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ArmMpidr), "ARM MPIDR", 0},
{ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0},
- {ACPI_DMT_UINT24, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0},
ACPI_DMT_TERMINATOR
};
@@ -946,7 +948,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[] =
{ACPI_DMT_FLAG1, ACPI_NFIT0_FLAG_OFFSET (Flags,0), "Proximity Domain Valid", 0},
{ACPI_DMT_UINT32, ACPI_NFIT0_OFFSET (Reserved), "Reserved", 0},
{ACPI_DMT_UINT32, ACPI_NFIT0_OFFSET (ProximityDomain), "Proximity Domain", 0},
- {ACPI_DMT_UUID, ACPI_NFIT0_OFFSET (RangeGuid[0]), "Address Range GUID", 0},
+ {ACPI_DMT_UUID, ACPI_NFIT0_OFFSET (RangeGuid[0]), "Region Type GUID", 0},
{ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (Address), "Address Range Base", 0},
{ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (Length), "Address Range Length", 0},
{ACPI_DMT_UINT64, ACPI_NFIT0_OFFSET (MemoryMapping), "Memory Map Attribute", 0},
@@ -1246,6 +1248,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[] =
{ACPI_DMT_UINT8, ACPI_PDTT0_OFFSET (Flags), "Flags (Decoded Below)", DT_FLAG},
{ACPI_DMT_FLAG0, ACPI_PDTT0_FLAG_OFFSET (Flags,0), "Runtime Trigger", 0},
{ACPI_DMT_FLAG1, ACPI_PDTT0_FLAG_OFFSET (Flags,0), "Wait for Completion", 0},
+ {ACPI_DMT_FLAG2, ACPI_PDTT0_FLAG_OFFSET (Flags,0), "Trigger Order", 0},
ACPI_DMT_TERMINATOR
};
@@ -1348,6 +1351,9 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0[] =
{ACPI_DMT_UINT32, ACPI_PPTT0_OFFSET (Flags), "Flags (decoded below)", 0},
{ACPI_DMT_FLAG0, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "Physical package", 0},
{ACPI_DMT_FLAG1, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "ACPI Processor ID valid", 0},
+ {ACPI_DMT_FLAG2, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "Processor is a thread", 0},
+ {ACPI_DMT_FLAG3, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "Node is a leaf", 0},
+ {ACPI_DMT_FLAG4, ACPI_PPTT0_FLAG_OFFSET (Flags,0), "Identical Implementation", 0},
{ACPI_DMT_UINT32, ACPI_PPTT0_OFFSET (Parent), "Parent", 0},
{ACPI_DMT_UINT32, ACPI_PPTT0_OFFSET (AcpiProcessorId), "ACPI Processor ID", 0},
{ACPI_DMT_UINT32, ACPI_PPTT0_OFFSET (NumberOfPrivResources), "Private Resource Number", 0},
@@ -1390,12 +1396,12 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[] =
ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[] =
{
{ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (Reserved), "Reserved", 0},
- {ACPI_DMT_UINT32, ACPI_PPTT2_OFFSET (VendorId), "VENDOR_ID", 0},
- {ACPI_DMT_UINT64, ACPI_PPTT2_OFFSET (Level1Id), "LEVEL_1_ID", 0},
- {ACPI_DMT_UINT64, ACPI_PPTT2_OFFSET (Level2Id), "LEVEL_2_ID", 0},
- {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (MajorRev), "MAJOR_REV", 0},
- {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (MinorRev), "MINOR_REV", 0},
- {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (SpinRev), "SPIN_REV", 0},
+ {ACPI_DMT_UINT32, ACPI_PPTT2_OFFSET (VendorId), "Vendor ID", 0},
+ {ACPI_DMT_UINT64, ACPI_PPTT2_OFFSET (Level1Id), "Level1 ID", 0},
+ {ACPI_DMT_UINT64, ACPI_PPTT2_OFFSET (Level2Id), "Level2 ID", 0},
+ {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (MajorRev), "Major revision", 0},
+ {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (MinorRev), "Minor revision", 0},
+ {ACPI_DMT_UINT16, ACPI_PPTT2_OFFSET (SpinRev), "Spin revision", 0},
ACPI_DMT_TERMINATOR
};
@@ -1473,7 +1479,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[] =
/*******************************************************************************
*
- * SDEI - Software Delegated Execption Interface Descriptor Table
+ * SDEI - Software Delegated Exception Interface Descriptor Table
*
******************************************************************************/
diff --git a/source/common/dmtbinfo3.c b/source/common/dmtbinfo3.c
index e810a2969d9a..d143bc8772e2 100644
--- a/source/common/dmtbinfo3.c
+++ b/source/common/dmtbinfo3.c
@@ -368,6 +368,20 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[] =
ACPI_DMT_TERMINATOR
};
+/* 5: Generic Initiator Affinity Structure (ACPI 6.3) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[] =
+{
+ {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (Reserved), "Reserved1", 0},
+ {ACPI_DMT_UINT8, ACPI_SRAT5_OFFSET (DeviceHandleType), "Device Handle Type", 0},
+ {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (ProximityDomain), "Proximity Domain", 0},
+ {ACPI_DMT_BUF16, ACPI_SRAT5_OFFSET (DeviceHandle), "Device Handle", 0},
+ {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},
+ {ACPI_DMT_FLAG0, ACPI_SRAT5_FLAG_OFFSET (Flags,0), "Enabled", 0},
+ {ACPI_DMT_UINT32, ACPI_SRAT5_OFFSET (Reserved1), "Reserved2", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/*******************************************************************************
*
diff --git a/source/compiler/aslcompile.c b/source/compiler/aslcompile.c
index 5acc0d123282..c46b28da16b3 100644
--- a/source/compiler/aslcompile.c
+++ b/source/compiler/aslcompile.c
@@ -494,6 +494,7 @@ CmDoCompile (
UtEndEvent (Event);
UtEndEvent (FullCompile);
+ AslCheckExpectedExceptions ();
CmCleanupAndExit ();
return (0);
@@ -811,7 +812,6 @@ CmCleanupAndExit (
BOOLEAN DeleteAmlFile = FALSE;
- AslCheckExpectedExceptions ();
AePrintErrorLog (ASL_FILE_STDERR);
if (AslGbl_DebugFlag)
{
diff --git a/source/compiler/aslcompiler.h b/source/compiler/aslcompiler.h
index 40f3b102fa2f..efcee77b519d 100644
--- a/source/compiler/aslcompiler.h
+++ b/source/compiler/aslcompiler.h
@@ -702,7 +702,7 @@ OpnDoPackage (
/*
- * aslopt - optmization
+ * aslopt - optimization
*/
void
OptOptimizeNamePath (
@@ -1153,7 +1153,7 @@ OtXrefWalkPart1 (
/*
- * aslutils - common compiler utilites
+ * aslutils - common compiler utilities
*/
void
DbgPrint (
diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l
index 18e93064e947..72fbbef380c4 100644
--- a/source/compiler/aslcompiler.l
+++ b/source/compiler/aslcompiler.l
@@ -692,7 +692,7 @@ NamePathTail [.]{NameSeg}
"IPMI" { count (0); return (PARSEOP_REGIONSPACE_IPMI); }
"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 */
+"PlatformCommChannel" { count (0); return (PARSEOP_REGIONSPACE_PCC); } /* ACPI 5.0 */
"FFixedHW" { count (0); return (PARSEOP_REGIONSPACE_FFIXEDHW); }
/* ResourceTypeKeyword: Resource Usage - Resource Descriptors */
@@ -816,6 +816,13 @@ NamePathTail [.]{NameSeg}
s=UtLocalCacheCalloc (ACPI_NAME_SIZE + 1);
if (strcmp (AslCompilertext, "\\"))
{
+ /*
+ * According to the ACPI specification,
+ * NameSegments must have length of 4. If
+ * the NameSegment has length less than 4,
+ * they are padded with underscores to meet
+ * the required length.
+ */
strcpy (s, "____");
AcpiUtStrupr (AslCompilertext);
}
diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c
index 184f69eb7253..c910358d7efb 100644
--- a/source/compiler/aslload.c
+++ b/source/compiler/aslload.c
@@ -331,8 +331,8 @@ LdLoadFieldElements (
* The name already exists in this scope
* But continue processing the elements
*/
- AslDualParseOpError (ASL_WARNING, ASL_MSG_EXTERN_COLLISION, Child,
- Child->Asl.Value.String, ASL_MSG_EXTERN_FOUND_HERE, Node->Op,
+ AslDualParseOpError (ASL_WARNING, ASL_MSG_NAME_EXISTS, Child,
+ Child->Asl.Value.String, ASL_MSG_FOUND_HERE, Node->Op,
Node->Op->Asl.ExternalName);
}
}
@@ -575,7 +575,7 @@ LdNamespace1Begin (
if (Status == AE_NOT_FOUND)
{
/*
- * This is either a foward reference or the object truly
+ * This is either a forward reference or the object truly
* does not exist. The two cases can only be differentiated
* during the cross-reference stage later. Mark the Op/Name
* as not-found for now to indicate the need for further
diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c
index b06ef9374b6c..07e9848233bc 100644
--- a/source/compiler/aslmessages.c
+++ b/source/compiler/aslmessages.c
@@ -353,15 +353,17 @@ const char *AslCompilerMsgs [] =
/* ASL_MSG_NULL_RESOURCE_TEMPLATE */ "Empty Resource Template (END_TAG only)",
/* ASL_MSG_FOUND_HERE */ "Original name creation/declaration below: ",
/* ASL_MSG_ILLEGAL_RECURSION */ "Illegal recursive call to method that creates named objects",
-/* ASL_MSG_EXTERN_COLLISION */ "A name cannot be defined and declared external in the same table",
-/* ASL_MSG_FOUND_HERE_EXTERN */ "Remove one of the declarations indicated above or below:",
+/* ASL_MSG_PLACE_HOLDER_00 */ "", /* TODO: fill in this slot with a new error message */
+/* ASL_MSG_PLACE_HOLDER_01 */ "", /* TODO: fill in this slot with a new error message */
/* ASL_MSG_OEM_TABLE_ID */ "Invalid OEM Table ID",
/* ASL_MSG_OEM_ID */ "Invalid OEM ID",
/* ASL_MSG_UNLOAD */ "Unload is not supported by all operating systems",
/* ASL_MSG_OFFSET */ "Unnecessary/redundant use of Offset operator",
/* ASL_MSG_LONG_SLEEP */ "Very long Sleep, greater than 1 second",
/* ASL_MSG_PREFIX_NOT_EXIST */ "One or more prefix Scopes do not exist",
-/* ASL_MSG_NAMEPATH_NOT_EXIST */ "One or more objects within the Pathname do not exist"
+/* ASL_MSG_NAMEPATH_NOT_EXIST */ "One or more objects within the Pathname do not exist",
+/* ASL_MSG_REGION_LENGTH */ "Operation Region declared with zero length",
+/* ASL_MSG_TEMPORARY_OBJECT */ "Object is created temporarily in another method and cannot be accessed"
};
/* Table compiler */
diff --git a/source/compiler/aslmessages.h b/source/compiler/aslmessages.h
index d2d26b6e9498..817e192e02cd 100644
--- a/source/compiler/aslmessages.h
+++ b/source/compiler/aslmessages.h
@@ -355,8 +355,8 @@ typedef enum
ASL_MSG_NULL_RESOURCE_TEMPLATE,
ASL_MSG_FOUND_HERE,
ASL_MSG_ILLEGAL_RECURSION,
- ASL_MSG_EXTERN_COLLISION,
- ASL_MSG_EXTERN_FOUND_HERE,
+ ASL_MSG_PLACE_HOLDER_00,
+ ASL_MSG_PLACE_HOLDER_01,
ASL_MSG_OEM_TABLE_ID,
ASL_MSG_OEM_ID,
ASL_MSG_UNLOAD,
@@ -364,6 +364,8 @@ typedef enum
ASL_MSG_LONG_SLEEP,
ASL_MSG_PREFIX_NOT_EXIST,
ASL_MSG_NAMEPATH_NOT_EXIST,
+ ASL_MSG_REGION_LENGTH,
+ ASL_MSG_TEMPORARY_OBJECT,
/* These messages are used by the Data Table compiler only */
diff --git a/source/compiler/asloperands.c b/source/compiler/asloperands.c
index a4781ed4335d..172f347063bc 100644
--- a/source/compiler/asloperands.c
+++ b/source/compiler/asloperands.c
@@ -657,6 +657,7 @@ OpnDoRegion (
ACPI_PARSE_OBJECT *Op)
{
ACPI_PARSE_OBJECT *Next;
+ ACPI_ADR_SPACE_TYPE SpaceId;
/* Opcode is parent node */
@@ -664,9 +665,10 @@ OpnDoRegion (
Next = Op->Asl.Child;
- /* Second child is the space ID*/
+ /* Second child is the space ID */
Next = Next->Asl.Next;
+ SpaceId = (ACPI_ADR_SPACE_TYPE) Next->Common.Value.Integer;
/* Third child is the region offset */
@@ -677,7 +679,13 @@ OpnDoRegion (
Next = Next->Asl.Next;
if (Next->Asl.ParseOpcode == PARSEOP_INTEGER)
{
+ /* Check for zero length */
+
Op->Asl.Value.Integer = Next->Asl.Value.Integer;
+ if (!Op->Asl.Value.Integer && (SpaceId < ACPI_NUM_PREDEFINED_REGIONS))
+ {
+ AslError (ASL_ERROR, ASL_MSG_REGION_LENGTH, Op, NULL);
+ }
}
else
{
diff --git a/source/compiler/aslopt.c b/source/compiler/aslopt.c
index 0d584717a3a7..1b0c4d338a6c 100644
--- a/source/compiler/aslopt.c
+++ b/source/compiler/aslopt.c
@@ -814,7 +814,7 @@ OptOptimizeNamePath (
ACPI_FREE (ExternalNameString);
/*
- * Attempt an optmization depending on the type of namepath
+ * Attempt an optimization depending on the type of namepath
*/
if (Flags & (AML_NAMED | AML_CREATE))
{
diff --git a/source/compiler/aslpredef.c b/source/compiler/aslpredef.c
index fa1da4d99c17..ab29105ab6f2 100644
--- a/source/compiler/aslpredef.c
+++ b/source/compiler/aslpredef.c
@@ -449,7 +449,7 @@ ApCheckPredefinedReturnValue (
* DESCRIPTION: Check for a predefined name for a static object (created via
* the ASL Name operator). If it is a predefined ACPI name, ensure
* that the name does not require any arguments (which would
- * require a control method implemenation of the name), and that
+ * require a control method implementation of the name), and that
* the type of the object is one of the expected types for the
* predefined name.
*
diff --git a/source/compiler/aslprintf.c b/source/compiler/aslprintf.c
index b34e9adc62d0..8121ea0023dc 100644
--- a/source/compiler/aslprintf.c
+++ b/source/compiler/aslprintf.c
@@ -239,7 +239,7 @@ OpcDoFprintf (
* RETURN: None
*
* DESCRIPTION: Convert printf macro to a Store AML operation. The printf
- * macro parse tree is layed out as follows:
+ * macro parse tree is laid out as follows:
*
* Op - printf parse op
* Op->Child - Format string
diff --git a/source/compiler/aslresources.y b/source/compiler/aslresources.y
index 049d0a52ba02..1caff20c6cec 100644
--- a/source/compiler/aslresources.y
+++ b/source/compiler/aslresources.y
@@ -866,7 +866,7 @@ UartSerialBusTerm
OptionalBitsPerByte /* 05: BitsPerByte */
OptionalStopBits /* 06: StopBits */
',' ByteConstExpr /* 08: LinesInUse */
- OptionalEndian /* 09: Endianess */
+ OptionalEndian /* 09: Endianness */
OptionalParityType /* 10: Parity */
OptionalFlowControl /* 11: FlowControl */
',' WordConstExpr /* 13: Rx BufferSize */
@@ -891,7 +891,7 @@ UartSerialBusTermV2
OptionalBitsPerByte /* 05: BitsPerByte */
OptionalStopBits /* 06: StopBits */
',' ByteConstExpr /* 08: LinesInUse */
- OptionalEndian /* 09: Endianess */
+ OptionalEndian /* 09: Endianness */
OptionalParityType /* 10: Parity */
OptionalFlowControl /* 11: FlowControl */
',' WordConstExpr /* 13: Rx BufferSize */
diff --git a/source/compiler/aslsupport.l b/source/compiler/aslsupport.l
index 76993662a7c2..5cac84dc6df8 100644
--- a/source/compiler/aslsupport.l
+++ b/source/compiler/aslsupport.l
@@ -610,7 +610,7 @@ loop:
/*
* Check for nested comment -- can help catch cases where a previous
- * comment was accidently left unterminated
+ * comment was accidentally left unterminated
*/
if ((c1 == '/') && (c == '*'))
{
diff --git a/source/compiler/aslxref.c b/source/compiler/aslxref.c
index 87a2df28e651..b3067feb7c4e 100644
--- a/source/compiler/aslxref.c
+++ b/source/compiler/aslxref.c
@@ -174,6 +174,12 @@ XfNamespaceLocateEnd (
UINT32 Level,
void *Context);
+static BOOLEAN
+XfValidateCrossReference (
+ ACPI_PARSE_OBJECT *Op,
+ const ACPI_OPCODE_INFO *OpInfo,
+ ACPI_NAMESPACE_NODE *Node);
+
static ACPI_PARSE_OBJECT *
XfGetParentMethod (
ACPI_PARSE_OBJECT *Op);
@@ -408,6 +414,7 @@ XfGetParentMethod (
return (NULL); /* No parent method found */
}
+
/*******************************************************************************
*
* FUNCTION: XfNamespaceLocateBegin
@@ -488,7 +495,7 @@ XfNamespaceLocateBegin (
Node->ArgCount = (UINT8)
(((UINT8) NextOp->Asl.Value.Integer) & 0x07);
- /* We will track all posible ArgXs */
+ /* We will track all possible ArgXs */
for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++)
{
@@ -776,6 +783,15 @@ XfNamespaceLocateBegin (
return_ACPI_STATUS (Status);
}
+ /* Check for an attempt to access an object in another method */
+
+ if (!XfValidateCrossReference (Op, OpInfo, Node))
+ {
+ AslError (ASL_ERROR, ASL_MSG_TEMPORARY_OBJECT, Op,
+ Op->Asl.ExternalName);
+ return_ACPI_STATUS (Status);
+ }
+
/* Object was found above, check for an illegal forward reference */
if (Op->Asl.CompileFlags & OP_NOT_FOUND_DURING_LOAD)
@@ -1234,3 +1250,103 @@ XfNamespaceLocateEnd (
return_ACPI_STATUS (AE_OK);
}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: XfValidateCrossReference
+ *
+ * PARAMETERS: Op - Parse Op that references the object
+ * OpInfo - Parse Op info struct
+ * Node - Node for the referenced object
+ *
+ * RETURN: TRUE if the reference is legal, FALSE otherwise
+ *
+ * DESCRIPTION: Determine if a reference to another object is allowed.
+ *
+ * EXAMPLE:
+ * Method (A) {Name (INT1, 1)} Declaration of object INT1
+ * Method (B) (Store (2, \A.INT1)} Illegal reference to object INT1
+ * (INT1 is temporary, valid only during
+ * execution of A)
+ *
+ * NOTES:
+ * A null pointer returned by either XfGetParentMethod or
+ * UtGetParentMethod indicates that the parameter object is not
+ * within a control method.
+ *
+ * Five cases are handled: Case(Op, Node)
+ * 1) Case(0,0): Op is not within a method, Node is not --> OK
+ * 2) Case(0,1): Op is not within a method, but Node is --> Illegal
+ * 3) Case(1,0): Op is within a method, Node is not --> OK
+ * 4) Case(1,1): Both are within the same method --> OK
+ * 5) Case(1,1): Both are in methods, but not same method --> Illegal
+ *
+ ******************************************************************************/
+
+static BOOLEAN
+XfValidateCrossReference (
+ ACPI_PARSE_OBJECT *Op,
+ const ACPI_OPCODE_INFO *OpInfo,
+ ACPI_NAMESPACE_NODE *Node)
+{
+ ACPI_PARSE_OBJECT *ReferencingMethodOp;
+ ACPI_NAMESPACE_NODE *ReferencedMethodNode;
+
+
+ /* Ignore actual named (and related) object declarations */
+
+ if (OpInfo->Flags & (AML_NAMED | AML_CREATE | AML_DEFER | AML_HAS_ARGS))
+ {
+ return (TRUE);
+ }
+
+ /*
+ * 1) Search upwards in parse tree for owner of the referencing object
+ * 2) Search upwards in namespace to find the owner of the referenced object
+ */
+ ReferencingMethodOp = XfGetParentMethod (Op);
+ ReferencedMethodNode = UtGetParentMethod (Node);
+
+ if (!ReferencingMethodOp && !ReferencedMethodNode)
+ {
+ /*
+ * 1) Case (0,0): Both Op and Node are not within methods
+ * --> OK
+ */
+ return (TRUE);
+ }
+
+ if (!ReferencingMethodOp && ReferencedMethodNode)
+ {
+ /*
+ * 2) Case (0,1): Op is not in a method, but Node is within a
+ * method --> illegal
+ */
+ return (FALSE);
+ }
+ else if (ReferencingMethodOp && !ReferencedMethodNode)
+ {
+ /*
+ * 3) Case (1,0): Op is within a method, but Node is not
+ * --> OK
+ */
+ return (TRUE);
+ }
+ else if (ReferencingMethodOp->Asl.Node == ReferencedMethodNode)
+ {
+ /*
+ * 4) Case (1,1): Both Op and Node are within the same method
+ * --> OK
+ */
+ return (TRUE);
+ }
+ else
+ {
+ /*
+ * 5) Case (1,1), Op and Node are in different methods
+ * --> Illegal
+ */
+ return (FALSE);
+ }
+}
diff --git a/source/compiler/cvcompiler.c b/source/compiler/cvcompiler.c
index e069fbb448aa..083b66a5ecf1 100644
--- a/source/compiler/cvcompiler.c
+++ b/source/compiler/cvcompiler.c
@@ -168,7 +168,7 @@
*
* DESCRIPTION: Process a single line comment of a c Style comment. This
* function captures a line of a c style comment in a char* and
- * places the comment in the approperiate global buffer.
+ * places the comment in the appropriate global buffer.
*
******************************************************************************/
@@ -294,7 +294,7 @@ CvProcessComment (
* RETURN: none
*
* DESCRIPTION: Process a single line comment. This function captures a comment
- * in a char* and places the comment in the approperiate global
+ * in a char* and places the comment in the appropriate global
* buffer through CvPlaceComment
*
******************************************************************************/
@@ -333,7 +333,7 @@ CvProcessCommentType2 (
*
* would be lexically analyzed as a single comment.
*
- * Create a new string with the approperiate spaces. Since we need
+ * Create a new string with the appropriate spaces. Since we need
* to account for the proper spacing, the actual comment,
* extra 2 spaces so that this comment can be converted to the "/ *"
* style and the null terminator, the string would look something
@@ -380,7 +380,7 @@ CvProcessCommentType2 (
* RETURN: TotalCommentLength - Length of all comments within this op.
*
* DESCRIPTION: Calculate the length that the each comment takes up within Op.
- * Comments look like the follwoing: [0xA9 OptionBtye comment 0x00]
+ * Comments look like the following: [0xA9 OptionBtye comment 0x00]
* therefore, we add 1 + 1 + strlen (comment) + 1 to get the actual
* length of this comment.
*
@@ -963,7 +963,7 @@ CvAppendInlineComment (
* RETURN: None
*
* DESCRIPTION: Given type and CommentString, this function places the
- * CommentString in the approperiate global comment list or char*
+ * CommentString in the appropriate global comment list or char*
*
******************************************************************************/
diff --git a/source/compiler/cvparser.c b/source/compiler/cvparser.c
index 8225a44b3ac6..ca970b50a1cc 100644
--- a/source/compiler/cvparser.c
+++ b/source/compiler/cvparser.c
@@ -276,7 +276,7 @@ CvInitFileTree (
AcpiGbl_FileTreeRoot->File = AcpiGbl_OutputFile;
/*
- * Set this to true because we dont need to output
+ * Set this to true because we don't need to output
* an include statement for the topmost file
*/
AcpiGbl_FileTreeRoot->IncludeWritten = TRUE;
@@ -514,7 +514,7 @@ CvFileAddressLookup(
* RETURN: None
*
* DESCRIPTION: Takes a given parse op, looks up its Op->Common.Aml field
- * within the file tree and fills in approperiate file information
+ * within the file tree and fills in appropriate file information
* from a matching node within the tree.
* This is referred as ASL_CV_LABEL_FILENODE.
*
@@ -1005,7 +1005,7 @@ CvCaptureComments (
*
* RETURN: None
*
- * DESCRIPTION: Transfer all of the commments stored in global containers to the
+ * DESCRIPTION: Transfer all of the comments stored in global containers to the
* given Op. This will be invoked shortly after the parser creates
* a ParseOp.
* This is referred as ASL_CV_TRANSFER_COMMENTS.
diff --git a/source/compiler/dtexpress.c b/source/compiler/dtexpress.c
index 6b5b1861259a..820e198886f3 100644
--- a/source/compiler/dtexpress.c
+++ b/source/compiler/dtexpress.c
@@ -372,7 +372,7 @@ DtDoOperator (
*
* RETURN: Table offset associated with the label
*
- * DESCRIPTION: Lookup a lable and return its value.
+ * DESCRIPTION: Lookup a label and return its value.
*
*****************************************************************************/
diff --git a/source/compiler/dtio.c b/source/compiler/dtio.c
index 095ca0fbb7a8..ae8275132baa 100644
--- a/source/compiler/dtio.c
+++ b/source/compiler/dtio.c
@@ -375,7 +375,7 @@ DtParseLine (
return (AE_OK);
}
- /* All lines after "Raw Table Data" are ingored */
+ /* All lines after "Raw Table Data" are ignored */
if (strstr (LineBuffer, ACPI_RAW_TABLE_DATA_HEADER))
{
diff --git a/source/compiler/dttable1.c b/source/compiler/dttable1.c
index 23b36be4b18e..c43b9e6c0723 100644
--- a/source/compiler/dttable1.c
+++ b/source/compiler/dttable1.c
@@ -831,7 +831,7 @@ DtCompileDrtm (
DtInsertSubtable (ParentTable, Subtable);
/*
- * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care
+ * Using ACPI_SUB_PTR, We needn't define a separate structure. Care
* should be taken to avoid accessing ACPI_TABLE_HADER fields.
*/
#if 0
@@ -1002,7 +1002,14 @@ DtCompileGtdt (
ACPI_SUBTABLE_HEADER *GtdtHeader;
ACPI_DMTABLE_INFO *InfoTable;
UINT32 GtCount;
+ ACPI_TABLE_HEADER *Header;
+
+
+ ParentTable = DtPeekSubtable ();
+ Header = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer);
+
+ /* Compile the main table */
Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt,
&Subtable);
@@ -1011,6 +1018,21 @@ DtCompileGtdt (
return (Status);
}
+ /* GTDT revision 3 later contains 2 extra fields before subtables */
+
+ if (Header->Revision > 2)
+ {
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoGtdtEl2, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ }
+
ParentTable = DtPeekSubtable ();
DtInsertSubtable (ParentTable, Subtable);
diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c
index b9623d97b0ff..04f48cc0ca99 100644
--- a/source/compiler/dttable2.c
+++ b/source/compiler/dttable2.c
@@ -1733,6 +1733,11 @@ DtCompileSrat (
InfoTable = AcpiDmTableInfoSrat4;
break;
+ case ACPI_SRAT_TYPE_GENERIC_AFFINITY:
+
+ InfoTable = AcpiDmTableInfoSrat5;
+ break;
+
default:
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT");
diff --git a/source/compiler/dttemplate.h b/source/compiler/dttemplate.h
index 5fb3287ba1bc..cb1c58552ae2 100644
--- a/source/compiler/dttemplate.h
+++ b/source/compiler/dttemplate.h
@@ -545,34 +545,35 @@ const unsigned char TemplateFpdt[] =
const unsigned char TemplateGtdt[] =
{
- 0x47,0x54,0x44,0x54,0xe0,0x00,0x00,0x00, /* 00000000 "GTDT...." */
- 0x02,0xb0,0x4c,0x49,0x4e,0x41,0x52,0x4f, /* 00000008 "..LINARO" */
- 0x52,0x54,0x53,0x4d,0x56,0x45,0x56,0x38, /* 00000010 "RTSMVEV8" */
- 0x01,0x00,0x00,0x00,0x49,0x4e,0x54,0x4c, /* 00000018 "....INTL" */
- 0x24,0x04,0x14,0x20,0x00,0x00,0x00,0x00, /* 00000020 "$.. ...." */
+ 0x47,0x54,0x44,0x54,0xE8,0x00,0x00,0x00, /* 00000000 "GTDT...." */
+ 0x03,0x5D,0x4C,0x49,0x4E,0x41,0x52,0x4F, /* 00000008 ".]LINARO" */
+ 0x52,0x54,0x53,0x4D,0x56,0x45,0x56,0x38, /* 00000010 "RTSMVEV8" */
+ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
+ 0x08,0x01,0x19,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */
- 0x1d,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000030 "........" */
- 0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000038 "........" */
- 0x1b,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000040 "........" */
- 0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000048 "........" */
+ 0x1D,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000030 "........" */
+ 0x1E,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000038 "........" */
+ 0x1B,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000040 "........" */
+ 0x1A,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000048 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000050 "........" */
0x02,0x00,0x00,0x00,0x60,0x00,0x00,0x00, /* 00000058 "....`..." */
- 0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000060 ".d......" */
- 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000068 "........" */
- 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */
+ 0x43,0x00,0x00,0x00,0x21,0x00,0x00,0x00, /* 00000060 "C...!..." */
+ 0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000068 ".d......" */
+ 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000070 "........" */
+ 0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000088 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000088 "........" */
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000090 "........" */
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000098 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000a0 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000a8 "........" */
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000b0 "........" */
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000b8 "........" */
- 0x00,0x00,0x00,0x00,0x01,0x1c,0x00,0x00, /* 000000c0 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000c8 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000d0 "........" */
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000d8 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000A0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000B8 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000C0 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x1C,0x00,0x00, /* 000000C8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D8 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00 /* 000000E0 "........" */
};
const unsigned char TemplateHest[] =
@@ -662,10 +663,10 @@ const unsigned char TemplateHest[] =
const unsigned char TemplateHmat[] =
{
0x48,0x4D,0x41,0x54,0x9C,0x00,0x00,0x00, /* 00000000 "HMAT...." */
- 0x00,0x54,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".TINTEL " */
+ 0x02,0x4D,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".MINTEL " */
0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
- 0x03,0x03,0x17,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */
+ 0x08,0x01,0x19,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */
0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00, /* 00000028 "....(..." */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
@@ -817,10 +818,10 @@ const unsigned char TemplateLpit[] =
const unsigned char TemplateMadt[] =
{
0x41,0x50,0x49,0x43,0x5A,0x01,0x00,0x00, /* 00000000 "APICZ..." */
- 0x03,0xEA,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
+ 0x05,0xEF,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
- 0x10,0x04,0x15,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */
+ 0x08,0x01,0x19,0x20,0x00,0x00,0x00,0x00, /* 00000020 "... ...." */
0x01,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 00000028 "........" */
0x01,0x00,0x00,0x00,0x01,0x0C,0x01,0x00, /* 00000030 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
@@ -1375,11 +1376,11 @@ const unsigned char TemplateSpmi[] =
const unsigned char TemplateSrat[] =
{
- 0x53,0x52,0x41,0x54,0x9E,0x00,0x00,0x00, /* 00000000 "SRAT...." */
- 0x03,0x55,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".UINTEL " */
+ 0x53,0x52,0x41,0x54,0xBE,0x00,0x00,0x00, /* 00000000 "SRAT...." */
+ 0x03,0xE6,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
- 0x03,0x03,0x17,0x20,0x01,0x00,0x00,0x00, /* 00000020 "... ...." */
+ 0x29,0x06,0x18,0x20,0x01,0x00,0x00,0x00, /* 00000020 ").. ...." */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */
0x00,0x10,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000030 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
@@ -1394,7 +1395,11 @@ const unsigned char TemplateSrat[] =
0x03,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */
0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000088 "........" */
0x00,0x00,0x04,0x0C,0x00,0x00,0x00,0x00, /* 00000090 "........" */
- 0x00,0x00,0x01,0x00,0x00,0x00 /* 00000098 "......" */
+ 0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x20, /* 00000098 "....... " */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00 /* 000000B8 "......" */
};
const unsigned char TemplateStao[] =
diff --git a/source/components/debugger/dbdisply.c b/source/components/debugger/dbdisply.c
index d0583fc7498f..539ff5af117d 100644
--- a/source/components/debugger/dbdisply.c
+++ b/source/components/debugger/dbdisply.c
@@ -410,7 +410,7 @@ AcpiDbDecodeAndDisplayObject (
default:
- /* Is not a recognizeable object */
+ /* Is not a recognizable object */
AcpiOsPrintf (
"Not a known ACPI internal object, descriptor type %2.2X\n",
@@ -866,7 +866,7 @@ AcpiDbDisplayObjectType (
*
* DESCRIPTION: Display the result of an AML opcode
*
- * Note: Curently only displays the result object if we are single stepping.
+ * Note: Currently only displays the result object if we are single stepping.
* However, this output may be useful in other contexts and could be enabled
* to do so if needed.
*
diff --git a/source/components/debugger/dbexec.c b/source/components/debugger/dbexec.c
index 03ea9bf2eadc..49d1180fba58 100644
--- a/source/components/debugger/dbexec.c
+++ b/source/components/debugger/dbexec.c
@@ -331,12 +331,12 @@ AcpiDbExecuteMethod (
}
ACPI_EXCEPTION ((AE_INFO, Status,
- "while executing %s from debugger", Info->Pathname));
+ "while executing %s from AML Debugger", Info->Pathname));
if (Status == AE_BUFFER_OVERFLOW)
{
ACPI_ERROR ((AE_INFO,
- "Possible overflow of internal debugger "
+ "Possible buffer overflow within AML Debugger "
"buffer (size 0x%X needed 0x%X)",
ACPI_DEBUG_BUFFER_SIZE, (UINT32) ReturnObj->Length));
}
diff --git a/source/components/debugger/dbnames.c b/source/components/debugger/dbnames.c
index 781e3a981cb5..3c01e8088651 100644
--- a/source/components/debugger/dbnames.c
+++ b/source/components/debugger/dbnames.c
@@ -1175,7 +1175,7 @@ AcpiDbBusWalk (
*
* RETURN: None
*
- * DESCRIPTION: Display info about system busses.
+ * DESCRIPTION: Display info about system buses.
*
******************************************************************************/
diff --git a/source/components/debugger/dbobject.c b/source/components/debugger/dbobject.c
index c54394def601..f9dc6687cd1b 100644
--- a/source/components/debugger/dbobject.c
+++ b/source/components/debugger/dbobject.c
@@ -420,7 +420,7 @@ AcpiDbDisplayInternalObject (
AcpiOsPrintf ("[%s] ", AcpiUtGetReferenceName (ObjDesc));
- /* Decode the refererence */
+ /* Decode the reference */
switch (ObjDesc->Reference.Class)
{
diff --git a/source/components/debugger/dbtest.c b/source/components/debugger/dbtest.c
index 560fb86f8697..67b9cbea22a8 100644
--- a/source/components/debugger/dbtest.c
+++ b/source/components/debugger/dbtest.c
@@ -154,6 +154,7 @@
#include "acdebug.h"
#include "acnamesp.h"
#include "acpredef.h"
+#include "acinterp.h"
#define _COMPONENT ACPI_CA_DEBUGGER
@@ -193,6 +194,10 @@ AcpiDbTestPackageType (
ACPI_NAMESPACE_NODE *Node);
static ACPI_STATUS
+AcpiDbTestFieldUnitType (
+ ACPI_OPERAND_OBJECT *ObjDesc);
+
+static ACPI_STATUS
AcpiDbReadFromObject (
ACPI_NAMESPACE_NODE *Node,
ACPI_OBJECT_TYPE ExpectedType,
@@ -241,7 +246,7 @@ static ACPI_DB_ARGUMENT_INFO AcpiDbTestTypes [] =
static ACPI_HANDLE ReadHandle = NULL;
static ACPI_HANDLE WriteHandle = NULL;
-/* ASL Definitions of the debugger read/write control methods */
+/* ASL Definitions of the debugger read/write control methods. AML below. */
#if 0
DefinitionBlock ("ssdt.aml", "SSDT", 2, "Intel", "DEBUG", 0x00000001)
@@ -407,10 +412,8 @@ AcpiDbTestAllObjects (
* RETURN: Status
*
* DESCRIPTION: Test one namespace object. Supported types are Integer,
- * String, Buffer, BufferField, and FieldUnit. All other object
- * types are simply ignored.
- *
- * Note: Support for Packages is not implemented.
+ * String, Buffer, Package, BufferField, and FieldUnit.
+ * All other object types are simply ignored.
*
******************************************************************************/
@@ -423,7 +426,6 @@ AcpiDbTestOneObject (
{
ACPI_NAMESPACE_NODE *Node;
ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *RegionObj;
ACPI_OBJECT_TYPE LocalType;
UINT32 BitLength = 0;
UINT32 ByteLength = 0;
@@ -466,19 +468,22 @@ AcpiDbTestOneObject (
break;
case ACPI_TYPE_FIELD_UNIT:
- case ACPI_TYPE_BUFFER_FIELD:
case ACPI_TYPE_LOCAL_REGION_FIELD:
case ACPI_TYPE_LOCAL_INDEX_FIELD:
case ACPI_TYPE_LOCAL_BANK_FIELD:
+ LocalType = ACPI_TYPE_FIELD_UNIT;
+ break;
+
+ case ACPI_TYPE_BUFFER_FIELD:
+ /*
+ * The returned object will be a Buffer if the field length
+ * is larger than the size of an Integer (32 or 64 bits
+ * depending on the DSDT version).
+ */
LocalType = ACPI_TYPE_INTEGER;
if (ObjDesc)
{
- /*
- * Returned object will be a Buffer if the field length
- * is larger than the size of an Integer (32 or 64 bits
- * depending on the DSDT version).
- */
BitLength = ObjDesc->CommonField.BitLength;
ByteLength = ACPI_ROUND_BITS_UP_TO_BYTES (BitLength);
if (BitLength > AcpiGbl_IntegerBitWidth)
@@ -488,9 +493,9 @@ AcpiDbTestOneObject (
}
break;
- default:
+default:
- /* Ignore all other types */
+ /* Ignore all non-data types - Methods, Devices, Scopes, etc. */
return (AE_OK);
}
@@ -502,40 +507,10 @@ AcpiDbTestOneObject (
if (!ObjDesc)
{
- AcpiOsPrintf (" Ignoring, no attached object\n");
+ AcpiOsPrintf (" No attached sub-object, ignoring\n");
return (AE_OK);
}
- /*
- * Check for unsupported region types. Note: AcpiExec simulates
- * access to SystemMemory, SystemIO, PCI_Config, and EC.
- */
- switch (Node->Type)
- {
- case ACPI_TYPE_LOCAL_REGION_FIELD:
-
- RegionObj = ObjDesc->Field.RegionObj;
- switch (RegionObj->Region.SpaceId)
- {
- case ACPI_ADR_SPACE_SYSTEM_MEMORY:
- case ACPI_ADR_SPACE_SYSTEM_IO:
- case ACPI_ADR_SPACE_PCI_CONFIG:
-
- break;
-
- default:
-
- AcpiOsPrintf (" %s space is not supported in this command [%4.4s]\n",
- AcpiUtGetRegionName (RegionObj->Region.SpaceId),
- RegionObj->Region.Node->Name.Ascii);
- return (AE_OK);
- }
- break;
-
- default:
- break;
- }
-
/* At this point, we have resolved the object to one of the major types */
switch (LocalType)
@@ -560,6 +535,11 @@ AcpiDbTestOneObject (
Status = AcpiDbTestPackageType (Node);
break;
+ case ACPI_TYPE_FIELD_UNIT:
+
+ Status = AcpiDbTestFieldUnitType (ObjDesc);
+ break;
+
default:
AcpiOsPrintf (" Ignoring, type not implemented (%2.2X)",
@@ -572,24 +552,8 @@ AcpiDbTestOneObject (
if (ACPI_FAILURE (Status))
{
Status = AE_OK;
- goto Exit;
- }
-
- switch (Node->Type)
- {
- case ACPI_TYPE_LOCAL_REGION_FIELD:
-
- RegionObj = ObjDesc->Field.RegionObj;
- AcpiOsPrintf (" (%s)",
- AcpiUtGetRegionName (RegionObj->Region.SpaceId));
-
- break;
-
- default:
- break;
}
-Exit:
AcpiOsPrintf ("\n");
return (Status);
}
@@ -639,7 +603,7 @@ AcpiDbTestIntegerType (
return (Status);
}
- AcpiOsPrintf (" (%4.4X/%3.3X) %8.8X%8.8X",
+ AcpiOsPrintf (ACPI_DEBUG_LENGTH_FORMAT " %8.8X%8.8X",
BitLength, ACPI_ROUND_BITS_UP_TO_BYTES (BitLength),
ACPI_FORMAT_UINT64 (Temp1->Integer.Value));
@@ -761,8 +725,8 @@ AcpiDbTestBufferType (
/* Emit a few bytes of the buffer */
- AcpiOsPrintf (" (%4.4X/%3.3X)", BitLength, Temp1->Buffer.Length);
- for (i = 0; ((i < 4) && (i < ByteLength)); i++)
+ AcpiOsPrintf (ACPI_DEBUG_LENGTH_FORMAT, BitLength, Temp1->Buffer.Length);
+ for (i = 0; ((i < 8) && (i < ByteLength)); i++)
{
AcpiOsPrintf (" %2.2X", Temp1->Buffer.Pointer[i]);
}
@@ -876,7 +840,7 @@ AcpiDbTestStringType (
return (Status);
}
- AcpiOsPrintf (" (%4.4X/%3.3X) \"%s\"", (Temp1->String.Length * 8),
+ AcpiOsPrintf (ACPI_DEBUG_LENGTH_FORMAT " \"%s\"", (Temp1->String.Length * 8),
Temp1->String.Length, Temp1->String.Pointer);
/* Write a new value */
@@ -966,7 +930,7 @@ AcpiDbTestPackageType (
return (Status);
}
- AcpiOsPrintf (" %8.8X Elements", Temp1->Package.Count);
+ AcpiOsPrintf (" %.2X Elements", Temp1->Package.Count);
AcpiOsFree (Temp1);
return (Status);
}
@@ -974,6 +938,73 @@ AcpiDbTestPackageType (
/*******************************************************************************
*
+ * FUNCTION: AcpiDbTestFieldUnitType
+ *
+ * PARAMETERS: ObjDesc - A field unit object
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Test read/write on a named field unit.
+ *
+ ******************************************************************************/
+
+static ACPI_STATUS
+AcpiDbTestFieldUnitType (
+ ACPI_OPERAND_OBJECT *ObjDesc)
+{
+ ACPI_OPERAND_OBJECT *RegionObj;
+ UINT32 BitLength = 0;
+ UINT32 ByteLength = 0;
+ ACPI_STATUS Status = AE_OK;
+ ACPI_OPERAND_OBJECT *RetBufferDesc;
+
+
+ /* Supported spaces are memory/io/pci_config */
+
+ RegionObj = ObjDesc->Field.RegionObj;
+ switch (RegionObj->Region.SpaceId)
+ {
+ case ACPI_ADR_SPACE_SYSTEM_MEMORY:
+ case ACPI_ADR_SPACE_SYSTEM_IO:
+ case ACPI_ADR_SPACE_PCI_CONFIG:
+
+ /* Need the interpreter to execute */
+
+ AcpiUtAcquireMutex (ACPI_MTX_INTERPRETER);
+ AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
+
+ /* Exercise read-then-write */
+
+ Status = AcpiExReadDataFromField (NULL, ObjDesc, &RetBufferDesc);
+ if (Status == AE_OK)
+ {
+ AcpiExWriteDataToField (RetBufferDesc, ObjDesc, NULL);
+ AcpiUtRemoveReference (RetBufferDesc);
+ }
+
+ AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
+ AcpiUtReleaseMutex (ACPI_MTX_INTERPRETER);
+
+ BitLength = ObjDesc->CommonField.BitLength;
+ ByteLength = ACPI_ROUND_BITS_UP_TO_BYTES (BitLength);
+
+ AcpiOsPrintf (ACPI_DEBUG_LENGTH_FORMAT " [%s]", BitLength,
+ ByteLength, AcpiUtGetRegionName (RegionObj->Region.SpaceId));
+ return (Status);
+
+ default:
+
+ AcpiOsPrintf (
+ " %s address space is not supported in this command [%4.4s]",
+ AcpiUtGetRegionName (RegionObj->Region.SpaceId),
+ RegionObj->Region.Node->Name.Ascii);
+ return (AE_OK);
+ }
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AcpiDbReadFromObject
*
* PARAMETERS: Node - Parent NS node for the object
diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c
index db56365d2c02..a58ff2f5212a 100644
--- a/source/components/disassembler/dmbuffer.c
+++ b/source/components/disassembler/dmbuffer.c
@@ -1053,7 +1053,7 @@ AcpiDmGetHardwareIdType (
}
}
- /* Mark this node as convertable to an EISA ID string */
+ /* Mark this node as convertible to an EISA ID string */
Op->Common.DisasmOpcode = ACPI_DASM_EISAID;
break;
diff --git a/source/components/disassembler/dmcstyle.c b/source/components/disassembler/dmcstyle.c
index c74d13dd0c92..30ae3a5b228a 100644
--- a/source/components/disassembler/dmcstyle.c
+++ b/source/components/disassembler/dmcstyle.c
@@ -1075,7 +1075,7 @@ AcpiDmIsValidTarget (
*
* DESCRIPTION: Determine if the Target duplicates the operand, in order to
* detect if the expression can be converted to a compound
- * assigment. (+=, *=, etc.)
+ * assignment. (+=, *=, etc.)
*
******************************************************************************/
@@ -1131,7 +1131,7 @@ AcpiDmIsTargetAnOperand (
}
}
- /* Supress the duplicate operand at the top-level */
+ /* Suppress the duplicate operand at the top-level */
if (TopLevel)
{
diff --git a/source/components/disassembler/dmnames.c b/source/components/disassembler/dmnames.c
index 0866bdf26adb..bbff3e0a6988 100644
--- a/source/components/disassembler/dmnames.c
+++ b/source/components/disassembler/dmnames.c
@@ -232,7 +232,7 @@ AcpiDmDumpName (
*
* RETURN: Status
*
- * DESCRIPTION: Diplay the pathname associated with a named object. Two
+ * DESCRIPTION: Display the pathname associated with a named object. Two
* versions. One searches the parse tree (for parser-only
* applications suchas AcpiDump), and the other searches the
* ACPI namespace (the parse tree is probably deleted)
diff --git a/source/components/disassembler/dmresrc.c b/source/components/disassembler/dmresrc.c
index 8deac42c5eb4..bb36b7349581 100644
--- a/source/components/disassembler/dmresrc.c
+++ b/source/components/disassembler/dmresrc.c
@@ -342,7 +342,7 @@ AcpiDmBitList (
*
* FUNCTION: AcpiDmResourceTemplate
*
- * PARAMETERS: Info - Curent parse tree walk info
+ * PARAMETERS: Info - Current parse tree walk info
* ByteData - Pointer to the byte list data
* ByteCount - Length of the byte list
*
@@ -555,7 +555,7 @@ AcpiDmIsResourceTemplate (
/*
* Not a template if declared buffer length != actual length of the
- * intialization byte list. Because the resource macros will create
+ * initialization byte list. Because the resource macros will create
* a buffer of the exact required length (buffer length will be equal
* to the actual length).
*
diff --git a/source/components/disassembler/dmresrcs.c b/source/components/disassembler/dmresrcs.c
index baf24488b479..72bbc331f470 100644
--- a/source/components/disassembler/dmresrcs.c
+++ b/source/components/disassembler/dmresrcs.c
@@ -388,7 +388,7 @@ AcpiDmFixedIoDescriptor (
*
* RETURN: None
*
- * DESCRIPTION: Decode a Start Dependendent functions descriptor
+ * DESCRIPTION: Decode a Start Dependent functions descriptor
*
******************************************************************************/
diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c
index f54fcee6db99..cc0a271e41d0 100644
--- a/source/components/dispatcher/dsfield.c
+++ b/source/components/dispatcher/dsfield.c
@@ -685,6 +685,12 @@ AcpiDsCreateField (
Info.RegionNode = RegionNode;
Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
+ if (Info.RegionNode->Type == ACPI_ADR_SPACE_PLATFORM_COMM &&
+ !(RegionNode->Object->Field.InternalPccBuffer
+ = ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length)))
+ {
+ return_ACPI_STATUS (AE_NO_MEMORY);
+ }
return_ACPI_STATUS (Status);
}
diff --git a/source/components/dispatcher/dsopcode.c b/source/components/dispatcher/dsopcode.c
index 8b9a30aa76c3..acf1ff4e1d19 100644
--- a/source/components/dispatcher/dsopcode.c
+++ b/source/components/dispatcher/dsopcode.c
@@ -521,6 +521,7 @@ AcpiDsEvalRegionOperands (
ACPI_OPERAND_OBJECT *OperandDesc;
ACPI_NAMESPACE_NODE *Node;
ACPI_PARSE_OBJECT *NextOp;
+ ACPI_ADR_SPACE_TYPE SpaceId;
ACPI_FUNCTION_TRACE_PTR (DsEvalRegionOperands, Op);
@@ -530,11 +531,12 @@ AcpiDsEvalRegionOperands (
* This is where we evaluate the address and length fields of the
* OpRegion declaration
*/
- Node = Op->Common.Node;
+ Node = Op->Common.Node;
/* NextOp points to the op that holds the SpaceID */
NextOp = Op->Common.Value.Arg;
+ SpaceId = (ACPI_ADR_SPACE_TYPE) NextOp->Common.Value.Integer;
/* NextOp points to address op */
@@ -572,6 +574,15 @@ AcpiDsEvalRegionOperands (
ObjDesc->Region.Length = (UINT32) OperandDesc->Integer.Value;
AcpiUtRemoveReference (OperandDesc);
+ /* A zero-length operation region is unusable. Just warn */
+
+ if (!ObjDesc->Region.Length && (SpaceId < ACPI_NUM_PREDEFINED_REGIONS))
+ {
+ ACPI_WARNING ((AE_INFO,
+ "Operation Region [%4.4s] has zero length (SpaceId %X)",
+ Node->Name.Ascii, SpaceId));
+ }
+
/*
* Get the address and save it
* (at top of stack - 1)
diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c
index f22067486c31..3a9e374eb602 100644
--- a/source/components/dispatcher/dswload2.c
+++ b/source/components/dispatcher/dswload2.c
@@ -167,7 +167,7 @@
* FUNCTION: AcpiDsLoad2BeginOp
*
* PARAMETERS: WalkState - Current state of the parse tree walk
- * OutOp - Wher to return op if a new one is created
+ * OutOp - Where to return op if a new one is created
*
* RETURN: Status
*
diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c
index 1dcd0fc74b25..f5ea992a270b 100644
--- a/source/components/events/evgpe.c
+++ b/source/components/events/evgpe.c
@@ -1012,7 +1012,7 @@ AcpiEvGpeDispatch (
GpeDevice, GpeNumber,
GpeEventInfo->Dispatch.Handler->Context);
- /* If requested, clear (if level-triggered) and reenable the GPE */
+ /* If requested, clear (if level-triggered) and re-enable the GPE */
if (ReturnValue & ACPI_REENABLE_GPE)
{
diff --git a/source/components/events/evregion.c b/source/components/events/evregion.c
index 2b7780658ecd..6f6d7ccc8b50 100644
--- a/source/components/events/evregion.c
+++ b/source/components/events/evregion.c
@@ -409,7 +409,7 @@ AcpiEvAddressSpaceDispatch (
/*
* For handlers other than the default (supplied) handlers, we must
* exit the interpreter because the handler *might* block -- we don't
- * know what it will do, so we can't hold the lock on the intepreter.
+ * know what it will do, so we can't hold the lock on the interpreter.
*/
AcpiExExitInterpreter();
}
diff --git a/source/components/events/evrgnini.c b/source/components/events/evrgnini.c
index a5234a21c30c..718e2e87d933 100644
--- a/source/components/events/evrgnini.c
+++ b/source/components/events/evrgnini.c
@@ -724,24 +724,6 @@ AcpiEvInitializeRegion (
HandlerObj = ObjDesc->CommonNotify.Handler;
break;
- case ACPI_TYPE_METHOD:
- /*
- * If we are executing module level code, the original
- * Node's object was replaced by this Method object and we
- * saved the handler in the method object.
- *
- * Note: Only used for the legacy MLC support. Will
- * be removed in the future.
- *
- * See AcpiNsExecModuleCode
- */
- if (!AcpiGbl_ExecuteTablesAsMethods &&
- ObjDesc->Method.InfoFlags & ACPI_METHOD_MODULE_LEVEL)
- {
- HandlerObj = ObjDesc->Method.Dispatch.Handler;
- }
- break;
-
default:
/* Ignore other objects */
diff --git a/source/components/events/evxfgpe.c b/source/components/events/evxfgpe.c
index 546faa6e8b44..52061db190cc 100644
--- a/source/components/events/evxfgpe.c
+++ b/source/components/events/evxfgpe.c
@@ -885,9 +885,9 @@ ACPI_EXPORT_SYMBOL (AcpiGetGpeStatus)
*
* RETURN: Status
*
- * DESCRIPTION: Clear and conditionally reenable a GPE. This completes the GPE
+ * DESCRIPTION: Clear and conditionally re-enable a GPE. This completes the GPE
* processing. Intended for use by asynchronous host-installed
- * GPE handlers. The GPE is only reenabled if the EnableForRun bit
+ * GPE handlers. The GPE is only re-enabled if the EnableForRun bit
* is set in the GPE info.
*
******************************************************************************/
diff --git a/source/components/executer/exconvrt.c b/source/components/executer/exconvrt.c
index 7a15387f7eef..c4fda4c1cc21 100644
--- a/source/components/executer/exconvrt.c
+++ b/source/components/executer/exconvrt.c
@@ -708,7 +708,7 @@ AcpiExConvertToString (
{
if (Base == 16)
{
- /* Emit 0x prefix for explict/implicit hex conversion */
+ /* Emit 0x prefix for explicit/implicit hex conversion */
*NewBuf++ = '0';
*NewBuf++ = 'x';
diff --git a/source/components/executer/exfield.c b/source/components/executer/exfield.c
index 5ef9bd31a0e4..b35e6a4ef4ae 100644
--- a/source/components/executer/exfield.c
+++ b/source/components/executer/exfield.c
@@ -187,6 +187,17 @@ const UINT8 AcpiProtocolLengths[] =
0xFF /* F - ATTRIB_RAW_PROCESS_BYTES */
};
+#define PCC_MASTER_SUBSPACE 3
+
+/*
+ * The following macros determine a given offset is a COMD field.
+ * According to the specification, generic subspaces (types 0-2) contains a
+ * 2-byte COMD field at offset 4 and master subspaces (type 3) contains a 4-byte
+ * COMD field starting at offset 12.
+ */
+#define GENERIC_SUBSPACE_COMMAND(a) (4 == a || a == 5)
+#define MASTER_SUBSPACE_COMMAND(a) (12 <= a && a <= 15)
+
/*******************************************************************************
*
@@ -337,6 +348,23 @@ AcpiExReadDataFromField (
Status = AcpiExReadGpio (ObjDesc, Buffer);
goto Exit;
}
+ else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
+ (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM))
+ {
+ /*
+ * Reading from a PCC field unit does not require the handler because
+ * it only requires reading from the InternalPccBuffer.
+ */
+ ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+ "PCC FieldRead bits %u\n", ObjDesc->Field.BitLength));
+
+ memcpy (Buffer, ObjDesc->Field.RegionObj->Field.InternalPccBuffer +
+ ObjDesc->Field.BaseByteOffset, (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
+ ObjDesc->Field.BitLength));
+
+ *RetBufferDesc = BufferDesc;
+ return AE_OK;
+ }
ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
"FieldRead [TO]: Obj %p, Type %X, Buf %p, ByteLen %X\n",
@@ -393,6 +421,7 @@ AcpiExWriteDataToField (
{
ACPI_STATUS Status;
UINT32 BufferLength;
+ UINT32 DataLength;
void *Buffer;
@@ -439,6 +468,39 @@ AcpiExWriteDataToField (
Status = AcpiExWriteSerialBus (SourceDesc, ObjDesc, ResultDesc);
return_ACPI_STATUS (Status);
}
+ else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
+ (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM))
+ {
+ /*
+ * According to the spec a write to the COMD field will invoke the
+ * region handler. Otherwise, write to the PccInternal buffer. This
+ * implementation will use the offsets specified rather than the name
+ * of the field. This is considered safer because some firmware tools
+ * are known to obfiscate named objects.
+ */
+ DataLength = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
+ ObjDesc->Field.BitLength);
+ memcpy (ObjDesc->Field.RegionObj->Field.InternalPccBuffer +
+ ObjDesc->Field.BaseByteOffset,
+ SourceDesc->Buffer.Pointer, DataLength);
+
+ if ((ObjDesc->Field.RegionObj->Region.Address == PCC_MASTER_SUBSPACE &&
+ MASTER_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset)) ||
+ GENERIC_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset))
+ {
+ /* Perform the write */
+
+ ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+ "PCC COMD field has been written. Invoking PCC handler now.\n"));
+
+ Status = AcpiExAccessRegion (
+ ObjDesc, 0, (UINT64 *) ObjDesc->Field.RegionObj->Field.InternalPccBuffer,
+ ACPI_WRITE);
+ return_ACPI_STATUS (Status);
+ }
+ return (AE_OK);
+ }
+
/* Get a pointer to the data to be written */
diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c
index 0b05fbce963b..07b42880b940 100644
--- a/source/components/executer/exserial.c
+++ b/source/components/executer/exserial.c
@@ -165,7 +165,7 @@
* FUNCTION: AcpiExReadGpio
*
* PARAMETERS: ObjDesc - The named field to read
- * Buffer - Where the return data is returnd
+ * Buffer - Where the return data is returned
*
* RETURN: Status
*
diff --git a/source/components/executer/exutils.c b/source/components/executer/exutils.c
index 795c94428d42..653777b70a87 100644
--- a/source/components/executer/exutils.c
+++ b/source/components/executer/exutils.c
@@ -325,7 +325,7 @@ AcpiExTruncateFor32bitTable (
* RETURN: None
*
* DESCRIPTION: Obtain the ACPI hardware Global Lock, only if the field
- * flags specifiy that it is to be obtained before field access.
+ * flags specify that it is to be obtained before field access.
*
******************************************************************************/
diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c
index fc93604d8779..f5a82347af92 100644
--- a/source/components/namespace/nsload.c
+++ b/source/components/namespace/nsload.c
@@ -233,7 +233,7 @@ AcpiNsLoadTable (
/*
* On error, delete any namespace objects created by this table.
* We cannot initialize these objects, so delete them. There are
- * a couple of expecially bad cases:
+ * a couple of especially bad cases:
* AE_ALREADY_EXISTS - namespace collision.
* AE_NOT_FOUND - the target of a Scope operator does not
* exist. This target of Scope must already exist in the
diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c
index 1aa568cb637c..e559223a1b45 100644
--- a/source/components/namespace/nsparse.c
+++ b/source/components/namespace/nsparse.c
@@ -422,66 +422,18 @@ AcpiNsParseTable (
ACPI_FUNCTION_TRACE (NsParseTable);
- if (AcpiGbl_ExecuteTablesAsMethods)
- {
- /*
- * This case executes the AML table as one large control method.
- * The point of this is to execute any module-level code in-place
- * as the table is parsed. Some AML code depends on this behavior.
- *
- * It is a run-time option at this time, but will eventually become
- * the default.
- *
- * Note: This causes the table to only have a single-pass parse.
- * However, this is compatible with other ACPI implementations.
- */
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
- "%s: **** Start table execution pass\n", ACPI_GET_FUNCTION_NAME));
-
- Status = AcpiNsExecuteTable (TableIndex, StartNode);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- else
- {
- /*
- * AML Parse, pass 1
- *
- * In this pass, we load most of the namespace. Control methods
- * are not parsed until later. A parse tree is not created.
- * Instead, each Parser Op subtree is deleted when it is finished.
- * This saves a great deal of memory, and allows a small cache of
- * parse objects to service the entire parse. The second pass of
- * the parse then performs another complete parse of the AML.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n"));
-
- Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS1,
- TableIndex, StartNode);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
+ /*
+ * Executes the AML table as one large control method.
+ * The point of this is to execute any module-level code in-place
+ * as the table is parsed. Some AML code depends on this behavior.
+ *
+ * Note: This causes the table to only have a single-pass parse.
+ * However, this is compatible with other ACPI implementations.
+ */
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
+ "%s: **** Start table execution pass\n", ACPI_GET_FUNCTION_NAME));
- /*
- * AML Parse, pass 2
- *
- * In this pass, we resolve forward references and other things
- * that could not be completed during the first pass.
- * Another complete parse of the AML is performed, but the
- * overhead of this is compensated for by the fact that the
- * parse objects are all cached.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 2\n"));
- Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2,
- TableIndex, StartNode);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
+ Status = AcpiNsExecuteTable (TableIndex, StartNode);
return_ACPI_STATUS (Status);
}
diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c
index 78ba42abd0bf..4a9f0313dda0 100644
--- a/source/components/namespace/nsutils.c
+++ b/source/components/namespace/nsutils.c
@@ -561,7 +561,7 @@ AcpiNsInternalizeName (
*
* FUNCTION: AcpiNsExternalizeName
*
- * PARAMETERS: InternalNameLength - Lenth of the internal name below
+ * PARAMETERS: InternalNameLength - Length of the internal name below
* InternalName - Internal representation of name
* ConvertedNameLength - Where the length is returned
* ConvertedName - Where the resulting external name
diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c
index 127850a636c9..7398c3df2a91 100644
--- a/source/components/parser/psloop.c
+++ b/source/components/parser/psloop.c
@@ -178,13 +178,6 @@ AcpiPsGetArguments (
UINT8 *AmlOpStart,
ACPI_PARSE_OBJECT *Op);
-static void
-AcpiPsLinkModuleCode (
- ACPI_PARSE_OBJECT *ParentOp,
- UINT8 *AmlStart,
- UINT32 AmlLength,
- ACPI_OWNER_ID OwnerId);
-
/*******************************************************************************
*
@@ -208,7 +201,6 @@ AcpiPsGetArguments (
{
ACPI_STATUS Status = AE_OK;
ACPI_PARSE_OBJECT *Arg = NULL;
- const ACPI_OPCODE_INFO *OpInfo;
ACPI_FUNCTION_TRACE_PTR (PsGetArguments, WalkState);
@@ -287,82 +279,6 @@ AcpiPsGetArguments (
"Final argument count: %8.8X pass %u\n",
WalkState->ArgCount, WalkState->PassNumber));
- /*
- * This case handles the legacy option that groups all module-level
- * code blocks together and defers execution until all of the tables
- * are loaded. Execute all of these blocks at this time.
- * Execute any module-level code that was detected during the table
- * load phase.
- *
- * Note: this option is deprecated and will be eliminated in the
- * future. Use of this option can cause problems with AML code that
- * depends upon in-order immediate execution of module-level code.
- */
- if (!AcpiGbl_ExecuteTablesAsMethods &&
- (WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2) &&
- ((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) == 0))
- {
- /*
- * We want to skip If/Else/While constructs during Pass1 because we
- * want to actually conditionally execute the code during Pass2.
- *
- * Except for disassembly, where we always want to walk the
- * If/Else/While packages
- */
- switch (Op->Common.AmlOpcode)
- {
- case AML_IF_OP:
- case AML_ELSE_OP:
- case AML_WHILE_OP:
- /*
- * Currently supported module-level opcodes are:
- * IF/ELSE/WHILE. These appear to be the most common,
- * and easiest to support since they open an AML
- * package.
- */
- if (WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1)
- {
- AcpiPsLinkModuleCode (Op->Common.Parent, AmlOpStart,
- (UINT32) (WalkState->ParserState.PkgEnd - AmlOpStart),
- WalkState->OwnerId);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Pass1: Skipping an If/Else/While body\n"));
-
- /* Skip body of if/else/while in pass 1 */
-
- WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
- WalkState->ArgCount = 0;
- break;
-
- default:
- /*
- * Check for an unsupported executable opcode at module
- * level. We must be in PASS1, the parent must be a SCOPE,
- * The opcode class must be EXECUTE, and the opcode must
- * not be an argument to another opcode.
- */
- if ((WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1) &&
- (Op->Common.Parent->Common.AmlOpcode == AML_SCOPE_OP))
- {
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if ((OpInfo->Class == AML_CLASS_EXECUTE) &&
- (!Arg))
- {
- ACPI_WARNING ((AE_INFO,
- "Unsupported module-level executable opcode "
- "0x%.2X at table offset 0x%.4X",
- Op->Common.AmlOpcode,
- (UINT32) (ACPI_PTR_DIFF (AmlOpStart,
- WalkState->ParserState.AmlStart) +
- sizeof (ACPI_TABLE_HEADER))));
- }
- }
- break;
- }
- }
-
/* Special processing for certain opcodes */
switch (Op->Common.AmlOpcode)
@@ -436,117 +352,6 @@ AcpiPsGetArguments (
/*******************************************************************************
*
- * FUNCTION: AcpiPsLinkModuleCode
- *
- * PARAMETERS: ParentOp - Parent parser op
- * AmlStart - Pointer to the AML
- * AmlLength - Length of executable AML
- * OwnerId - OwnerId of module level code
- *
- * RETURN: None.
- *
- * DESCRIPTION: Wrap the module-level code with a method object and link the
- * object to the global list. Note, the mutex field of the method
- * object is used to link multiple module-level code objects.
- *
- * NOTE: In this legacy option, each block of detected executable AML
- * code that is outside of any control method is wrapped with a temporary
- * control method object and placed on a global list below.
- *
- * This function executes the module-level code for all tables only after
- * all of the tables have been loaded. It is a legacy option and is
- * not compatible with other ACPI implementations. See AcpiNsLoadTable.
- *
- * This function will be removed when the legacy option is removed.
- *
- ******************************************************************************/
-
-static void
-AcpiPsLinkModuleCode (
- ACPI_PARSE_OBJECT *ParentOp,
- UINT8 *AmlStart,
- UINT32 AmlLength,
- ACPI_OWNER_ID OwnerId)
-{
- ACPI_OPERAND_OBJECT *Prev;
- ACPI_OPERAND_OBJECT *Next;
- ACPI_OPERAND_OBJECT *MethodObj;
- ACPI_NAMESPACE_NODE *ParentNode;
-
-
- ACPI_FUNCTION_TRACE (PsLinkModuleCode);
-
-
- /* Get the tail of the list */
-
- Prev = Next = AcpiGbl_ModuleCodeList;
- while (Next)
- {
- Prev = Next;
- Next = Next->Method.Mutex;
- }
-
- /*
- * Insert the module level code into the list. Merge it if it is
- * adjacent to the previous element.
- */
- if (!Prev ||
- ((Prev->Method.AmlStart + Prev->Method.AmlLength) != AmlStart))
- {
- /* Create, initialize, and link a new temporary method object */
-
- MethodObj = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
- if (!MethodObj)
- {
- return_VOID;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Create/Link new code block: %p\n", MethodObj));
-
- if (ParentOp->Common.Node)
- {
- ParentNode = ParentOp->Common.Node;
- }
- else
- {
- ParentNode = AcpiGbl_RootNode;
- }
-
- MethodObj->Method.AmlStart = AmlStart;
- MethodObj->Method.AmlLength = AmlLength;
- MethodObj->Method.OwnerId = OwnerId;
- MethodObj->Method.InfoFlags |= ACPI_METHOD_MODULE_LEVEL;
-
- /*
- * Save the parent node in NextObject. This is cheating, but we
- * don't want to expand the method object.
- */
- MethodObj->Method.NextObject =
- ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParentNode);
-
- if (!Prev)
- {
- AcpiGbl_ModuleCodeList = MethodObj;
- }
- else
- {
- Prev->Method.Mutex = MethodObj;
- }
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Appending to existing code block: %p\n", Prev));
-
- Prev->Method.AmlLength += AmlLength;
- }
-
- return_VOID;
-}
-
-/*******************************************************************************
- *
* FUNCTION: AcpiPsParseLoop
*
* PARAMETERS: WalkState - Current state
diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c
index db3bbaba6860..68e83aa84f4a 100644
--- a/source/components/parser/psparse.c
+++ b/source/components/parser/psparse.c
@@ -680,12 +680,12 @@ AcpiPsParseAml (
if (Status == AE_ABORT_METHOD)
{
AcpiNsPrintNodePathname (
- WalkState->MethodNode, "Method aborted:");
+ WalkState->MethodNode, "Aborting method");
AcpiOsPrintf ("\n");
}
else
{
- ACPI_ERROR_METHOD ("Method parse/execution failed",
+ ACPI_ERROR_METHOD ("Aborting method",
WalkState->MethodNode, NULL, Status);
}
AcpiExEnterInterpreter ();
diff --git a/source/components/resources/rsdumpinfo.c b/source/components/resources/rsdumpinfo.c
index c807e285f869..d55bf63bad50 100644
--- a/source/components/resources/rsdumpinfo.c
+++ b/source/components/resources/rsdumpinfo.c
@@ -180,7 +180,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpIrq[7] =
{ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.DescriptorLength), "Descriptor Length", NULL},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Triggering), "Triggering", AcpiGbl_HeDecode},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity), "Polarity", AcpiGbl_LlDecode},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Sharable), "Sharing", AcpiGbl_ShrDecode},
+ {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Shareable), "Sharing", AcpiGbl_ShrDecode},
{ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.InterruptCount), "Interrupt Count", NULL},
{ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]), "Interrupt List", NULL}
};
@@ -324,7 +324,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[8] =
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.ProducerConsumer), "Type", AcpiGbl_ConsumeDecode},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Triggering), "Triggering", AcpiGbl_HeDecode},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Polarity), "Polarity", AcpiGbl_LlDecode},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Sharable), "Sharing", AcpiGbl_ShrDecode},
+ {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Shareable), "Sharing", AcpiGbl_ShrDecode},
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource), NULL, NULL},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount), "Interrupt Count", NULL},
{ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]), "Interrupt List", NULL}
@@ -347,7 +347,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpGpio[16] =
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Gpio.ConnectionType), "ConnectionType", AcpiGbl_CtDecode},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Gpio.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Gpio.PinConfig), "PinConfig", AcpiGbl_PpcDecode},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Sharable), "Sharing", AcpiGbl_ShrDecode},
+ {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Shareable), "Sharing", AcpiGbl_ShrDecode},
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.IoRestriction), "IoRestriction", AcpiGbl_IorDecode},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Gpio.Triggering), "Triggering", AcpiGbl_HeDecode},
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Polarity), "Polarity", AcpiGbl_LlDecode},
@@ -365,7 +365,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinFunction[10] =
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinFunction), "PinFunction", NULL},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinFunction.RevisionId), "RevisionId", NULL},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinFunction.PinConfig), "PinConfig", AcpiGbl_PpcDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinFunction.Sharable), "Sharing", AcpiGbl_ShrDecode},
+ {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinFunction.Shareable), "Sharing", AcpiGbl_ShrDecode},
{ACPI_RSD_UINT16, ACPI_RSD_OFFSET (PinFunction.FunctionNumber), "FunctionNumber", NULL},
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (PinFunction.ResourceSource), "ResourceSource", NULL},
{ACPI_RSD_UINT16, ACPI_RSD_OFFSET (PinFunction.PinTableLength), "PinTableLength", NULL},
@@ -379,7 +379,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[11] =
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinConfig), "PinConfig", NULL},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinConfig.RevisionId), "RevisionId", NULL},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.Sharable), "Sharing", AcpiGbl_ShrDecode},
+ {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.Shareable), "Sharing", AcpiGbl_ShrDecode},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinConfig.PinConfigType), "PinConfigType", NULL},
{ACPI_RSD_UINT32, ACPI_RSD_OFFSET (PinConfig.PinConfigValue), "PinConfigValue", NULL},
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (PinConfig.ResourceSource), "ResourceSource", NULL},
@@ -406,7 +406,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinGroupFunction[9] =
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinGroupFunction), "PinGroupFunction", NULL},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinGroupFunction.RevisionId), "RevisionId", NULL},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.Sharable), "Sharing", AcpiGbl_ShrDecode},
+ {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.Shareable), "Sharing", AcpiGbl_ShrDecode},
{ACPI_RSD_UINT16, ACPI_RSD_OFFSET (PinGroupFunction.FunctionNumber), "FunctionNumber", NULL},
{ACPI_RSD_SOURCE_LABEL, ACPI_RSD_OFFSET (PinGroupFunction.ResourceSourceLabel), "ResourceSourceLabel", NULL},
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (PinGroupFunction.ResourceSource), "ResourceSource", NULL},
@@ -419,7 +419,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinGroupConfig[10] =
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinGroupConfig), "PinGroupConfig", NULL},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinGroupConfig.RevisionId), "RevisionId", NULL},
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.Sharable), "Sharing", AcpiGbl_ShrDecode},
+ {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.Shareable), "Sharing", AcpiGbl_ShrDecode},
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinGroupConfig.PinConfigType), "PinConfigType", NULL},
{ACPI_RSD_UINT32, ACPI_RSD_OFFSET (PinGroupConfig.PinConfigValue), "PinConfigValue", NULL},
{ACPI_RSD_SOURCE_LABEL, ACPI_RSD_OFFSET (PinGroupConfig.ResourceSourceLabel), "ResourceSourceLabel", NULL},
diff --git a/source/components/resources/rsirq.c b/source/components/resources/rsirq.c
index 70ae3a1db3ec..d2f3cfbcd6cb 100644
--- a/source/components/resources/rsirq.c
+++ b/source/components/resources/rsirq.c
@@ -201,7 +201,7 @@ ACPI_RSCONVERT_INFO AcpiRsGetIrq[9] =
AML_OFFSET (Irq.Flags),
3},
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Shareable),
AML_OFFSET (Irq.Flags),
4},
@@ -241,7 +241,7 @@ ACPI_RSCONVERT_INFO AcpiRsSetIrq[14] =
AML_OFFSET (Irq.Flags),
3},
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Shareable),
AML_OFFSET (Irq.Flags),
4},
@@ -288,7 +288,7 @@ ACPI_RSCONVERT_INFO AcpiRsSetIrq[14] =
ACPI_ACTIVE_HIGH},
{ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_VALUE,
- ACPI_RS_OFFSET (Data.Irq.Sharable),
+ ACPI_RS_OFFSET (Data.Irq.Shareable),
ACPI_EXCLUSIVE},
/* We can optimize to a 2-byte IrqNoFlags() descriptor */
@@ -329,7 +329,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[10] =
AML_OFFSET (ExtendedIrq.Flags),
2},
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Sharable),
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Shareable),
AML_OFFSET (ExtendedIrq.Flags),
3},
diff --git a/source/components/resources/rsserial.c b/source/components/resources/rsserial.c
index f543f4393913..eaed2a3709de 100644
--- a/source/components/resources/rsserial.c
+++ b/source/components/resources/rsserial.c
@@ -186,7 +186,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertGpio[18] =
AML_OFFSET (Gpio.Flags),
0},
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Sharable),
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Shareable),
AML_OFFSET (Gpio.IntFlags),
3},
@@ -274,7 +274,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinFunction[13] =
AML_OFFSET (PinFunction.RevisionId),
1},
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinFunction.Sharable),
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinFunction.Shareable),
AML_OFFSET (PinFunction.Flags),
0},
@@ -639,7 +639,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinConfig[14] =
AML_OFFSET (PinConfig.RevisionId),
1},
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinConfig.Sharable),
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinConfig.Shareable),
AML_OFFSET (PinConfig.Flags),
0},
@@ -775,7 +775,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupFunction[13] =
AML_OFFSET (PinGroupFunction.RevisionId),
1},
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupFunction.Sharable),
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupFunction.Shareable),
AML_OFFSET (PinGroupFunction.Flags),
0},
@@ -842,7 +842,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupConfig[14] =
AML_OFFSET (PinGroupConfig.RevisionId),
1},
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupConfig.Sharable),
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupConfig.Shareable),
AML_OFFSET (PinGroupConfig.Flags),
0},
diff --git a/source/components/tables/tbfadt.c b/source/components/tables/tbfadt.c
index 9691b2cd522f..aad5a626ad89 100644
--- a/source/components/tables/tbfadt.c
+++ b/source/components/tables/tbfadt.c
@@ -740,7 +740,7 @@ AcpiTbConvertFadt (
* 64-bit X length field.
* Note: If the legacy length field is > 0xFF bits, ignore
* this check. (GPE registers can be larger than the
- * 64-bit GAS structure can accomodate, 0xFF bits).
+ * 64-bit GAS structure can accommodate, 0xFF bits).
*/
if ((ACPI_MUL_8 (Length) <= ACPI_UINT8_MAX) &&
(Address64->BitWidth != ACPI_MUL_8 (Length)))
diff --git a/source/components/tables/tbxface.c b/source/components/tables/tbxface.c
index bc6eea307e90..097e535df8c3 100644
--- a/source/components/tables/tbxface.c
+++ b/source/components/tables/tbxface.c
@@ -263,7 +263,7 @@ AcpiInitializeTables (
/*
* Get the root table (RSDT or XSDT) and extract all entries to the local
* Root Table Array. This array contains the information of the RSDT/XSDT
- * in a common, more useable format.
+ * in a common, more usable format.
*/
Status = AcpiTbParseRootTable (RsdpAddress);
return_ACPI_STATUS (Status);
@@ -334,7 +334,7 @@ AcpiReallocateRootTable (
{
/*
* Now it's safe to do full table validation. We can do deferred
- * table initilization here once the flag is set.
+ * table initialization here once the flag is set.
*/
AcpiGbl_EnableTableValidation = TRUE;
for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c
index a3168c5c0ef7..bda55ea2ac74 100644
--- a/source/components/tables/tbxfload.c
+++ b/source/components/tables/tbxfload.c
@@ -219,25 +219,19 @@ AcpiLoadTables (
"While loading namespace from ACPI tables"));
}
- if (AcpiGbl_ExecuteTablesAsMethods)
+ /*
+ * Initialize the objects in the namespace that remain uninitialized.
+ * This runs the executable AML that may be part of the declaration of
+ * these name objects:
+ * OperationRegions, BufferFields, Buffers, and Packages.
+ *
+ */
+ Status = AcpiNsInitializeObjects ();
+ if (ACPI_SUCCESS (Status))
{
- /*
- * If the module-level code support is enabled, initialize the objects
- * in the namespace that remain uninitialized. This runs the executable
- * AML that may be part of the declaration of these name objects:
- * OperationRegions, BufferFields, Buffers, and Packages.
- *
- * Note: The module-level code is optional at this time, but will
- * become the default in the future.
- */
- Status = AcpiNsInitializeObjects ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
+ AcpiGbl_NamespaceInitialized = TRUE;
}
- AcpiGbl_NamespaceInitialized = TRUE;
return_ACPI_STATUS (Status);
}
diff --git a/source/components/utilities/utclib.c b/source/components/utilities/utclib.c
index e03dee130fd4..1e62de13bd1b 100644
--- a/source/components/utilities/utclib.c
+++ b/source/components/utilities/utclib.c
@@ -399,7 +399,7 @@ strlen (
* PARAMETERS: String - Null terminated string
* Delimiters - Delimiters to match
*
- * RETURN: The first occurance in the string of any of the bytes in the
+ * RETURN: The first occurrence in the string of any of the bytes in the
* delimiters
*
* DESCRIPTION: Search a string for any of a set of the delimiters
@@ -789,7 +789,7 @@ strstr (
* FUNCTION: strtoul
*
* PARAMETERS: String - Null terminated string
- * Terminater - Where a pointer to the terminating byte is
+ * Terminator - Where a pointer to the terminating byte is
* returned
* Base - Radix of the string
*
diff --git a/source/components/utilities/utdecode.c b/source/components/utilities/utdecode.c
index 5460de2ace26..e470dfc41688 100644
--- a/source/components/utilities/utdecode.c
+++ b/source/components/utilities/utdecode.c
@@ -633,6 +633,7 @@ static const char *AcpiGbl_GenericNotify[ACPI_GENERIC_NOTIFY_MAX + 1]
/* 0C */ "Reserved (was previously Shutdown Request)", /* Reserved in ACPI 6.0 */
/* 0D */ "System Resource Affinity Update",
/* 0E */ "Heterogeneous Memory Attributes Update" /* ACPI 6.2 */
+ /* 0F */ "Error Disconnect Recover" /* ACPI 6.3 */
};
static const char *AcpiGbl_DeviceNotify[5] =
@@ -669,14 +670,14 @@ AcpiUtGetNotifyName (
ACPI_OBJECT_TYPE Type)
{
- /* 00 - 0D are "common to all object types" (from ACPI Spec) */
+ /* 00 - 0F are "common to all object types" (from ACPI Spec) */
if (NotifyValue <= ACPI_GENERIC_NOTIFY_MAX)
{
return (AcpiGbl_GenericNotify[NotifyValue]);
}
- /* 0E - 7F are reserved */
+ /* 10 - 7F are reserved */
if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
{
diff --git a/source/components/utilities/utdelete.c b/source/components/utilities/utdelete.c
index 3fbd0fd10ddd..332e2dec7c19 100644
--- a/source/components/utilities/utdelete.c
+++ b/source/components/utilities/utdelete.c
@@ -412,6 +412,11 @@ AcpiUtDeleteInternalObj (
AcpiUtDeleteObjectDesc (SecondDesc);
}
+ if (Object->Field.InternalPccBuffer)
+ {
+ ACPI_FREE(Object->Field.InternalPccBuffer);
+ }
+
break;
case ACPI_TYPE_BUFFER_FIELD:
diff --git a/source/components/utilities/uterror.c b/source/components/utilities/uterror.c
index 0d356e59a461..624c034cedf3 100644
--- a/source/components/utilities/uterror.c
+++ b/source/components/utilities/uterror.c
@@ -353,19 +353,19 @@ AcpiUtPrefixedNamespaceError (
case AE_ALREADY_EXISTS:
AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
- Message = "Failure creating";
+ Message = "Failure creating named object";
break;
case AE_NOT_FOUND:
AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
- Message = "Could not resolve";
+ Message = "Could not resolve symbol";
break;
default:
AcpiOsPrintf (ACPI_MSG_ERROR);
- Message = "Failure resolving";
+ Message = "Failure resolving symbol";
break;
}
@@ -500,7 +500,8 @@ AcpiUtMethodError (
}
AcpiNsPrintNodePathname (Node, Message);
- AcpiOsPrintf (", %s", AcpiFormatException (MethodStatus));
+ AcpiOsPrintf (" due to previous error (%s)",
+ AcpiFormatException (MethodStatus));
ACPI_MSG_SUFFIX;
ACPI_MSG_REDIRECT_END;
diff --git a/source/include/acclib.h b/source/include/acclib.h
index edc1cb194cca..bac1ebe0b461 100644
--- a/source/include/acclib.h
+++ b/source/include/acclib.h
@@ -345,7 +345,7 @@ sprintf (
/*
* NOTE: Currently we only need to update errno for file IOs. Other
- * Clibrary invocations in ACPICA do not make descisions according to
+ * Clibrary invocations in ACPICA do not make decisions according to
* the errno.
*/
extern int errno;
diff --git a/source/include/acconfig.h b/source/include/acconfig.h
index 3706e27e9d80..e93cfe1eafae 100644
--- a/source/include/acconfig.h
+++ b/source/include/acconfig.h
@@ -286,7 +286,7 @@
/*
* Maximal number of elements the Result Stack can contain,
- * it may be an arbitray value not exceeding the types of
+ * it may be an arbitrary value not exceeding the types of
* ResultSize and ResultCount (now UINT8).
*/
#define ACPI_RESULTS_OBJ_NUM_MAX 255
diff --git a/source/include/acdebug.h b/source/include/acdebug.h
index f3c1874a18ed..4e43bbee2235 100644
--- a/source/include/acdebug.h
+++ b/source/include/acdebug.h
@@ -159,7 +159,8 @@
#endif
-#define ACPI_DEBUG_BUFFER_SIZE 0x4000 /* 16K buffer for return objects */
+#define ACPI_DEBUG_BUFFER_SIZE 0x4000 /* 16K buffer for return objects */
+#define ACPI_DEBUG_LENGTH_FORMAT " (%.4X bits, %.3X bytes)"
typedef struct acpi_db_command_info
{
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h
index 0f52e7dbe1f1..fa0aebe25e98 100644
--- a/source/include/acdisasm.h
+++ b/source/include/acdisasm.h
@@ -409,6 +409,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[];
@@ -553,6 +554,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[];
diff --git a/source/include/acexcep.h b/source/include/acexcep.h
index 12b2a5f28749..1c9a49d912ab 100644
--- a/source/include/acexcep.h
+++ b/source/include/acexcep.h
@@ -434,7 +434,7 @@ static const ACPI_EXCEPTION_INFO AcpiGbl_ExceptionNames_Aml[] =
EXCEP_TXT ("AE_AML_DIVIDE_BY_ZERO", "During execution of AML Divide operator"),
EXCEP_TXT ("AE_AML_BAD_NAME", "An ACPI name contains invalid character(s)"),
EXCEP_TXT ("AE_AML_NAME_NOT_FOUND", "Could not resolve a named reference"),
- EXCEP_TXT ("AE_AML_INTERNAL", "An internal error within the interprete"),
+ EXCEP_TXT ("AE_AML_INTERNAL", "An internal error within the interpreter"),
EXCEP_TXT ("AE_AML_INVALID_SPACE_ID", "An Operation Region SpaceID is invalid"),
EXCEP_TXT ("AE_AML_STRING_LIMIT", "String is longer than 200 characters"),
EXCEP_TXT ("AE_AML_NO_RETURN_VALUE", "A method did not return a required value"),
diff --git a/source/include/aclocal.h b/source/include/aclocal.h
index bd27374c4fb1..b5c4aa029c1a 100644
--- a/source/include/aclocal.h
+++ b/source/include/aclocal.h
@@ -1105,7 +1105,7 @@ typedef struct acpi_comment_addr_node
/*
* File node - used for "Include" operator file stack and
- * depdendency tree for the -ca option
+ * dependency tree for the -ca option
*/
typedef struct acpi_file_node
{
diff --git a/source/include/acmacros.h b/source/include/acmacros.h
index 6046030dca5c..340ef725cad6 100644
--- a/source/include/acmacros.h
+++ b/source/include/acmacros.h
@@ -610,7 +610,7 @@
/*
- * Macors used for the ASL-/ASL+ converter utility
+ * Macros used for the ASL-/ASL+ converter utility
*/
#ifdef ACPI_ASL_COMPILER
diff --git a/source/include/acobject.h b/source/include/acobject.h
index e345ca341450..b9b30200e9ec 100644
--- a/source/include/acobject.h
+++ b/source/include/acobject.h
@@ -453,6 +453,7 @@ typedef struct acpi_object_region_field
union acpi_operand_object *RegionObj; /* Containing OpRegion object */
UINT8 *ResourceBuffer; /* ResourceTemplate for serial regions/fields */
UINT16 PinNumberIndex; /* Index relative to previous Connection/Template */
+ UINT8 *InternalPccBuffer; /* Internal buffer for fields associated with PCC */
} ACPI_OBJECT_REGION_FIELD;
diff --git a/source/include/acpixf.h b/source/include/acpixf.h
index c57be658e54e..ad653f0ef24b 100644
--- a/source/include/acpixf.h
+++ b/source/include/acpixf.h
@@ -154,7 +154,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
-#define ACPI_CA_VERSION 0x20190108
+#define ACPI_CA_VERSION 0x20190215
#include "acconfig.h"
#include "actypes.h"
@@ -301,14 +301,6 @@ ACPI_INIT_GLOBAL (UINT8, AcpiGbl_CopyDsdtLocally, FALSE);
ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DoNotUseXsdt, FALSE);
/*
- * Optionally support module level code by parsing an entire table as
- * a method as it is loaded. Default is TRUE.
- * NOTE, this is essentially obsolete and will be removed soon
- * (01/2018).
- */
-ACPI_INIT_GLOBAL (UINT8, AcpiGbl_ExecuteTablesAsMethods, TRUE);
-
-/*
* Optionally use 32-bit FADT addresses if and when there is a conflict
* (address mismatch) between the 32-bit and 64-bit versions of the
* address. Although ACPICA adheres to the ACPI specification which
diff --git a/source/include/acpredef.h b/source/include/acpredef.h
index 11c6b6a4795f..8bdbbf998c20 100644
--- a/source/include/acpredef.h
+++ b/source/include/acpredef.h
@@ -760,6 +760,21 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] =
{{"_MTL", METHOD_0ARGS, /* ACPI 6.0 */
METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
+ {{"_NBS", METHOD_0ARGS, /* ACPI 6.3 */
+ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+ {{"_NCH", METHOD_0ARGS, /* ACPI 6.3 */
+ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+ {{"_NIC", METHOD_0ARGS, /* ACPI 6.3 */
+ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+ {{"_NIG", METHOD_1ARGS (ACPI_TYPE_BUFFER), /* ACPI 6.3 */
+ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+ {{"_NIH", METHOD_0ARGS, /* ACPI 6.3 */
+ METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
{{"_NTT", METHOD_0ARGS,
METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
diff --git a/source/include/acrestyp.h b/source/include/acrestyp.h
index 80d2b3709450..fa24363d750a 100644
--- a/source/include/acrestyp.h
+++ b/source/include/acrestyp.h
@@ -287,7 +287,7 @@ typedef struct acpi_resource_irq
UINT8 DescriptorLength;
UINT8 Triggering;
UINT8 Polarity;
- UINT8 Sharable;
+ UINT8 Shareable;
UINT8 WakeCapable;
UINT8 InterruptCount;
UINT8 Interrupts[1];
@@ -534,7 +534,7 @@ typedef struct acpi_resource_extended_irq
UINT8 ProducerConsumer;
UINT8 Triggering;
UINT8 Polarity;
- UINT8 Sharable;
+ UINT8 Shareable;
UINT8 WakeCapable;
UINT8 InterruptCount;
ACPI_RESOURCE_SOURCE ResourceSource;
@@ -558,7 +558,7 @@ typedef struct acpi_resource_gpio
UINT8 ConnectionType;
UINT8 ProducerConsumer; /* For values, see Producer/Consumer above */
UINT8 PinConfig;
- UINT8 Sharable; /* For values, see Interrupt Attributes above */
+ UINT8 Shareable; /* For values, see Interrupt Attributes above */
UINT8 WakeCapable; /* For values, see Interrupt Attributes above */
UINT8 IoRestriction;
UINT8 Triggering; /* For values, see Interrupt Attributes above */
@@ -736,7 +736,7 @@ typedef struct acpi_resource_pin_function
{
UINT8 RevisionId;
UINT8 PinConfig;
- UINT8 Sharable; /* For values, see Interrupt Attributes above */
+ UINT8 Shareable; /* For values, see Interrupt Attributes above */
UINT16 FunctionNumber;
UINT16 PinTableLength;
UINT16 VendorLength;
@@ -750,7 +750,7 @@ typedef struct acpi_resource_pin_config
{
UINT8 RevisionId;
UINT8 ProducerConsumer; /* For values, see Producer/Consumer above */
- UINT8 Sharable; /* For values, see Interrupt Attributes above */
+ UINT8 Shareable; /* For values, see Interrupt Attributes above */
UINT8 PinConfigType;
UINT32 PinConfigValue;
UINT16 PinTableLength;
@@ -794,7 +794,7 @@ typedef struct acpi_resource_pin_group_function
{
UINT8 RevisionId;
UINT8 ProducerConsumer; /* For values, see Producer/Consumer above */
- UINT8 Sharable; /* For values, see Interrupt Attributes above */
+ UINT8 Shareable; /* For values, see Interrupt Attributes above */
UINT16 FunctionNumber;
UINT16 VendorLength;
ACPI_RESOURCE_SOURCE ResourceSource;
@@ -807,7 +807,7 @@ typedef struct acpi_resource_pin_group_config
{
UINT8 RevisionId;
UINT8 ProducerConsumer; /* For values, see Producer/Consumer above */
- UINT8 Sharable; /* For values, see Interrupt Attributes above */
+ UINT8 Shareable; /* For values, see Interrupt Attributes above */
UINT8 PinConfigType; /* For values, see PinConfigType above */
UINT32 PinConfigValue;
UINT16 VendorLength;
diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h
index 1218b59b2373..335a291b1e9a 100644
--- a/source/include/actbinfo.h
+++ b/source/include/actbinfo.h
@@ -237,6 +237,7 @@
#define ACPI_GTDT0a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GTDT_TIMER_ENTRY,f)
#define ACPI_GTDT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GTDT_WATCHDOG,f)
#define ACPI_GTDTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GTDT_HEADER,f)
+#define ACPI_GTDT_EL2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GTDT_EL2,f)
#define ACPI_HEST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f)
#define ACPI_HEST1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_CORRECTED,f)
#define ACPI_HEST2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_NMI,f)
@@ -248,7 +249,7 @@
#define ACPI_HEST11_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_DEFERRED_CHECK,f)
#define ACPI_HESTN_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_NOTIFY,f)
#define ACPI_HESTB_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_ERROR_BANK,f)
-#define ACPI_HMAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_ADDRESS_RANGE,f)
+#define ACPI_HMAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_PROXIMITY_DOMAIN,f)
#define ACPI_HMAT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_LOCALITY,f)
#define ACPI_HMAT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_CACHE,f)
#define ACPI_HMATH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_STRUCTURE,f)
@@ -334,6 +335,7 @@
#define ACPI_SRAT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f)
#define ACPI_SRAT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GICC_AFFINITY,f)
#define ACPI_SRAT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GIC_ITS_AFFINITY,f)
+#define ACPI_SRAT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f)
#define ACPI_TCPA_CLIENT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_CLIENT,f)
#define ACPI_TCPA_SERVER_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_SERVER,f)
#define ACPI_TPM2A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM2_TRAILER,f)
@@ -361,10 +363,11 @@
#define ACPI_SRAT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o)
#define ACPI_SRAT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o)
#define ACPI_SRAT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_GICC_AFFINITY,f,o)
+#define ACPI_SRAT5_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f,o)
#define ACPI_GTDT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_GTDT,f,o)
#define ACPI_GTDT0a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_GTDT_TIMER_ENTRY,f,o)
#define ACPI_GTDT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_GTDT_WATCHDOG,f,o)
-#define ACPI_HMAT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HMAT_ADDRESS_RANGE,f,o)
+#define ACPI_HMAT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HMAT_PROXIMITY_DOMAIN,f,o)
#define ACPI_HMAT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HMAT_LOCALITY,f,o)
#define ACPI_HMAT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HMAT_CACHE,f,o)
#define ACPI_IORT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_SMMU,f,o)
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
index 38e73db8c545..b1700608c217 100644
--- a/source/include/actbl1.h
+++ b/source/include/actbl1.h
@@ -797,7 +797,7 @@ typedef struct acpi_dmar_hardware_unit
#define ACPI_DMAR_INCLUDE_ALL (1)
-/* 1: Reserved Memory Defininition */
+/* 1: Reserved Memory Definition */
typedef struct acpi_dmar_reserved_memory
{
@@ -1319,6 +1319,12 @@ typedef struct acpi_table_gtdt
#define ACPI_GTDT_INTERRUPT_POLARITY (1<<1)
#define ACPI_GTDT_ALWAYS_ON (1<<2)
+typedef struct acpi_gtdt_el2
+{
+ UINT32 VirtualEL2TimerGsiv;
+ UINT32 VirtualEL2TimerFlags;
+} ACPI_GTDT_EL2;
+
/* Common GTDT subtable header */
@@ -1778,7 +1784,7 @@ typedef struct acpi_table_hmat
enum AcpiHmatType
{
- ACPI_HMAT_TYPE_ADDRESS_RANGE = 0, /* Memory subystem address range */
+ ACPI_HMAT_TYPE_ADDRESS_RANGE = 0, /* Memory subsystem address range */
ACPI_HMAT_TYPE_LOCALITY = 1, /* System locality latency and bandwidth information */
ACPI_HMAT_TYPE_CACHE = 2, /* Memory side cache information */
ACPI_HMAT_TYPE_RESERVED = 3 /* 3 and greater are reserved */
@@ -1797,9 +1803,9 @@ typedef struct acpi_hmat_structure
* HMAT Structures, correspond to Type in ACPI_HMAT_STRUCTURE
*/
-/* 0: Memory subystem address range */
+/* 0: Memory proximity domain attributes */
-typedef struct acpi_hmat_address_range
+typedef struct acpi_hmat_proximity_domain
{
ACPI_HMAT_STRUCTURE Header;
UINT16 Flags;
@@ -1807,10 +1813,10 @@ typedef struct acpi_hmat_address_range
UINT32 ProcessorPD; /* Processor proximity domain */
UINT32 MemoryPD; /* Memory proximity domain */
UINT32 Reserved2;
- UINT64 PhysicalAddressBase; /* Physical address range base */
- UINT64 PhysicalAddressLength; /* Physical address range length */
+ UINT64 Reserved3;
+ UINT64 Reserved4;
-} ACPI_HMAT_ADDRESS_RANGE;
+} ACPI_HMAT_PROXIMITY_DOMAIN;
/* Masks for Flags field above */
diff --git a/source/include/actbl2.h b/source/include/actbl2.h
index 562584ecbf45..07d907e39870 100644
--- a/source/include/actbl2.h
+++ b/source/include/actbl2.h
@@ -303,7 +303,7 @@ typedef struct acpi_iort_memory_access
typedef struct acpi_iort_its_group
{
UINT32 ItsCount;
- UINT32 Identifiers[1]; /* GIC ITS identifier arrary */
+ UINT32 Identifiers[1]; /* GIC ITS identifier array */
} ACPI_IORT_ITS_GROUP;
@@ -873,7 +873,7 @@ typedef struct acpi_madt_local_x2apic_nmi
} ACPI_MADT_LOCAL_X2APIC_NMI;
-/* 11: Generic Interrupt (ACPI 5.0 + ACPI 6.0 changes) */
+/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 changes) */
typedef struct acpi_madt_generic_interrupt
{
@@ -892,7 +892,8 @@ typedef struct acpi_madt_generic_interrupt
UINT64 GicrBaseAddress;
UINT64 ArmMpidr;
UINT8 EfficiencyClass;
- UINT8 Reserved2[3];
+ UINT8 Reserved2[1];
+ UINT16 SpeInterrupt; /* ACPI 6.3 */
} ACPI_MADT_GENERIC_INTERRUPT;
@@ -1737,6 +1738,7 @@ typedef struct acpi_pdtt_channel
#define ACPI_PDTT_RUNTIME_TRIGGER (1)
#define ACPI_PDTT_WAIT_COMPLETION (1<<1)
+#define ACPI_PDTT_TRIGGER_ORDER (1<<2)
/*******************************************************************************
@@ -1873,8 +1875,11 @@ typedef struct acpi_pptt_processor
/* Flags */
-#define ACPI_PPTT_PHYSICAL_PACKAGE (1) /* Physical package */
-#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID (2) /* ACPI Processor ID valid */
+#define ACPI_PPTT_PHYSICAL_PACKAGE (1)
+#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID (1<<1)
+#define ACPI_PPTT_ACPI_PROCESSOR_IS_THREAD (1<<2) /* ACPI 6.3 */
+#define ACPI_PPTT_ACPI_LEAF_NODE (1<<3) /* ACPI 6.3 */
+#define ACPI_PPTT_ACPI_IDENTICAL (1<<4) /* ACPI 6.3 */
/* 1: Cache Type Structure */
diff --git a/source/include/actbl3.h b/source/include/actbl3.h
index c4a45997c9d1..db5535e836a4 100644
--- a/source/include/actbl3.h
+++ b/source/include/actbl3.h
@@ -350,8 +350,9 @@ enum AcpiSratType
ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
ACPI_SRAT_TYPE_GICC_AFFINITY = 3,
- ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */
- ACPI_SRAT_TYPE_RESERVED = 5 /* 5 and greater are reserved */
+ ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */
+ ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, /* ACPI 6.3 */
+ ACPI_SRAT_TYPE_RESERVED = 6 /* 5 and greater are reserved */
};
/*
@@ -447,6 +448,24 @@ typedef struct acpi_srat_gic_its_affinity
} ACPI_SRAT_GIC_ITS_AFFINITY;
+/* 5: Generic Initiator Affinity Structure (ACPI 6.3) */
+
+typedef struct acpi_srat_generic_affinity
+{
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Reserved;
+ UINT8 DeviceHandleType;
+ UINT32 ProximityDomain;
+ UINT8 DeviceHandle[16];
+ UINT32 Flags;
+ UINT32 Reserved1;
+
+} ACPI_SRAT_GENERIC_AFFINITY;
+
+/* Flags for ACPI_SRAT_GENERIC_AFFINITY */
+
+#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */
+
/*******************************************************************************
*
* STAO - Status Override Table (_STA override) - ACPI 6.0
diff --git a/source/include/actypes.h b/source/include/actypes.h
index a5ab31fedce0..2a65ee8f570d 100644
--- a/source/include/actypes.h
+++ b/source/include/actypes.h
@@ -767,8 +767,9 @@ typedef UINT64 ACPI_INTEGER;
#define ACPI_NOTIFY_SHUTDOWN_REQUEST (UINT8) 0x0C
#define ACPI_NOTIFY_AFFINITY_UPDATE (UINT8) 0x0D
#define ACPI_NOTIFY_MEMORY_UPDATE (UINT8) 0x0E
+#define ACPI_NOTIFY_DISCONNECT_RECOVER (UINT8) 0x0F
-#define ACPI_GENERIC_NOTIFY_MAX 0x0E
+#define ACPI_GENERIC_NOTIFY_MAX 0x0F
#define ACPI_SPECIFIC_NOTIFY_MAX 0x84
/*
diff --git a/source/include/platform/acefi.h b/source/include/platform/acefi.h
index e75fa3117312..11ab4060bc11 100644
--- a/source/include/platform/acefi.h
+++ b/source/include/platform/acefi.h
@@ -160,7 +160,7 @@
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
#endif /* !DEBUGGER_THREADING */
-/* EDK2 EFI environemnt */
+/* EDK2 EFI environment */
#if defined(_EDK2_EFI)
diff --git a/source/tools/acpiexec/aeinstall.c b/source/tools/acpiexec/aeinstall.c
index e5790929b514..c526957169d9 100644
--- a/source/tools/acpiexec/aeinstall.c
+++ b/source/tools/acpiexec/aeinstall.c
@@ -215,6 +215,7 @@ static ACPI_ADR_SPACE_TYPE SpaceIdList[] =
ACPI_ADR_SPACE_IPMI,
ACPI_ADR_SPACE_GPIO,
ACPI_ADR_SPACE_GSBUS,
+ ACPI_ADR_SPACE_PLATFORM_COMM,
ACPI_ADR_SPACE_FIXED_HARDWARE,
ACPI_ADR_SPACE_USER_DEFINED1,
ACPI_ADR_SPACE_USER_DEFINED2
diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c
index 4f41edbd2fb1..9ee25805b932 100644
--- a/source/tools/acpiexec/aemain.c
+++ b/source/tools/acpiexec/aemain.c
@@ -255,8 +255,6 @@ usage (
ACPI_OPTION ("-df", "Disable Local fault handler");
ACPI_OPTION ("-di", "Disable execution of STA/INI methods during init");
ACPI_OPTION ("-do", "Disable Operation Region address simulation");
- ACPI_OPTION ("-dp", "Disable loading DSDT/SSDT as a control method\n"
- " (enable legacy grouping of module-level code)");
ACPI_OPTION ("-dr", "Disable repair of method return values");
ACPI_OPTION ("-ds", "Disable method auto-serialization");
ACPI_OPTION ("-dt", "Disable allocation tracking (performance)");
@@ -353,11 +351,6 @@ AeDoOptions (
AcpiGbl_DbOpt_NoRegionSupport = TRUE;
break;
- case 'p':
-
- AcpiGbl_ExecuteTablesAsMethods = FALSE;
- break;
-
case 'r':
AcpiGbl_DisableAutoRepair = TRUE;
@@ -630,10 +623,6 @@ main (
AcpiDbgLevel = ACPI_NORMAL_DEFAULT;
AcpiDbgLayer = 0xFFFFFFFF;
- /* Module-level code. Use new architecture */
-
- AcpiGbl_ExecuteTablesAsMethods = TRUE;
-
/*
* Initialize ACPICA and start debugger thread.
*
diff --git a/source/tools/acpiexec/aeregion.c b/source/tools/acpiexec/aeregion.c
index 152ef233856e..e6aa7f9f45bf 100644
--- a/source/tools/acpiexec/aeregion.c
+++ b/source/tools/acpiexec/aeregion.c
@@ -364,7 +364,7 @@ AeRegionHandler (
ACPI_FREE (Resource);
}
- AcpiOsPrintf (" [AccessLength %.2X Connnection %p]",
+ AcpiOsPrintf (" [AccessLength %.2X Connection %p]",
MyContext->AccessLength, MyContext->Connection);
}
@@ -440,6 +440,23 @@ AeRegionHandler (
/* Now perform the "normal" SystemMemory handling, for AcpiExec only */
break;
+ /*
+ * PCC operation region will write the entire subspace's data and expect
+ * a response from the hardware. For acpiexec, we'll fill the buffer with
+ * default values. Note: ASLTS will depend on these values.
+ */
+ case ACPI_ADR_SPACE_PLATFORM_COMM: /* ACPI 6.3 */
+ if (AcpiGbl_DisplayRegionAccess)
+ {
+ AcpiOsPrintf ("AcpiExec: PCC Write : Addr %.4X Width %X\n",
+ (UINT32) Address, BitWidth);
+ }
+ for (i = 0; i < Length; ++i)
+ {
+ Buffer[i] = (UINT8) i;
+ }
+ return (AE_OK);
+
default:
break;
}
diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c
index 51d5ee614d63..025246b72241 100644
--- a/source/tools/acpihelp/ahdecode.c
+++ b/source/tools/acpihelp/ahdecode.c
@@ -314,7 +314,7 @@ AhFindPredefinedNames (
return;
}
- /* Contruct a local name or name prefix */
+ /* Construct a local name or name prefix */
AcpiUtStrupr (NamePrefix);
if (*NamePrefix == '_')
diff --git a/source/tools/acpinames/anmain.c b/source/tools/acpinames/anmain.c
index f2f12122c6e6..91b55215e9a9 100644
--- a/source/tools/acpinames/anmain.c
+++ b/source/tools/acpinames/anmain.c
@@ -239,8 +239,6 @@ main (
/* Set flags so that the interpreter is not used */
- AcpiGbl_ExecuteTablesAsMethods = FALSE;
-
Status = AcpiInitializeSubsystem ();
ACPI_CHECK_OK (AcpiInitializeSubsystem, Status);
if (ACPI_FAILURE (Status))
diff --git a/source/tools/acpisrc/astable.c b/source/tools/acpisrc/astable.c
index 6fe0ed9985f0..b6706c3d58ea 100644
--- a/source/tools/acpisrc/astable.c
+++ b/source/tools/acpisrc/astable.c
@@ -744,7 +744,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
{"ACPI_HEST_GENERIC_DATA", SRC_TYPE_STRUCT},
{"ACPI_HEST_GENERIC_DATA_V300", SRC_TYPE_STRUCT},
{"ACPI_HEST_IA_DEFERRED_CHECK", SRC_TYPE_STRUCT},
- {"ACPI_HMAT_ADDRESS_RANGE", SRC_TYPE_STRUCT},
+ {"ACPI_HMAT_PROXIMITY_DOMAIN", SRC_TYPE_STRUCT},
{"ACPI_HMAT_CACHE", SRC_TYPE_STRUCT},
{"ACPI_HMAT_LOCALITY", SRC_TYPE_STRUCT},
{"ACPI_HMAT_STRUCTURE", SRC_TYPE_STRUCT},
@@ -829,6 +829,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
{"ACPI_SRAT_HEADER", SRC_TYPE_STRUCT},
{"ACPI_SRAT_GIC_ITS_AFFINITY", SRC_TYPE_STRUCT},
{"ACPI_SRAT_GICC_AFFINITY", SRC_TYPE_STRUCT},
+ {"ACPI_SRAT_GENERIC_AFFINITY", SRC_TYPE_STRUCT},
{"ACPI_SRAT_MEM_AFFINITY", SRC_TYPE_STRUCT},
{"ACPI_SRAT_X2APIC_CPU_AFFINITY", SRC_TYPE_STRUCT},
{"ACPI_TABLE_TCPA_CLIENT", SRC_TYPE_STRUCT},