Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Aug 2017 05:49:37 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r322877 - in stable/11: sys/conf sys/contrib/dev/acpica sys/contrib/dev/acpica/common sys/contrib/dev/acpica/compiler sys/contrib/dev/acpica/components/debugger sys/contrib/dev/acpica/c...
Message-ID:  <201708250549.v7P5nb2P096879@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Fri Aug 25 05:49:37 2017
New Revision: 322877
URL: https://svnweb.freebsd.org/changeset/base/322877

Log:
  MFC:	r319365, r321670
  
  Merge ACPICA 20170728.

Added:
  stable/11/sys/contrib/dev/acpica/common/dmswitch.c
     - copied unchanged from r319365, head/sys/contrib/dev/acpica/common/dmswitch.c
  stable/11/sys/contrib/dev/acpica/compiler/aslparseop.c
     - copied unchanged from r321670, head/sys/contrib/dev/acpica/compiler/aslparseop.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c
     - copied unchanged from r321670, head/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utresdecode.c
     - copied unchanged from r319365, head/sys/contrib/dev/acpica/components/utilities/utresdecode.c
Modified:
  stable/11/sys/conf/files
  stable/11/sys/contrib/dev/acpica/changes.txt
  stable/11/sys/contrib/dev/acpica/common/acfileio.c
  stable/11/sys/contrib/dev/acpica/common/adfile.c
  stable/11/sys/contrib/dev/acpica/common/adisasm.c
  stable/11/sys/contrib/dev/acpica/common/adwalk.c
  stable/11/sys/contrib/dev/acpica/common/ahids.c
  stable/11/sys/contrib/dev/acpica/common/ahpredef.c
  stable/11/sys/contrib/dev/acpica/common/ahtable.c
  stable/11/sys/contrib/dev/acpica/common/ahuuids.c
  stable/11/sys/contrib/dev/acpica/common/dmextern.c
  stable/11/sys/contrib/dev/acpica/common/dmrestag.c
  stable/11/sys/contrib/dev/acpica/common/dmtable.c
  stable/11/sys/contrib/dev/acpica/common/dmtbdump.c
  stable/11/sys/contrib/dev/acpica/common/dmtbinfo.c
  stable/11/sys/contrib/dev/acpica/compiler/aslanalyze.c
  stable/11/sys/contrib/dev/acpica/compiler/aslascii.c
  stable/11/sys/contrib/dev/acpica/compiler/aslbtypes.c
  stable/11/sys/contrib/dev/acpica/compiler/aslcodegen.c
  stable/11/sys/contrib/dev/acpica/compiler/aslcompile.c
  stable/11/sys/contrib/dev/acpica/compiler/aslcompiler.h
  stable/11/sys/contrib/dev/acpica/compiler/aslcompiler.l
  stable/11/sys/contrib/dev/acpica/compiler/aslcstyle.y
  stable/11/sys/contrib/dev/acpica/compiler/asldefine.h
  stable/11/sys/contrib/dev/acpica/compiler/aslerror.c
  stable/11/sys/contrib/dev/acpica/compiler/aslexternal.c
  stable/11/sys/contrib/dev/acpica/compiler/aslfold.c
  stable/11/sys/contrib/dev/acpica/compiler/aslglobal.h
  stable/11/sys/contrib/dev/acpica/compiler/aslhelp.c
  stable/11/sys/contrib/dev/acpica/compiler/aslhelpers.y
  stable/11/sys/contrib/dev/acpica/compiler/aslkeywords.y
  stable/11/sys/contrib/dev/acpica/compiler/asllength.c
  stable/11/sys/contrib/dev/acpica/compiler/asllisting.c
  stable/11/sys/contrib/dev/acpica/compiler/aslload.c
  stable/11/sys/contrib/dev/acpica/compiler/asllookup.c
  stable/11/sys/contrib/dev/acpica/compiler/aslmain.c
  stable/11/sys/contrib/dev/acpica/compiler/aslmap.c
  stable/11/sys/contrib/dev/acpica/compiler/aslmapoutput.c
  stable/11/sys/contrib/dev/acpica/compiler/aslmessages.c
  stable/11/sys/contrib/dev/acpica/compiler/aslmessages.h
  stable/11/sys/contrib/dev/acpica/compiler/aslmethod.c
  stable/11/sys/contrib/dev/acpica/compiler/asloffset.c
  stable/11/sys/contrib/dev/acpica/compiler/aslopcodes.c
  stable/11/sys/contrib/dev/acpica/compiler/aslopt.c
  stable/11/sys/contrib/dev/acpica/compiler/asloptions.c
  stable/11/sys/contrib/dev/acpica/compiler/aslparser.y
  stable/11/sys/contrib/dev/acpica/compiler/aslpld.c
  stable/11/sys/contrib/dev/acpica/compiler/aslpredef.c
  stable/11/sys/contrib/dev/acpica/compiler/aslprimaries.y
  stable/11/sys/contrib/dev/acpica/compiler/aslprintf.c
  stable/11/sys/contrib/dev/acpica/compiler/aslresource.c
  stable/11/sys/contrib/dev/acpica/compiler/aslresources.y
  stable/11/sys/contrib/dev/acpica/compiler/aslrestype2s.c
  stable/11/sys/contrib/dev/acpica/compiler/aslrules.y
  stable/11/sys/contrib/dev/acpica/compiler/aslstartup.c
  stable/11/sys/contrib/dev/acpica/compiler/aslsupport.l
  stable/11/sys/contrib/dev/acpica/compiler/aslsupport.y
  stable/11/sys/contrib/dev/acpica/compiler/asltokens.y
  stable/11/sys/contrib/dev/acpica/compiler/asltransform.c
  stable/11/sys/contrib/dev/acpica/compiler/asltree.c
  stable/11/sys/contrib/dev/acpica/compiler/asltypes.h
  stable/11/sys/contrib/dev/acpica/compiler/asltypes.y
  stable/11/sys/contrib/dev/acpica/compiler/aslutils.c
  stable/11/sys/contrib/dev/acpica/compiler/aslwalks.c
  stable/11/sys/contrib/dev/acpica/compiler/aslxref.c
  stable/11/sys/contrib/dev/acpica/compiler/cvcompiler.c
  stable/11/sys/contrib/dev/acpica/compiler/cvdisasm.c
  stable/11/sys/contrib/dev/acpica/compiler/cvparser.c
  stable/11/sys/contrib/dev/acpica/compiler/dtcompile.c
  stable/11/sys/contrib/dev/acpica/compiler/dtcompiler.h
  stable/11/sys/contrib/dev/acpica/compiler/dtfield.c
  stable/11/sys/contrib/dev/acpica/compiler/dttable1.c
  stable/11/sys/contrib/dev/acpica/compiler/dttable2.c
  stable/11/sys/contrib/dev/acpica/compiler/dttemplate.h
  stable/11/sys/contrib/dev/acpica/compiler/dtutils.c
  stable/11/sys/contrib/dev/acpica/compiler/prmacros.c
  stable/11/sys/contrib/dev/acpica/components/debugger/dbdisply.c
  stable/11/sys/contrib/dev/acpica/components/debugger/dbexec.c
  stable/11/sys/contrib/dev/acpica/components/debugger/dbobject.c
  stable/11/sys/contrib/dev/acpica/components/debugger/dbxface.c
  stable/11/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c
  stable/11/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c
  stable/11/sys/contrib/dev/acpica/components/disassembler/dmopcode.c
  stable/11/sys/contrib/dev/acpica/components/disassembler/dmresrc.c
  stable/11/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c
  stable/11/sys/contrib/dev/acpica/components/disassembler/dmwalk.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dsargs.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dsdebug.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dsobject.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dsutils.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dswexec.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dswload.c
  stable/11/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
  stable/11/sys/contrib/dev/acpica/components/events/evxfevnt.c
  stable/11/sys/contrib/dev/acpica/components/executer/excreate.c
  stable/11/sys/contrib/dev/acpica/components/executer/exdebug.c
  stable/11/sys/contrib/dev/acpica/components/executer/exdump.c
  stable/11/sys/contrib/dev/acpica/components/executer/exmisc.c
  stable/11/sys/contrib/dev/acpica/components/executer/exoparg1.c
  stable/11/sys/contrib/dev/acpica/components/executer/exoparg2.c
  stable/11/sys/contrib/dev/acpica/components/executer/exresolv.c
  stable/11/sys/contrib/dev/acpica/components/hardware/hwregs.c
  stable/11/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
  stable/11/sys/contrib/dev/acpica/components/namespace/nsaccess.c
  stable/11/sys/contrib/dev/acpica/components/namespace/nsarguments.c
  stable/11/sys/contrib/dev/acpica/components/namespace/nsinit.c
  stable/11/sys/contrib/dev/acpica/components/namespace/nsnames.c
  stable/11/sys/contrib/dev/acpica/components/namespace/nsprepkg.c
  stable/11/sys/contrib/dev/acpica/components/namespace/nsutils.c
  stable/11/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
  stable/11/sys/contrib/dev/acpica/components/parser/psloop.c
  stable/11/sys/contrib/dev/acpica/components/parser/psobject.c
  stable/11/sys/contrib/dev/acpica/components/parser/psopcode.c
  stable/11/sys/contrib/dev/acpica/components/parser/psparse.c
  stable/11/sys/contrib/dev/acpica/components/resources/rscalc.c
  stable/11/sys/contrib/dev/acpica/components/resources/rsdump.c
  stable/11/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c
  stable/11/sys/contrib/dev/acpica/components/resources/rsinfo.c
  stable/11/sys/contrib/dev/acpica/components/resources/rsmisc.c
  stable/11/sys/contrib/dev/acpica/components/resources/rsserial.c
  stable/11/sys/contrib/dev/acpica/components/resources/rsxface.c
  stable/11/sys/contrib/dev/acpica/components/tables/tbdata.c
  stable/11/sys/contrib/dev/acpica/components/tables/tbfadt.c
  stable/11/sys/contrib/dev/acpica/components/tables/tbinstal.c
  stable/11/sys/contrib/dev/acpica/components/tables/tbutils.c
  stable/11/sys/contrib/dev/acpica/components/tables/tbxface.c
  stable/11/sys/contrib/dev/acpica/components/tables/tbxfload.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utdecode.c
  stable/11/sys/contrib/dev/acpica/components/utilities/uthex.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utmath.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utmisc.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utobject.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utownerid.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utresrc.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utstate.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c
  stable/11/sys/contrib/dev/acpica/components/utilities/uttrack.c
  stable/11/sys/contrib/dev/acpica/components/utilities/utxfmutex.c
  stable/11/sys/contrib/dev/acpica/include/acapps.h
  stable/11/sys/contrib/dev/acpica/include/acdisasm.h
  stable/11/sys/contrib/dev/acpica/include/acdispat.h
  stable/11/sys/contrib/dev/acpica/include/acglobal.h
  stable/11/sys/contrib/dev/acpica/include/aclocal.h
  stable/11/sys/contrib/dev/acpica/include/acnames.h
  stable/11/sys/contrib/dev/acpica/include/acobject.h
  stable/11/sys/contrib/dev/acpica/include/acopcode.h
  stable/11/sys/contrib/dev/acpica/include/acpi.h
  stable/11/sys/contrib/dev/acpica/include/acpixf.h
  stable/11/sys/contrib/dev/acpica/include/acpredef.h
  stable/11/sys/contrib/dev/acpica/include/acresrc.h
  stable/11/sys/contrib/dev/acpica/include/acrestyp.h
  stable/11/sys/contrib/dev/acpica/include/actables.h
  stable/11/sys/contrib/dev/acpica/include/actbl.h
  stable/11/sys/contrib/dev/acpica/include/actbl1.h
  stable/11/sys/contrib/dev/acpica/include/actbl2.h
  stable/11/sys/contrib/dev/acpica/include/actbl3.h
  stable/11/sys/contrib/dev/acpica/include/actypes.h
  stable/11/sys/contrib/dev/acpica/include/acutils.h
  stable/11/sys/contrib/dev/acpica/include/acuuid.h
  stable/11/sys/contrib/dev/acpica/include/amlcode.h
  stable/11/sys/contrib/dev/acpica/include/amlresrc.h
  stable/11/sys/contrib/dev/acpica/include/platform/acenv.h
  stable/11/sys/contrib/dev/acpica/include/platform/acfreebsd.h
  stable/11/sys/contrib/dev/acpica/include/platform/acgcc.h
  stable/11/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c
  stable/11/sys/dev/acpica/acpi.c
  stable/11/usr.sbin/acpi/acpidb/Makefile
  stable/11/usr.sbin/acpi/iasl/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/conf/files
==============================================================================
--- stable/11/sys/conf/files	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/conf/files	Fri Aug 25 05:49:37 2017	(r322877)
@@ -340,6 +340,7 @@ contrib/dev/acpica/components/dispatcher/dsmethod.c	op
 contrib/dev/acpica/components/dispatcher/dsmthdat.c	optional acpi
 contrib/dev/acpica/components/dispatcher/dsobject.c	optional acpi
 contrib/dev/acpica/components/dispatcher/dsopcode.c	optional acpi
+contrib/dev/acpica/components/dispatcher/dspkginit.c	optional acpi
 contrib/dev/acpica/components/dispatcher/dsutils.c	optional acpi
 contrib/dev/acpica/components/dispatcher/dswexec.c	optional acpi
 contrib/dev/acpica/components/dispatcher/dswload.c	optional acpi
@@ -477,6 +478,7 @@ contrib/dev/acpica/components/utilities/utobject.c	opt
 contrib/dev/acpica/components/utilities/utosi.c		optional acpi
 contrib/dev/acpica/components/utilities/utownerid.c	optional acpi
 contrib/dev/acpica/components/utilities/utpredef.c	optional acpi
+contrib/dev/acpica/components/utilities/utresdecode.c	optional acpi acpi_debug
 contrib/dev/acpica/components/utilities/utresrc.c	optional acpi
 contrib/dev/acpica/components/utilities/utstate.c	optional acpi
 contrib/dev/acpica/components/utilities/utstring.c	optional acpi

Modified: stable/11/sys/contrib/dev/acpica/changes.txt
==============================================================================
--- stable/11/sys/contrib/dev/acpica/changes.txt	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/changes.txt	Fri Aug 25 05:49:37 2017	(r322877)
@@ -1,4 +1,286 @@
 ----------------------------------------
+28 July 2017. Summary of changes for version 20170728:
+
+
+1) ACPICA kernel-resident subsystem:
+
+Fixed a regression seen with small resource descriptors that could cause 
+an inadvertent AE_AML_NO_RESOURCE_END_TAG exception.
+
+AML interpreter: Implemented a new feature that allows forward references 
+from individual named references within package objects that are 
+contained within blocks of "module-level code". This provides 
+compatibility with other ACPI implementations and supports existing 
+firmware that depends on this feature. Example:
+
+    Name (ABCD, 1)
+    If (ABCD)                       /* An If() at module-level */
+    {
+        Name (PKG1, Package()
+        {
+            INT1                    /* Forward reference to object INT1 
+*/
+        })
+        Name (INT1, 0x1234)
+    }
+
+AML Interpreter: Fixed a problem with the Alias() operator where aliases 
+to some ASL objects were not handled properly. Objects affected are: 
+Mutex, Event, and OperationRegion.
+
+AML Debugger: Enhanced to properly handle AML Alias objects. These 
+objects have one level of indirection which was not fully supported by 
+the debugger.
+
+Table Manager: Added support to detect and ignore duplicate SSDTs within 
+the XSDT/RSDT. This error in the XSDT has been seen in the field.
+
+EFI and EDK2 support:
+    Enabled /WX flag for MSVC builds
+    Added support for AcpiOsStall, AcpiOsSleep, and AcpiOsGetTimer
+    Added local support for 64-bit multiply and shift operations
+    Added support to compile acpidump.efi on Windows
+    Added OSL function stubs for interfaces not used under EFI
+
+Added additional support for the _DMA predefined name. _DMA returns a 
+buffer containing a resource template. This change add support within the 
+resource manager (AcpiWalkResourceBuffer) to walk and parse this list of 
+resource descriptors. Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Fixed a problem where the internal input line buffer(s) could 
+overflow if there are very long lines in the input ASL source code file. 
+Implemented buffer management that automatically increases the size of 
+the buffers as necessary.
+
+iASL: Added an option (-vx) to "expect" particular remarks, warnings and 
+errors. If the specified exception is not raised during compilation, the 
+compiler emits an error. This is intended to support the ASL test suite, 
+but may be useful in other contexts.
+
+iASL: Implemented a new predefined macro, __METHOD__, which returns a 
+string containing the name of the current control method that is being 
+compiled.
+
+iASL: Implemented debugger and table compiler support for the SDEI ACPI 
+table (Software Delegated Exception Interface). James Morse 
+<james.morse@arm.com>
+
+Unix/Linux makefiles: Added an option to disable compile optimizations. 
+The disable occurs when the NOOPT flag is set to TRUE. 
+theracermaster@gmail.com
+
+Acpidump: Added support for multiple DSDT and FACS tables. This can occur 
+when there are different tables for 32-bit versus 64-bit.
+
+Enhanced error reporting for the ASL test suite (ASLTS) by removing 
+unnecessary/verbose text, and emit the actual line number where an error 
+has occurred. These changes are intended to improve the usefulness of the 
+test suite.
+
+----------------------------------------
+29 June 2017. Summary of changes for version 20170629:
+
+
+1) ACPICA kernel-resident subsystem:
+
+Tables: Implemented a deferred ACPI table verification. This is useful 
+for operating systems where the tables cannot be verified in the early 
+initialization stage due to early memory mapping limitations on some 
+architectures. Lv Zheng.
+
+Tables: Removed the signature validation for dynamically loaded tables. 
+Provides compatibility with other ACPI implementations. Previously, only 
+SSDT tables were allowed, as per the ACPI specification. Now, any table 
+signature can be used via the Load() operator. Lv Zheng.
+
+Tables: Fixed several mutex issues that could cause errors during table 
+acquisition. Lv Zheng.
+
+Tables: Fixed a problem where an ACPI warning could be generated if a 
+null pointer was passed to the AcpiPutTable interface. Lv Zheng.
+
+Tables: Added a mechanism to handle imbalances for the AcpiGetTable and 
+AcpiPutTable interfaces. This applies to the "late stage" table loading 
+when the use of AcpiPutTable is no longer required (since the system 
+memory manager is fully running and available). Lv Zheng.
+
+Fixed/Reverted a regression during processing of resource descriptors 
+that contain only a single EndTag. Fixes an AE_AML_NO_RESOURCE_END_TAG 
+exception in this case.
+
+Headers: IORT/SMMU support: Updated the SMMU models for Revision C of the 
+I/O Remapping specification. Robin Murphy <robin.murphy@arm.com>
+
+Interpreter: Fixed a possible fault if an Alias operator with an invalid 
+or duplicate target is encountered during Alias creation in 
+AcpiExCreateAlias. Alex James <theracermaster@gmail.com>
+
+Added an option to use designated initializers for function pointers. 
+Kees Cook <keescook@google.com>
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Allow compilation of External declarations with target pathnames 
+that refer to existing named objects within the table. Erik Schmauss.
+
+iASL: Fixed a regression when compiling FieldUnits. Fixes an error if a 
+FieldUnit name also is declared via External in the same table. Erik 
+Schmauss.
+
+iASL: Allow existing scope names within pathnames used in External 
+statements. For example:
+    External (ABCD.EFGH) // ABCD exists, but EFGH is truly external
+    Device (ABCD)
+
+iASL: IORT ACPI table: Implemented changes required to decode the new 
+Proximity Domain for the SMMUv3 IORT. Disassembler and Data Table 
+compiler. Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
+
+Disassembler: Don't abort disassembly on errors from External() 
+statements. Erik Schmauss.
+
+Disassembler: fixed a possible fault when one of the Create*Field 
+operators references a Resource Template. ACPICA Bugzilla 1396.
+
+iASL: In the source code, resolved some naming inconsistences across the 
+parsing support. Fixes confusion between "Parse Op" and "Parse Node". 
+Adds a new file, aslparseop.c
+
+----------------------------------------
+31 May 2017. Summary of changes for version 20170531:
+
+
+0) ACPI 6.2 support:
+
+The ACPI specification version 6.2 has been released and is available at
+http://uefi.org/specifications
+
+This version of ACPICA fully supports the ACPI 6.2 specification. Changes 
+are summarized below.
+
+New ACPI tables (Table Compiler/Disassembler/Templates):
+    HMAT (Heterogeneous Memory Attributes Table)
+    WSMT (Windows SMM Security Mitigation Table)
+    PPTT (Processor Properties Topology Table)
+
+New subtables for existing ACPI tables:
+    HEST (New subtable, Arch-deferred machine check)
+    SRAT (New subtable, Arch-specific affinity structure)
+    PCCT (New subtables, Extended PCC subspaces (types 3 and 4))
+
+Simple updates for existing ACPI tables:
+    BGRT (two new flag bits)
+    HEST (New bit defined for several subtables, GHES_ASSIST)
+
+New Resource Descriptors and Resource macros (Compiler/Disassembler):
+    PinConfig()
+    PinFunction()
+    PinGroup()
+    PinGroupConfig()
+    PinGroupFunction()
+    New type for hardware error notification (section 18.3.2.9)
+
+New predefined names/methods (Compiler/Interpreter):
+    _HMA (Heterogeneous Memory Attributes)
+    _LSI (Label Storage Information)
+    _LSR (Label Storage Read)
+    _LSW (Label Storage Write)
+
+ASL grammar/macro changes (Compiler):
+    For() ASL macro, implemented with the AML while operator
+    Extensions to Concatenate operator
+    Support for multiple definition blocks in same ASL file
+    Clarification for Buffer operator
+    Allow executable AML code underneath all scopes (Devices, etc.)
+    Clarification/change for the _OSI return value
+    ASL grammar update for reference operators
+    Allow a zero-length string for AML filename in DefinitionBlock
+
+Miscellaneous:
+    New device object notification value
+    Remove a notify value (0x0C) for graceful shutdown
+    New UUIDs for processor/cache properties and
+        physical package property
+    New _HID, ACPI0014 (Wireless Power Calibration Device)
+
+
+1) ACPICA kernel-resident subsystem:
+
+Added support to disable ACPI events on hardware-reduced platforms. 
+Eliminates error messages of the form "Could not enable fixed event". Lv 
+Zheng
+
+Fixed a problem using Device/Thermal objects with the ObjectType and 
+DerefOf ASL operators. This support had not been fully/properly 
+implemented.
+
+Fixed a problem where if a Buffer object containing a resource template 
+was longer than the actual resource template, an error was generated -- 
+even though the AML is legal. This case has been seen in the field.
+
+Fixed a problem with the header definition of the MADT PCAT_COMPAT flag. 
+The values for DUAL_PIC and MULTIPLE_APIC were reversed.
+
+Added header file changes for the TPM2 ACPI table. Update to new version 
+of the TCG specification. Adds a new TPM2 subtable for ARM SMC.
+
+Exported the external interfaces AcpiAcquireMutex and AcpiReleaseMutex. 
+These interfaces are intended to be used only in conjunction with the 
+predefined _DLM method (Device Lock Method). "This object appears in a 
+device scope when AML access to the device must be synchronized with the 
+OS environment".
+
+Example Code and Data Size: These are the sizes for the OS-independent 
+acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
+debug version of the code includes the debug output trace mechanism and 
+has a much larger code and data size.
+
+  Current Release:
+    Non-Debug Version: 143.1K Code, 60.0K Data, 203.1K Total
+    Debug Version:     204.0K Code, 84.3K Data, 288.3K Total
+  Previous Release:
+    Non-Debug Version: 141.7K Code, 58.5K Data, 200.2K Total
+    Debug Version:     207.5K Code, 82.7K Data, 290.2K Total
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Fixed a problem where an External() declaration could not refer to 
+a Field Unit. Erik Schmauss.
+
+Disassembler: Improved support for the Switch/Case operators. This 
+feature will disassemble AML code back to the original Switch operators 
+when possible, instead of an If..Else sequence. David Box
+
+iASL and disassembler: Improved the handling of multiple extraneous 
+parentheses for both ASL input and disassembled ASL output.
+
+Improved the behavior of the iASL compiler and disassembler to detect 
+improper use of external declarations
+
+Disassembler: Now aborts immediately upon detection of an unknown AML 
+opcode. The AML parser has no real way to recover from this, and can 
+result in the creation of an ill-formed parse tree that causes errors 
+later during the disassembly.
+
+All tools: Fixed a problem where the Unix application OSL did not handle 
+control-c correctly. For example, a control-c could incorrectly wake the 
+debugger.
+
+AcpiExec: Improved the Control-C handling and added a handler for 
+segmentation faults (SIGSEGV). Supports both Windows and Unix-like 
+environments.
+
+Reduced the verbosity of the generic unix makefiles. Previously, each 
+compilation displayed the full set of compiler options. This has been 
+eliminated as the options are easily inspected within the makefiles. Each 
+compilation now results in a single line of output.
+
+----------------------------------------
 03 March 2017. Summary of changes for version 20170303:
 
 

Modified: stable/11/sys/contrib/dev/acpica/common/acfileio.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/acfileio.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/acfileio.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -175,6 +175,36 @@ AcCheckTextModeCorruption (
 
 /*******************************************************************************
  *
+ * FUNCTION:    AcDeleteTableList
+ *
+ * PARAMETERS:  ListHead            - List to delete
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Delete a list of tables. This is useful for removing memory
+ *              allocated by AcGetAllTablesFromFile
+ *
+ ******************************************************************************/
+
+void
+AcDeleteTableList (
+    ACPI_NEW_TABLE_DESC     *ListHead)
+{
+    ACPI_NEW_TABLE_DESC     *Current = ListHead;
+    ACPI_NEW_TABLE_DESC     *Previous = Current;
+
+
+    while (Current)
+    {
+        Current = Current->Next;
+        AcpiOsFree (Previous);
+        Previous = Current;
+    }
+}
+
+
+/*******************************************************************************
+ *
  * FUNCTION:    AcGetAllTablesFromFile
  *
  * PARAMETERS:  Filename            - Table filename
@@ -531,8 +561,6 @@ AcValidateTableHeader (
 
     if (!AcpiUtValidNameseg (TableHeader.Signature))
     {
-        fprintf (stderr, "Invalid table signature: 0x%8.8X\n",
-            *ACPI_CAST_PTR (UINT32, TableHeader.Signature));
         return (AE_BAD_SIGNATURE);
     }
 

Modified: stable/11/sys/contrib/dev/acpica/common/adfile.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/adfile.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/adfile.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -316,11 +316,6 @@ FlGenerateFilename (
      */
     NewFilename = UtStringCacheCalloc ((ACPI_SIZE)
         strlen (InputFilename) + strlen (Suffix) + 2);
-    if (!NewFilename)
-    {
-        return (NULL);
-    }
-
     strcpy (NewFilename, InputFilename);
 
     /* Try to find the last dot in the filename */
@@ -364,11 +359,6 @@ FlStrdup (
 
 
     NewString = UtStringCacheCalloc ((ACPI_SIZE) strlen (String) + 1);
-    if (!NewString)
-    {
-        return (NULL);
-    }
-
     strcpy (NewString, String);
     return (NewString);
 }

Modified: stable/11/sys/contrib/dev/acpica/common/adisasm.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/adisasm.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/adisasm.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -408,6 +408,8 @@ Cleanup:
         ACPI_FREE (Table);
     }
 
+    AcDeleteTableList (ListHead);
+
     if (File)
     {
         fclose (File);
@@ -537,7 +539,7 @@ AdDisassembleOneTable (
      * the entire tree with the new information (namely, the
      * number of arguments per method)
      */
-    if (AcpiDmGetExternalMethodCount ())
+    if (AcpiDmGetUnresolvedExternalMethodCount ())
     {
         Status = AdReparseOneTable (Table, File, OwnerId);
         if (ACPI_FAILURE (Status))
@@ -553,7 +555,7 @@ AdDisassembleOneTable (
      * 1) Convert fixed-offset references to resource descriptors
      *    to symbolic references (Note: modifies namespace)
      */
-    AcpiDmConvertResourceIndexes (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
+    AcpiDmConvertParseObjects (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
 
     /* Optional displays */
 
@@ -616,7 +618,7 @@ AdReparseOneTable (
     fprintf (stderr,
         "\nFound %u external control methods, "
         "reparsing with new information\n",
-        AcpiDmGetExternalMethodCount ());
+        AcpiDmGetUnresolvedExternalMethodCount ());
 
     /* Reparse, rebuild namespace */
 
@@ -642,7 +644,7 @@ AdReparseOneTable (
 
     /* New namespace, add the external definitions first */
 
-    AcpiDmAddExternalsToNamespace ();
+    AcpiDmAddExternalListToNamespace ();
 
     /* For -ca option: clear the list of comment addresses. */
 
@@ -748,6 +750,7 @@ AdDoExternalFileList (
                 continue;
             }
 
+            AcDeleteTableList (ExternalListHead);
             return (Status);
         }
 
@@ -761,6 +764,7 @@ AdDoExternalFileList (
             {
                 AcpiOsPrintf ("Could not parse external ACPI tables, %s\n",
                     AcpiFormatException (Status));
+                AcDeleteTableList (ExternalListHead);
                 return (Status);
             }
 
@@ -779,6 +783,8 @@ AdDoExternalFileList (
 
         ExternalFileList = ExternalFileList->Next;
     }
+
+    AcDeleteTableList (ExternalListHead);
 
     if (ACPI_FAILURE (GlobalStatus))
     {

Modified: stable/11/sys/contrib/dev/acpica/common/adwalk.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/adwalk.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/adwalk.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -208,11 +208,16 @@ AcpiDmInspectPossibleArgs (
     ACPI_PARSE_OBJECT       *Op);
 
 static ACPI_STATUS
-AcpiDmResourceDescendingOp (
+AcpiDmCommonDescendingOp (
     ACPI_PARSE_OBJECT       *Op,
     UINT32                  Level,
     void                    *Context);
 
+static ACPI_STATUS
+AcpiDmProcessResourceDescriptors (
+    ACPI_PARSE_OBJECT       *Op,
+    UINT32                  Level,
+    void                    *Context);
 
 /*******************************************************************************
  *
@@ -395,21 +400,21 @@ AcpiDmCrossReferenceNamespace (
 
 /*******************************************************************************
  *
- * FUNCTION:    AcpiDmConvertResourceIndexes
+ * FUNCTION:    AcpiDmConvertParseObjects
  *
  * PARAMETERS:  ParseTreeRoot       - Root of the parse tree
  *              NamespaceRoot       - Root of the internal namespace
  *
  * RETURN:      None
  *
- * DESCRIPTION: Convert fixed-offset references to resource descriptors to
- *              symbolic references. Should only be called after namespace has
- *              been cross referenced.
+ * DESCRIPTION: Begin parse tree walk to perform conversions needed for
+ *              disassembly. These include resource descriptors and switch/case
+ *              operations.
  *
  ******************************************************************************/
 
 void
-AcpiDmConvertResourceIndexes (
+AcpiDmConvertParseObjects (
     ACPI_PARSE_OBJECT       *ParseTreeRoot,
     ACPI_NAMESPACE_NODE     *NamespaceRoot)
 {
@@ -443,9 +448,14 @@ AcpiDmConvertResourceIndexes (
     Info.Level = 0;
     Info.WalkState = WalkState;
 
-    AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmResourceDescendingOp,
+    AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmCommonDescendingOp,
         AcpiDmCommonAscendingOp, &Info);
     ACPI_FREE (WalkState);
+
+    if (AcpiGbl_TempListHead) {
+        AcpiDmClearTempList();
+    }
+
     return;
 }
 
@@ -526,11 +536,20 @@ AcpiDmDumpDescending (
     case AML_NAME_OP:
     case AML_METHOD_OP:
     case AML_DEVICE_OP:
+
+        AcpiOsPrintf ("%4.4s",
+            ACPI_CAST_PTR (char, &Op->Named.Name));
+        break;
+
     case AML_INT_NAMEDFIELD_OP:
 
-        AcpiOsPrintf ("%4.4s", ACPI_CAST_PTR (char, &Op->Named.Name));
+        AcpiOsPrintf ("%4.4s Length: (bits) %8.8X%8.8X (bytes) %8.8X%8.8X",
+            ACPI_CAST_PTR (char, &Op->Named.Name),
+            ACPI_FORMAT_UINT64 (Op->Common.Value.Integer),
+            ACPI_FORMAT_UINT64 (Op->Common.Value.Integer / 8));
         break;
 
+
     default:
 
         break;
@@ -737,7 +756,6 @@ AcpiDmLoadDescendingOp (
 
     WalkState = Info->WalkState;
     OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-    ObjectType = OpInfo->ObjectType;
     ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
 
     /* Only interested in operators that create new names */
@@ -754,7 +772,7 @@ AcpiDmLoadDescendingOp (
     {
         /* For all named operators, get the new name */
 
-        Path = (char *) Op->Named.Path;
+        Path = Op->Named.Path;
 
         if (!Path && Op->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
         {
@@ -875,7 +893,6 @@ AcpiDmXrefDescendingOp (
 
     WalkState = Info->WalkState;
     OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-    ObjectType = OpInfo->ObjectType;
     ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
 
     if ((!(OpInfo->Flags & AML_NAMED)) &&
@@ -885,26 +902,7 @@ AcpiDmXrefDescendingOp (
     {
         goto Exit;
     }
-    else if (Op->Common.Parent &&
-             Op->Common.Parent->Common.AmlOpcode == AML_EXTERNAL_OP)
-    {
-        /* External() NamePath */
 
-        Path = Op->Common.Value.String;
-        ObjectType = (ACPI_OBJECT_TYPE) Op->Common.Next->Common.Value.Integer;
-        if (ObjectType == ACPI_TYPE_METHOD)
-        {
-            ParamCount = (UINT32)
-                Op->Common.Next->Common.Next->Common.Value.Integer;
-        }
-
-        Flags |= ACPI_EXT_RESOLVED_REFERENCE | ACPI_EXT_ORIGIN_FROM_OPCODE;
-        AcpiDmAddOpToExternalList (Op, Path,
-            (UINT8) ObjectType, ParamCount, Flags);
-
-        goto Exit;
-    }
-
     /* Get the NamePath from the appropriate place */
 
     if (OpInfo->Flags & AML_NAMED)
@@ -924,9 +922,10 @@ AcpiDmXrefDescendingOp (
                 Path = NextOp->Common.Value.String;
             }
         }
-        else if (Op->Common.AmlOpcode == AML_SCOPE_OP)
+        else if (Op->Common.AmlOpcode == AML_SCOPE_OP ||
+                 Op->Common.AmlOpcode == AML_EXTERNAL_OP)
         {
-            Path = (char *) Op->Named.Path;
+            Path = Op->Named.Path;
         }
     }
     else if (OpInfo->Flags & AML_CREATE)
@@ -1060,21 +1059,58 @@ Exit:
     return (AE_OK);
 }
 
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiDmCommonDescendingOp
+ *
+ * PARAMETERS:  ASL_WALK_CALLBACK
+ *
+ * RETURN:      ACPI_STATUS
+ *
+ * DESCRIPTION: Perform parse tree preprocessing before main disassembly walk.
+ *
+ ******************************************************************************/
 
+static ACPI_STATUS
+AcpiDmCommonDescendingOp (
+    ACPI_PARSE_OBJECT       *Op,
+    UINT32                  Level,
+    void                    *Context)
+{
+    ACPI_STATUS             Status;
+
+
+    /* Resource descriptor conversion */
+
+    Status = AcpiDmProcessResourceDescriptors (Op, Level, Context);
+    if (ACPI_FAILURE (Status))
+    {
+        return (Status);
+    }
+
+    /* Switch/Case conversion */
+
+    Status = AcpiDmProcessSwitch (Op);
+    return (AE_OK);
+}
+
+
 /*******************************************************************************
  *
- * FUNCTION:    AcpiDmResourceDescendingOp
+ * FUNCTION:    AcpiDmProcessResourceDescriptors
  *
  * PARAMETERS:  ASL_WALK_CALLBACK
  *
- * RETURN:      None
+ * RETURN:      ACPI_STATUS
  *
- * DESCRIPTION: Process one parse op during symbolic resource index conversion.
+ * DESCRIPTION: Convert fixed-offset references to resource descriptors to
+ *              symbolic references. Should only be called after namespace has
+ *              been cross referenced.
  *
  ******************************************************************************/
 
 static ACPI_STATUS
-AcpiDmResourceDescendingOp (
+AcpiDmProcessResourceDescriptors (
     ACPI_PARSE_OBJECT       *Op,
     UINT32                  Level,
     void                    *Context)
@@ -1114,7 +1150,6 @@ AcpiDmResourceDescendingOp (
     return (AE_OK);
 }
 
-
 /*******************************************************************************
  *
  * FUNCTION:    AcpiDmCommonAscendingOp
@@ -1135,14 +1170,11 @@ AcpiDmCommonAscendingOp (
     void                    *Context)
 {
     ACPI_OP_WALK_INFO       *Info = Context;
-    const ACPI_OPCODE_INFO  *OpInfo;
     ACPI_OBJECT_TYPE        ObjectType;
 
 
     /* Close scope if necessary */
 
-    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-    ObjectType = OpInfo->ObjectType;
     ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
 
     if (AcpiNsOpensScope (ObjectType))
@@ -1152,7 +1184,6 @@ AcpiDmCommonAscendingOp (
 
     return (AE_OK);
 }
-
 
 /*******************************************************************************
  *

Modified: stable/11/sys/contrib/dev/acpica/common/ahids.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/ahids.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/ahids.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -187,6 +187,7 @@ const AH_DEVICE_ID  AslDeviceIds[] =
     {"ACPI0011",    "Generic Buttons Device"},
     {"ACPI0012",    "NVDIMM Root Device"},
     {"ACPI0013",    "Generic Event Device"},
+    {"ACPI0014",    "Wireless Power Calibration Device"},
     {"ADMA0F28",    "Intel Audio DMA"},
     {"AMCR0F28",    "Intel Audio Machine Driver"},
     {"ATK4001",     "Asus Radio Control Button"},

Modified: stable/11/sys/contrib/dev/acpica/common/ahpredef.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/ahpredef.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/ahpredef.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -254,6 +254,7 @@ const AH_PREDEFINED_NAME    AslPredefinedInfo[] =
     AH_PREDEF ("_FPS",    "Fan Performance States", "Returns a list of supported fan performance states"),
     AH_PREDEF ("_FSL",    "Fan Set Level", "Control method that sets the fan device's speed level (performance state)"),
     AH_PREDEF ("_FST",    "Fan Status", "Returns current status information for a fan device"),
+    AH_PREDEF ("_FUN",    "Function Number", "Resource descriptor field"),
     AH_PREDEF ("_GAI",    "Get Averaging Interval", "Returns the power meter averaging interval"),
     AH_PREDEF ("_GCP",    "Get Capabilities", "Get device time capabilities"),
     AH_PREDEF ("_GHL",    "Get Hardware Limit", "Returns the hardware limit enforced by the power meter"),
@@ -270,6 +271,7 @@ const AH_PREDEFINED_NAME    AslPredefinedInfo[] =
     AH_PREDEF ("_GWS",    "Get Wake Status", "Return status of wake alarms"),
     AH_PREDEF ("_HE_",    "High-Edge", "Interrupt triggering, Resource Descriptor field"),
     AH_PREDEF ("_HID",    "Hardware ID", "Returns a device's Plug and Play Hardware ID"),
+    AH_PREDEF ("_HMA",    "Heterogeneous Memory Attributes", "Returns a list of HMAT structures."),
     AH_PREDEF ("_HOT",    "Hot Temperature", "Returns the critical temperature for sleep (entry to S4)"),
     AH_PREDEF ("_HPP",    "Hot Plug Parameters", "Returns a list of hot-plug information for a PCI device"),
     AH_PREDEF ("_HPX",    "Hot Plug Parameter Extensions", "Returns a list of hot-plug information for a PCI device. Supersedes _HPP"),
@@ -287,6 +289,9 @@ const AH_PREDEFINED_NAME    AslPredefinedInfo[] =
     AH_PREDEF ("_LL_",    "Low Level", "Interrupt polarity, Resource Descriptor field"),
     AH_PREDEF ("_LPD",    "Low Power Dependencies", "Returns a list of dependencies for low power idle entry"),
     AH_PREDEF ("_LPI",    "Low Power Idle States", "Returns a list of supported low power idle states"),
+    AH_PREDEF ("_LSI",    "Label Storage Information", "Returns information about the Label Storage Area associated with the NVDIMM object."),
+    AH_PREDEF ("_LSR",    "Label Storage Read", "Returns label data from the Label Storage Area of the NVDIMM object."),
+    AH_PREDEF ("_LSW",    "Label Storage Write", "Writes label data in to the Label Storage Area of the NVDIMM object."),
     AH_PREDEF ("_MAF",    "Maximum Address Fixed", "Resource Descriptor field"),
     AH_PREDEF ("_MAT",    "Multiple APIC Table Entry", "Returns a list of MADT APIC structure entries"),
     AH_PREDEF ("_MAX",    "Maximum Base Address", "Resource Descriptor field"),
@@ -439,6 +444,7 @@ const AH_PREDEFINED_NAME    AslPredefinedInfo[] =
     AH_PREDEF ("_UPC",    "USB Port Capabilities", "Returns a list of USB port capabilities"),
     AH_PREDEF ("_UPD",    "User Presence Detect", "Returns user detection information"),
     AH_PREDEF ("_UPP",    "User Presence Polling", "Returns the recommended user presence polling interval"),
+    AH_PREDEF ("_VAL",    "Pin Configuration Value", "Resource Descriptor field"),
     AH_PREDEF ("_VEN",    "Vendor Data", "Resource Descriptor field"),
     AH_PREDEF ("_VPO",    "Video Post Options", "Returns the implemented video post options"),
     AH_PREDEF ("_Wxx",    "Wake Event", "Method executed as a result of a wake event"),
@@ -467,6 +473,15 @@ AcpiAhMatchPredefinedName (
 {
     const AH_PREDEFINED_NAME    *Info;
 
+
+    /* Nameseg must start with an underscore */
+
+    if (*Nameseg != '_')
+    {
+        return (NULL);
+    }
+
+    /* Search for a match in the predefined name table */
 
     for (Info = AslPredefinedInfo; Info->Name; Info++)
     {

Modified: stable/11/sys/contrib/dev/acpica/common/ahtable.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/ahtable.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/ahtable.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -218,6 +218,7 @@ const AH_TABLE      Gbl_AcpiSupportedTables[] =
     {ACPI_SIG_FPDT, "Firmware Performance Data Table"},
     {ACPI_SIG_GTDT, "Generic Timer Description Table"},
     {ACPI_SIG_HEST, "Hardware Error Source Table"},
+    {ACPI_SIG_HMAT, "Heterogeneous Memory Attributes Table"},
     {ACPI_SIG_HPET, "High Precision Event Timer table"},
     {ACPI_SIG_IORT, "IO Remapping Table"},
     {ACPI_SIG_IVRS, "I/O Virtualization Reporting Structure"},
@@ -232,11 +233,13 @@ const AH_TABLE      Gbl_AcpiSupportedTables[] =
     {ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"},
     {ACPI_SIG_PCCT, "Platform Communications Channel Table"},
     {ACPI_SIG_PMTT, "Platform Memory Topology Table"},
+    {ACPI_SIG_PPTT, "Processor Properties Topology Table"},
     {ACPI_SIG_RASF, "RAS Features Table"},
     {ACPI_RSDP_NAME,"Root System Description Pointer"},
     {ACPI_SIG_RSDT, "Root System Description Table"},
     {ACPI_SIG_S3PT, "S3 Performance Table"},
     {ACPI_SIG_SBST, "Smart Battery Specification Table"},
+    {ACPI_SIG_SDEI, "Software Delegated Exception Interface Table"},
     {ACPI_SIG_SLIC, "Software Licensing Description Table"},
     {ACPI_SIG_SLIT, "System Locality Information Table"},
     {ACPI_SIG_SPCR, "Serial Port Console Redirection table"},
@@ -253,6 +256,7 @@ const AH_TABLE      Gbl_AcpiSupportedTables[] =
     {ACPI_SIG_WDDT, "Watchdog Description Table"},
     {ACPI_SIG_WDRT, "Watchdog Resource Table"},
     {ACPI_SIG_WPBT, "Windows Platform Binary Table"},
+    {ACPI_SIG_WSMT, "Windows SMM Security Migrations Table"},
     {ACPI_SIG_XENV, "Xen Environment table"},
     {ACPI_SIG_XSDT, "Extended System Description Table"},
     {NULL,          NULL}

Modified: stable/11/sys/contrib/dev/acpica/common/ahuuids.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/ahuuids.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/ahuuids.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -186,6 +186,10 @@ const AH_UUID  Gbl_AcpiUuids[] =
     {"Persistent Virtual Disk",     UUID_PERSISTENT_VIRTUAL_DISK},
     {"Persistent Virtual CD",       UUID_PERSISTENT_VIRTUAL_CD},
 
+    {"[Processor Properties]",      NULL},
+    {"Cache Properties",            UUID_CACHE_PROPERTIES},
+    {"Physical Package Property",   UUID_PHYSICAL_PROPERTY},
+
     {"[Miscellaneous]",             NULL},
     {"Platform-wide Capabilities",  UUID_PLATFORM_CAPABILITIES},
     {"Dynamic Enumeration",         UUID_DYNAMIC_ENUMERATION},

Modified: stable/11/sys/contrib/dev/acpica/common/dmextern.c
==============================================================================
--- stable/11/sys/contrib/dev/acpica/common/dmextern.c	Fri Aug 25 05:41:28 2017	(r322876)
+++ stable/11/sys/contrib/dev/acpica/common/dmextern.c	Fri Aug 25 05:49:37 2017	(r322877)
@@ -199,7 +199,10 @@ static const char           *AcpiGbl_DmTypeNames[] =
 
 #define METHOD_SEPARATORS           " \t,()\n"
 
+static const char          *ExternalConflictMessage =
+    "    // Conflicts with a later declaration";
 
+
 /* Local prototypes */
 
 static const char *
@@ -211,6 +214,16 @@ AcpiDmNormalizeParentPrefix (
     ACPI_PARSE_OBJECT       *Op,
     char                    *Path);
 
+static ACPI_STATUS
+AcpiDmGetExternalAndInternalPath (
+    ACPI_NAMESPACE_NODE     *Node,
+    char                    **ExternalPath,
+    char                    **InternalPath);
+
+static ACPI_STATUS
+AcpiDmRemoveRootPrefix (
+    char                    **Path);
+
 static void
 AcpiDmAddPathToExternalList (
     char                    *Path,
@@ -226,7 +239,22 @@ AcpiDmCreateNewExternal (
     UINT32                  Value,
     UINT16                  Flags);
 
+static void
+AcpiDmCheckForExternalConflict (
+    char                    *Path);
 
+static ACPI_STATUS
+AcpiDmResolveExternal (
+    char                    *Path,
+    UINT8                   Type,
+    ACPI_NAMESPACE_NODE     **Node);
+
+
+static void
+AcpiDmConflictingDeclaration (
+    char                    *Path);
+
+
 /*******************************************************************************
  *
  * FUNCTION:    AcpiDmGetObjectTypeName
@@ -582,7 +610,7 @@ AcpiDmGetExternalsFromFile (
     {
         /* Add the external(s) to the namespace */
 
-        AcpiDmAddExternalsToNamespace ();
+        AcpiDmAddExternalListToNamespace ();
 
         AcpiOsPrintf ("%s: Imported %u external method definitions\n",
             Gbl_ExternalRefFilename, ImportCount);
@@ -698,6 +726,86 @@ AcpiDmAddOpToExternalList (
 
 /*******************************************************************************
  *
+ * FUNCTION:    AcpiDmGetExternalAndInternalPath
+ *
+ * PARAMETERS:  Node                - Namespace node for object to be added
+ *              ExternalPath        - Will contain the external path of the node
+ *              InternalPath        - Will contain the internal path of the node
+ *
+ * RETURN:      None
+ *
+ * DESCRIPTION: Get the External and Internal path from the given node.
+ *
+ ******************************************************************************/
+
+static ACPI_STATUS
+AcpiDmGetExternalAndInternalPath (
+    ACPI_NAMESPACE_NODE     *Node,
+    char                    **ExternalPath,
+    char                    **InternalPath)
+{
+    ACPI_STATUS             Status;
+
+
+    if (!Node)
+    {
+        return (AE_BAD_PARAMETER);
+    }
+
+    /* Get the full external and internal pathnames to the node */
+
+    *ExternalPath = AcpiNsGetExternalPathname (Node);
+    if (!*ExternalPath)
+    {
+        return (AE_BAD_PATHNAME);
+    }
+
+    Status = AcpiNsInternalizeName (*ExternalPath, InternalPath);
+    if (ACPI_FAILURE (Status))
+    {
+        ACPI_FREE (*ExternalPath);
+        return (Status);
+    }
+
+    return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiDmRemoveRootPrefix
+ *
+ * PARAMETERS:  Path                - Remove Root prefix from this Path
+ *
+ * RETURN:      None
+ *
+ * DESCRIPTION: Remove the root prefix character '\' from Path.
+ *
+ ******************************************************************************/
+
+static ACPI_STATUS
+AcpiDmRemoveRootPrefix (
+    char                    **Path)
+{
+    char                    *InputPath = *Path;
+
+
+    if ((*InputPath == AML_ROOT_PREFIX) && (InputPath[1]))
+    {
+        if (!memmove(InputPath, InputPath+1, strlen(InputPath)))
+        {
+            return (AE_ERROR);
+        }
+
+        *Path = InputPath;
+    }
+
+    return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
  * FUNCTION:    AcpiDmAddNodeToExternalList
  *
  * PARAMETERS:  Node                - Namespace node for object to be added
@@ -727,46 +835,27 @@ AcpiDmAddNodeToExternalList (
 {
     char                    *ExternalPath;
     char                    *InternalPath;
-    char                    *Temp;
     ACPI_STATUS             Status;
 
 
     ACPI_FUNCTION_TRACE (DmAddNodeToExternalList);
 
-
-    if (!Node)
-    {
-        return_VOID;
-    }
-
     /* Get the full external and internal pathnames to the node */
 
-    ExternalPath = AcpiNsGetExternalPathname (Node);
-    if (!ExternalPath)
-    {
-        return_VOID;
-    }
-
-    Status = AcpiNsInternalizeName (ExternalPath, &InternalPath);
+    Status = AcpiDmGetExternalAndInternalPath (Node, &ExternalPath, &InternalPath);
     if (ACPI_FAILURE (Status))
     {
-        ACPI_FREE (ExternalPath);
         return_VOID;
     }
 
     /* Remove the root backslash */
 
-    if ((*ExternalPath == AML_ROOT_PREFIX) && (ExternalPath[1]))
+    Status = AcpiDmRemoveRootPrefix (&ExternalPath);
+    if (ACPI_FAILURE (Status))
     {
-        Temp = ACPI_ALLOCATE_ZEROED (strlen (ExternalPath) + 1);
-        if (!Temp)
-        {
-            return_VOID;
-        }
-
-        strcpy (Temp, &ExternalPath[1]);
         ACPI_FREE (ExternalPath);
-        ExternalPath = Temp;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708250549.v7P5nb2P096879>