Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/external/bsd/acpica/dist 30 September 2021. Summary of c...



details:   https://anonhg.NetBSD.org/src/rev/86bcb172d66f
branches:  trunk
changeset: 990474:86bcb172d66f
user:      christos <christos%NetBSD.org@localhost>
date:      Thu Oct 28 14:43:14 2021 +0000

description:
30 September 2021. Summary of changes for version 20210930:

This release is available at https://acpica.org/downloads

1) ACPICA kernel-resident subsystem:

Hardware: Avoid evaluating methods too early during system resume.
During wakeup from system-wide sleep states, AcpiGetSleepTypeData()
is called and it tries to get memory from the OS in order to evaluate
a control method, but if KFENCE is enabled in the Linux kernel,
the memory allocation attempt causes an IRQ work to be queued and
a self-IPI to be sent to the CPU running the code which requires
the memory controller to be ready, so if that happens too early in
the wakeup path, it doesn't work.

Prevent that from taking place by calling AcpiGetSleepTypeData()
for S0 upfront, when preparing to enter a given sleep state, and
saving the data obtained by it for later use during system wakeup.

Added a new _OSI string, "Windows 2020". Posted by superm1.

2) iASL Compiler/Disassembler and ACPICA tools:

iASL compiler: Updated the check for usage of _CRS, _DIS, _PRS, and _SRS objects:
New/latest rules: Under a Device Object:
1) If _PRS is present, must have _CRS and _SRS
2) If _SRS is present, must have _PRS (_PRS requires _CRS and _SRS)
3) If _DIS is present, must have _SRS (_SRS requires _PRS, _PRS requires _CRS
   and _SRS)
4) If _SRS is present, probably should have a _DIS (Remark only)

iASL table disassembler: Added disassembly support for the NHLT
ACPI table. Note: support for Vendor-defined microphone arrays and
SNR extensions are not supported at this time -- mostly due to a
lack of example tables. Actual compiler support for NHLT is
forthcoming.

Added a new subtable type for ACPI 6.4 SRAT Generic Port Affinity.
It uses the same subtable structure as the existing Generic Initiator
Affinity type.

Added the flag for online capable in the MADT, introduced in ACPI
6.3. Posted by superm1.

3) ACPICA documentation: Updated the legal info (that appears at
   the start of the Documents) to clarify distribution rights that
   are granted.

30 July 2021. Summary of changes for version 20210730:

This release is available at https://acpica.org/downloads

1) ACPICA kernel-resident subsystem:

2) iASL Compiler/Disassembler and ACPICA tools:

iasl: Check usage of _CRS, _DIS, _PRS, and _SRS objects (July 2021).
Under the Device Object:
1) If _DIS is present, must have a _CRS and _SRS
2) If _PRS is present, must have a _CRS, _DIS, and _SRS
3) If _SRS is present, must have a _CRS and _DIS
A warning will be issued for each of these cases.
Note: For existing ASL/projects, these warnings may be disabled by
specifying this on the command line:
"-vw 3141"

iASL Table Disassembler/Table compiler: Fix for WPBT table with no
command-line arguments. Handle the case where the Command-line
Arguments table field does not exist (zero).

Headers: Add new DBG2 Serial Port Subtypes
The Microsoft Debug Port Table 2 (DBG2) specification revision
September 21, 2020 comprises additional Serial Port Subtypes [1].
Reflect that in the actbl1.h header file. Submitted by:
semihalf-wojtas-marcin

iASL: Add full support for the AEST table (data compiler)
Includes support in the table compiler and the disassembler.

Add PRMT module header to facilitate parsing.
This structure is used in to parse PRMT in other Operating Systems
that relies on using subtable headers in order to parse ACPI tables.
Although the PRMT doesn't have "subtables" it has a list of module
information structures that act as subtables.

iASL: Table disassembler: Add missing strings to decode subtable types.
Includes the MADT and CEDT tables.

diffstat:

 sys/external/bsd/acpica/dist/changes.txt               |   92 +++
 sys/external/bsd/acpica/dist/common/adisasm.c          |    2 +-
 sys/external/bsd/acpica/dist/common/ahtable.c          |    1 +
 sys/external/bsd/acpica/dist/common/dmtable.c          |  205 +++++++
 sys/external/bsd/acpica/dist/common/dmtbdump1.c        |  219 +++++++
 sys/external/bsd/acpica/dist/common/dmtbdump2.c        |  300 ++++++++++
 sys/external/bsd/acpica/dist/common/dmtbdump3.c        |   19 +-
 sys/external/bsd/acpica/dist/common/dmtbinfo1.c        |  138 ++++
 sys/external/bsd/acpica/dist/common/dmtbinfo2.c        |  183 ++++++
 sys/external/bsd/acpica/dist/common/dmtbinfo3.c        |   31 +-
 sys/external/bsd/acpica/dist/compiler/aslmethod.c      |   65 ++-
 sys/external/bsd/acpica/dist/compiler/dtcompiler.h     |    9 +
 sys/external/bsd/acpica/dist/compiler/dttable1.c       |  217 +++++++
 sys/external/bsd/acpica/dist/compiler/dttable2.c       |   31 +-
 sys/external/bsd/acpica/dist/compiler/dttemplate.h     |   94 +++
 sys/external/bsd/acpica/dist/compiler/preprocess.h     |    2 +-
 sys/external/bsd/acpica/dist/dispatcher/dsfield.c      |    2 +-
 sys/external/bsd/acpica/dist/dispatcher/dswexec.c      |    2 +-
 sys/external/bsd/acpica/dist/generate/release/build.sh |    1 -
 sys/external/bsd/acpica/dist/include/acnames.h         |    1 +
 sys/external/bsd/acpica/dist/include/actbinfo.h        |   29 +
 sys/external/bsd/acpica/dist/include/actbl2.h          |  483 ++++++++++++++++-
 sys/external/bsd/acpica/dist/include/actbl3.h          |   16 +-
 sys/external/bsd/acpica/dist/tools/acpihelp/ahdecode.c |    4 +-
 sys/external/bsd/acpica/dist/tools/acpisrc/astable.c   |   48 +-
 25 files changed, 2149 insertions(+), 45 deletions(-)

diffs (truncated from 2755 to 300 lines):

diff -r da51391fb94f -r 86bcb172d66f sys/external/bsd/acpica/dist/changes.txt
--- a/sys/external/bsd/acpica/dist/changes.txt  Thu Oct 28 14:31:20 2021 +0000
+++ b/sys/external/bsd/acpica/dist/changes.txt  Thu Oct 28 14:43:14 2021 +0000
@@ -1,4 +1,96 @@
 ----------------------------------------
+30 September 2021. Summary of changes for version 20210930:
+
+This release is available at https://acpica.org/downloads
+
+1) ACPICA kernel-resident subsystem:
+
+Hardware: Avoid evaluating methods too early during system resume. During 
+wakeup from system-wide sleep states, AcpiGetSleepTypeData() is called 
+and it tries to get memory from the OS in order to evaluate a control 
+method, but if KFENCE is enabled in the Linux kernel, the memory 
+allocation attempt causes an IRQ work to be queued and a self-IPI to be 
+sent to the CPU running the code which requires the memory controller to 
+be ready, so if that happens too early in the wakeup path, it doesn't 
+work.
+
+Prevent that from taking place by calling AcpiGetSleepTypeData() for S0 
+upfront, when preparing to enter a given sleep state, and saving the data 
+obtained by it for later use during system wakeup.
+
+Added a new _OSI string, "Windows 2020". Posted by superm1.
+
+2) iASL Compiler/Disassembler and ACPICA tools:
+
+iASL compiler: Updated the check for usage of _CRS, _DIS, _PRS, and _SRS 
+objects:
+New/latest rules: Under a Device Object:
+         1) If _PRS is present, must have _CRS and _SRS
+         2) If _SRS is present, must have _PRS (_PRS requires _CRS and 
+_SRS)
+         3) If _DIS is present, must have _SRS (_SRS requires _PRS, _PRS 
+requires _CRS and _SRS)
+         4) If _SRS is present, probably should have a _DIS (Remark only)
+
+iASL table disassembler: Added disassembly support for the NHLT ACPI 
+table. Note: support for Vendor-defined microphone arrays and SNR 
+extensions are not supported at this time -- mostly due to a lack of 
+example tables. Actual compiler support for NHLT is forthcoming.
+
+Added a new subtable type for ACPI 6.4 SRAT Generic Port Affinity. It 
+uses the same subtable structure as the existing Generic Initiator 
+Affinity type.
+
+Added the flag for online capable in the MADT, introduced in ACPI 6.3. 
+Posted by superm1.
+
+3) ACPICA documentation: Updated the legal info (that appears at the 
+start of the Documents) to clarify distribution rights that are granted.
+
+
+----------------------------------------
+30 July 2021. Summary of changes for version 20210730:
+
+This release is available at https://acpica.org/downloads
+
+1) ACPICA kernel-resident subsystem:
+
+2) iASL Compiler/Disassembler and ACPICA tools:
+
+iasl: Check usage of _CRS, _DIS, _PRS, and _SRS objects (July 2021).
+  Under the Device Object:
+  1) If _DIS is present, must have a _CRS and _SRS
+  2) If _PRS is present, must have a _CRS, _DIS, and _SRS
+  3) If _SRS is present, must have a _CRS and _DIS
+A warning will be issued for each of these cases.
+Note: For existing ASL/projects, these warnings may be disabled by 
+specifying this on the command line:
+"-vw 3141"
+
+iASL Table Disassembler/Table compiler: Fix for WPBT table with no
+command-line arguments. Handle the case where the Command-line
+Arguments table field does not exist (zero).
+
+Headers: Add new DBG2 Serial Port Subtypes
+The Microsoft Debug Port Table 2 (DBG2) specification revision
+September 21, 2020 comprises additional Serial Port Subtypes [1].
+Reflect that in the actbl1.h header file. Submitted by:
+semihalf-wojtas-marcin
+
+iASL: Add full support for the AEST table (data compiler)
+Includes support in the table compiler and the disassembler.
+
+Add PRMT module header to facilitate parsing.
+This structure is used in to parse PRMT in other Operating Systems
+that relies on using subtable headers in order to parse ACPI tables.
+Although the PRMT doesn't have "subtables" it has a list of module
+information structures that act as subtables.
+
+iASL: Table disassembler: Add missing strings to decode subtable types.
+Includes the MADT and CEDT tables.
+
+
+----------------------------------------
 04 June 2021. Summary of changes for version 20210604:
 
 1) ACPICA kernel-resident subsystem:
diff -r da51391fb94f -r 86bcb172d66f sys/external/bsd/acpica/dist/common/adisasm.c
--- a/sys/external/bsd/acpica/dist/common/adisasm.c     Thu Oct 28 14:31:20 2021 +0000
+++ b/sys/external/bsd/acpica/dist/common/adisasm.c     Thu Oct 28 14:43:14 2021 +0000
@@ -370,7 +370,7 @@
         AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n",
             Table->Signature);
         AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength]  "
-            "FieldName : FieldValue\n */\n\n");
+            "FieldName : FieldValue (in hex)\n */\n\n");
 
         AcpiDmDumpDataTable (Table);
         fprintf (stderr, "Acpi Data Table [%4.4s] decoded\n",
diff -r da51391fb94f -r 86bcb172d66f sys/external/bsd/acpica/dist/common/ahtable.c
--- a/sys/external/bsd/acpica/dist/common/ahtable.c     Thu Oct 28 14:31:20 2021 +0000
+++ b/sys/external/bsd/acpica/dist/common/ahtable.c     Thu Oct 28 14:43:14 2021 +0000
@@ -91,6 +91,7 @@
  */
 const AH_TABLE      AcpiGbl_SupportedTables[] =
 {
+    {ACPI_SIG_AEST, "Arm Error Source Table"},
     {ACPI_SIG_ASF,  "Alert Standard Format Table"},
     {ACPI_SIG_BDAT, "BIOS Data ACPI Table"},
     {ACPI_SIG_BERT, "Boot Error Record Table"},
diff -r da51391fb94f -r 86bcb172d66f sys/external/bsd/acpica/dist/common/dmtable.c
--- a/sys/external/bsd/acpica/dist/common/dmtable.c     Thu Oct 28 14:31:20 2021 +0000
+++ b/sys/external/bsd/acpica/dist/common/dmtable.c     Thu Oct 28 14:43:14 2021 +0000
@@ -66,6 +66,55 @@
 
 /* These tables map a subtable type to a description string */
 
+static const char           *AcpiDmAestResourceNames[] =
+{
+    "Cache Resource",
+    "TLB Resource",
+    "Generic Resource",
+    "Unknown Resource Type"         /* Reserved */
+};
+
+static const char           *AcpiDmAestSubnames[] =
+{
+    "Processor Error Node",
+    "Memory Error Node",
+    "SMMU Error Node",
+    "Vendor-defined Error Node",
+    "GIC Error Node",
+    "Unknown Subtable Type"         /* Reserved */
+};
+
+static const char           *AcpiDmAestCacheNames[] =
+{
+    "Data Cache",
+    "Instruction Cache",
+    "Unified Cache",
+    "Unknown Cache Type"            /* Reserved */
+};
+
+static const char           *AcpiDmAestGicNames[] =
+{
+    "GIC CPU",
+    "GIC Distributor",
+    "GIC Redistributor",
+    "GIC ITS",
+    "Unknown GIC Interface Type"    /* Reserved */
+};
+
+static const char           *AcpiDmAestXfaceNames[] =
+{
+    "System Register Interface",
+    "Memory Mapped Interface",
+    "Unknown Interface Type"        /* Reserved */
+};
+
+static const char           *AcpiDmAestXruptNames[] =
+{
+    "Fault Handling Interrupt",
+    "Error Recovery Interrupt",
+    "Unknown Interrupt Type"        /* Reserved */
+};
+
 static const char           *AcpiDmAsfSubnames[] =
 {
     "ASF Information",
@@ -260,6 +309,26 @@
     "Unknown Subtable Type"             /* Reserved */
 };
 
+static const char           *AcpiDmNhltLinkTypeNames[] =
+{
+    "Reserved for HD-Audio",            /* ACPI_NHLT_RESERVED_HD_AUDIO */
+    "Reserved for DSP",                 /* ACPI_NHLT_RESERVED_DSP */
+    "Type PDM",                         /* ACPI_NHLT_PDM */
+    "Type SSP",                         /* ACPI_NHLT_SSP */
+    "Reserved for SlimBus",             /* ACPI_NHLT_RESERVED_SLIMBUS */
+    "Reserved for SoundWire",           /* ACPI_NHLT_RESERVED_SOUNDWIRE */
+    "Unknown Link Type"                 /* Reserved */
+};
+
+static const char           *AcpiDmNhltDirectionNames[] =
+{
+    "Render",                           /* ACPI_NHLT_DIR_RENDER */
+    "Capture",                          /* ACPI_NHLT_DIR_CAPTURE */
+    "Render with Loopback",             /* ACPI_NHLT_DIR_RENDER_LOOPBACK */
+    "Feedback for Render",              /* ACPI_NHLT_DIR_RENDER_FEEDBACK */
+    "Unknown Direction"                 /* Reserved */
+};
+
 static const char           *AcpiDmPcctSubnames[] =
 {
     "Generic Communications Subspace",  /* ACPI_PCCT_TYPE_GENERIC_SUBSPACE */
@@ -316,6 +385,7 @@
     "GICC Affinity",
     "GIC ITS Affinity",             /* Acpi 6.2 */
     "Generic Initiator Affinity",   /* Acpi 6.3 */
+    "Generic Port Affinity",        /* Acpi 6.4 */
     "Unknown Subtable Type"         /* Reserved */
 };
 
@@ -425,6 +495,7 @@
 
 const ACPI_DMTABLE_DATA     AcpiDmTableData[] =
 {
+    {ACPI_SIG_AEST, NULL,                   AcpiDmDumpAest, DtCompileAest,  TemplateAest},
     {ACPI_SIG_ASF,  NULL,                   AcpiDmDumpAsf,  DtCompileAsf,   TemplateAsf},
     {ACPI_SIG_BDAT, AcpiDmTableInfoBdat,    NULL,           NULL,           TemplateBdat},
     {ACPI_SIG_BERT, AcpiDmTableInfoBert,    NULL,           NULL,           TemplateBert},
@@ -456,6 +527,7 @@
     {ACPI_SIG_MSCT, NULL,                   AcpiDmDumpMsct, DtCompileMsct,  TemplateMsct},
     {ACPI_SIG_MSDM, NULL,                   AcpiDmDumpSlic, DtCompileSlic,  TemplateMsdm},
     {ACPI_SIG_NFIT, AcpiDmTableInfoNfit,    AcpiDmDumpNfit, DtCompileNfit,  TemplateNfit},
+    {ACPI_SIG_NHLT, AcpiDmTableInfoNhlt,    AcpiDmDumpNhlt, NULL,           NULL},
     {ACPI_SIG_PCCT, AcpiDmTableInfoPcct,    AcpiDmDumpPcct, DtCompilePcct,  TemplatePcct},
     {ACPI_SIG_PDTT, AcpiDmTableInfoPdtt,    AcpiDmDumpPdtt, DtCompilePdtt,  TemplatePdtt},
     {ACPI_SIG_PHAT, NULL,                   AcpiDmDumpPhat, DtCompilePhat,  TemplatePhat},
@@ -892,12 +964,18 @@
         case ACPI_DMT_IVRS_DE:
         case ACPI_DMT_GTDT:
         case ACPI_DMT_MADT:
+        case ACPI_DMT_NHLT1:
+        case ACPI_DMT_NHLT1a:
         case ACPI_DMT_PCCT:
         case ACPI_DMT_PMTT:
         case ACPI_DMT_PPTT:
         case ACPI_DMT_RGRT:
         case ACPI_DMT_SDEV:
         case ACPI_DMT_SRAT:
+        case ACPI_DMT_AEST:
+        case ACPI_DMT_AEST_RES:
+        case ACPI_DMT_AEST_XFACE:
+        case ACPI_DMT_AEST_XRUPT:
         case ACPI_DMT_ASF:
         case ACPI_DMT_HESTNTYP:
         case ACPI_DMT_FADTPM:
@@ -927,6 +1005,8 @@
             break;
 
         case ACPI_DMT_UINT32:
+        case ACPI_DMT_AEST_CACHE:
+        case ACPI_DMT_AEST_GIC:
         case ACPI_DMT_NAME4:
         case ACPI_DMT_SIG:
         case ACPI_DMT_LPIT:
@@ -974,11 +1054,22 @@
             ByteLength = 16;
             break;
 
+        case ACPI_DMT_BUF18:
+
+            ByteLength = 18;
+            break;
+
         case ACPI_DMT_BUF128:
 
             ByteLength = 128;
             break;
 
+        case ACPI_DMT_WPBT_UNICODE:
+
+            ByteLength = SubtableLength;
+            CurrentOffset = sizeof (ACPI_TABLE_WPBT);
+            break;
+
         case ACPI_DMT_UNICODE:
         case ACPI_DMT_BUFFER:
         case ACPI_DMT_RAW_BUFFER:
@@ -1173,6 +1264,7 @@
         case ACPI_DMT_BUF10:
         case ACPI_DMT_BUF12:
         case ACPI_DMT_BUF16:
+        case ACPI_DMT_BUF18:
         case ACPI_DMT_BUF128:
             /*
              * Buffer: Size depends on the opcode and was set above.
@@ -1310,6 +1402,90 @@
             LastOutputBlankLine = TRUE;
             break;
 
+        case ACPI_DMT_AEST:
+
+            /* AEST subtable types */
+



Home | Main Index | Thread Index | Old Index