git: 58308fadece2 - main - Import ACPICA 20250404

From: Jung-uk Kim <jkim_at_FreeBSD.org>
Date: Fri, 11 Apr 2025 03:41:29 UTC
The branch main has been updated by jkim:

URL: https://cgit.FreeBSD.org/src/commit/?id=58308fadece25ae4c12bd2f4dce3d73d9c23be43

commit 58308fadece25ae4c12bd2f4dce3d73d9c23be43
Author:     Jung-uk Kim <jkim@FreeBSD.org>
AuthorDate: 2025-04-10 03:51:28 +0000
Commit:     Jung-uk Kim <jkim@FreeBSD.org>
CommitDate: 2025-04-11 03:40:07 +0000

    Import ACPICA 20250404
    
    (cherry picked from commit 97a7606d897edfa3089cb04eea70096a1f9cf734)
---
 sys/contrib/dev/acpica/changes.txt                 |  16 +
 sys/contrib/dev/acpica/common/acfileio.c           |   2 +-
 sys/contrib/dev/acpica/common/acgetline.c          |   2 +-
 sys/contrib/dev/acpica/common/adfile.c             |   2 +-
 sys/contrib/dev/acpica/common/adisasm.c            |   4 +-
 sys/contrib/dev/acpica/common/adwalk.c             |   2 +-
 sys/contrib/dev/acpica/common/ahids.c              |   2 +-
 sys/contrib/dev/acpica/common/ahpredef.c           |   2 +-
 sys/contrib/dev/acpica/common/ahtable.c            |   4 +-
 sys/contrib/dev/acpica/common/ahuuids.c            |   2 +-
 sys/contrib/dev/acpica/common/cmfsize.c            |   2 +-
 sys/contrib/dev/acpica/common/dmextern.c           |   2 +-
 sys/contrib/dev/acpica/common/dmrestag.c           |   4 +-
 sys/contrib/dev/acpica/common/dmswitch.c           |   2 +-
 sys/contrib/dev/acpica/common/dmtable.c            |  55 ++-
 sys/contrib/dev/acpica/common/dmtables.c           |   2 +-
 sys/contrib/dev/acpica/common/dmtbdump.c           |   2 +-
 sys/contrib/dev/acpica/common/dmtbdump1.c          | 235 +++++++++-
 sys/contrib/dev/acpica/common/dmtbdump2.c          | 182 +++++++-
 sys/contrib/dev/acpica/common/dmtbdump3.c          |   2 +-
 sys/contrib/dev/acpica/common/dmtbinfo.c           |   2 +-
 sys/contrib/dev/acpica/common/dmtbinfo1.c          | 290 +++++++++++-
 sys/contrib/dev/acpica/common/dmtbinfo2.c          | 126 ++++-
 sys/contrib/dev/acpica/common/dmtbinfo3.c          |   2 +-
 sys/contrib/dev/acpica/common/getopt.c             |   2 +-
 sys/contrib/dev/acpica/compiler/aslallocate.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslanalyze.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslascii.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslbtypes.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslcache.c         |   5 +-
 sys/contrib/dev/acpica/compiler/aslcodegen.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslcompile.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslcompiler.h      |   2 +-
 sys/contrib/dev/acpica/compiler/aslcompiler.l      |   2 +-
 sys/contrib/dev/acpica/compiler/aslcstyle.y        |   2 +-
 sys/contrib/dev/acpica/compiler/asldebug.c         |   2 +-
 sys/contrib/dev/acpica/compiler/asldefine.h        |   2 +-
 sys/contrib/dev/acpica/compiler/aslerror.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslexternal.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslfileio.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslfiles.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslfold.c          |   2 +-
 sys/contrib/dev/acpica/compiler/aslglobal.h        |   2 +-
 sys/contrib/dev/acpica/compiler/aslhelp.c          |   2 +-
 sys/contrib/dev/acpica/compiler/aslhelpers.y       |   2 +-
 sys/contrib/dev/acpica/compiler/aslhex.c           |   2 +-
 sys/contrib/dev/acpica/compiler/aslkeywords.y      |   2 +-
 sys/contrib/dev/acpica/compiler/asllength.c        |   2 +-
 sys/contrib/dev/acpica/compiler/asllisting.c       |   2 +-
 sys/contrib/dev/acpica/compiler/asllistsup.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslload.c          |   2 +-
 sys/contrib/dev/acpica/compiler/asllookup.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslmain.c          |   2 +-
 sys/contrib/dev/acpica/compiler/aslmap.c           |   2 +-
 sys/contrib/dev/acpica/compiler/aslmapenter.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslmapoutput.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslmaputils.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslmessages.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslmessages.h      |   2 +-
 sys/contrib/dev/acpica/compiler/aslmethod.c        |   8 +-
 sys/contrib/dev/acpica/compiler/aslnamesp.c        |   2 +-
 sys/contrib/dev/acpica/compiler/asloffset.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslopcodes.c       |   2 +-
 sys/contrib/dev/acpica/compiler/asloperands.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslopt.c           |   2 +-
 sys/contrib/dev/acpica/compiler/asloptions.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslparseop.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslparser.y        |   2 +-
 sys/contrib/dev/acpica/compiler/aslpld.c           |   2 +-
 sys/contrib/dev/acpica/compiler/aslpredef.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslprepkg.c        |   2 +-
 sys/contrib/dev/acpica/compiler/aslprimaries.y     |   2 +-
 sys/contrib/dev/acpica/compiler/aslprintf.c        |   6 +-
 sys/contrib/dev/acpica/compiler/aslprune.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslresource.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslresources.y     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype1.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype1i.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2.c      |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2d.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2e.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2q.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2s.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrestype2w.c     |   2 +-
 sys/contrib/dev/acpica/compiler/aslrules.y         |   2 +-
 sys/contrib/dev/acpica/compiler/aslstartup.c       |   2 +-
 sys/contrib/dev/acpica/compiler/aslstubs.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslsupport.l       |   2 +-
 sys/contrib/dev/acpica/compiler/aslsupport.y       |   2 +-
 sys/contrib/dev/acpica/compiler/asltokens.y        |   2 +-
 sys/contrib/dev/acpica/compiler/asltransform.c     |   2 +-
 sys/contrib/dev/acpica/compiler/asltree.c          |   2 +-
 sys/contrib/dev/acpica/compiler/asltypes.h         |   2 +-
 sys/contrib/dev/acpica/compiler/asltypes.y         |   2 +-
 sys/contrib/dev/acpica/compiler/aslutils.c         |   2 +-
 sys/contrib/dev/acpica/compiler/asluuid.c          |   2 +-
 sys/contrib/dev/acpica/compiler/aslwalks.c         |   2 +-
 sys/contrib/dev/acpica/compiler/aslxref.c          |   2 +-
 sys/contrib/dev/acpica/compiler/aslxrefout.c       |   2 +-
 sys/contrib/dev/acpica/compiler/cvcompiler.c       |   2 +-
 sys/contrib/dev/acpica/compiler/cvdisasm.c         |   2 +-
 sys/contrib/dev/acpica/compiler/cvparser.c         |   2 +-
 sys/contrib/dev/acpica/compiler/dtcompile.c        |   2 +-
 sys/contrib/dev/acpica/compiler/dtcompiler.h       |  17 +-
 sys/contrib/dev/acpica/compiler/dtcompilerparser.l |   2 +-
 sys/contrib/dev/acpica/compiler/dtcompilerparser.y |   2 +-
 sys/contrib/dev/acpica/compiler/dtexpress.c        |   2 +-
 sys/contrib/dev/acpica/compiler/dtfield.c          |   2 +-
 sys/contrib/dev/acpica/compiler/dtio.c             |   8 +-
 sys/contrib/dev/acpica/compiler/dtparser.l         |   2 +-
 sys/contrib/dev/acpica/compiler/dtparser.y         |   2 +-
 sys/contrib/dev/acpica/compiler/dtsubtable.c       |   2 +-
 sys/contrib/dev/acpica/compiler/dttable.c          |   2 +-
 sys/contrib/dev/acpica/compiler/dttable1.c         | 517 ++++++++++++++++++++-
 sys/contrib/dev/acpica/compiler/dttable2.c         |  53 ++-
 sys/contrib/dev/acpica/compiler/dttemplate.c       |   2 +-
 sys/contrib/dev/acpica/compiler/dttemplate.h       | 267 ++++++++++-
 sys/contrib/dev/acpica/compiler/dtutils.c          |  21 +-
 sys/contrib/dev/acpica/compiler/preprocess.h       |   2 +-
 sys/contrib/dev/acpica/compiler/prexpress.c        |   2 +-
 sys/contrib/dev/acpica/compiler/prmacros.c         |   2 +-
 sys/contrib/dev/acpica/compiler/prparser.l         |   2 +-
 sys/contrib/dev/acpica/compiler/prparser.y         |   2 +-
 sys/contrib/dev/acpica/compiler/prscan.c           |   2 +-
 sys/contrib/dev/acpica/compiler/prutils.c          |   4 +-
 .../dev/acpica/components/debugger/dbcmds.c        |   2 +-
 .../dev/acpica/components/debugger/dbconvert.c     |   2 +-
 .../dev/acpica/components/debugger/dbdisply.c      |   2 +-
 .../dev/acpica/components/debugger/dbexec.c        |   2 +-
 .../dev/acpica/components/debugger/dbfileio.c      |   2 +-
 .../dev/acpica/components/debugger/dbhistry.c      |   2 +-
 .../dev/acpica/components/debugger/dbinput.c       |   2 +-
 .../dev/acpica/components/debugger/dbmethod.c      |   2 +-
 .../dev/acpica/components/debugger/dbnames.c       |   2 +-
 .../dev/acpica/components/debugger/dbobject.c      |   2 +-
 .../dev/acpica/components/debugger/dbstats.c       |   2 +-
 .../dev/acpica/components/debugger/dbtest.c        |   2 +-
 .../dev/acpica/components/debugger/dbutils.c       |   2 +-
 .../dev/acpica/components/debugger/dbxface.c       |   2 +-
 .../dev/acpica/components/disassembler/dmbuffer.c  |   2 +-
 .../dev/acpica/components/disassembler/dmcstyle.c  |   2 +-
 .../acpica/components/disassembler/dmdeferred.c    |   2 +-
 .../dev/acpica/components/disassembler/dmnames.c   |   2 +-
 .../dev/acpica/components/disassembler/dmopcode.c  |   2 +-
 .../dev/acpica/components/disassembler/dmresrc.c   |   2 +-
 .../dev/acpica/components/disassembler/dmresrcl.c  |   2 +-
 .../dev/acpica/components/disassembler/dmresrcl2.c |   2 +-
 .../dev/acpica/components/disassembler/dmresrcs.c  |   2 +-
 .../dev/acpica/components/disassembler/dmutils.c   |   2 +-
 .../dev/acpica/components/disassembler/dmwalk.c    |   2 +-
 .../dev/acpica/components/dispatcher/dsargs.c      |   2 +-
 .../dev/acpica/components/dispatcher/dscontrol.c   |   2 +-
 .../dev/acpica/components/dispatcher/dsdebug.c     |   2 +-
 .../dev/acpica/components/dispatcher/dsfield.c     |   2 +-
 .../dev/acpica/components/dispatcher/dsinit.c      |   2 +-
 .../dev/acpica/components/dispatcher/dsmethod.c    |   2 +-
 .../dev/acpica/components/dispatcher/dsmthdat.c    |   2 +-
 .../dev/acpica/components/dispatcher/dsobject.c    |   2 +-
 .../dev/acpica/components/dispatcher/dsopcode.c    |   2 +-
 .../dev/acpica/components/dispatcher/dspkginit.c   |   2 +-
 .../dev/acpica/components/dispatcher/dsutils.c     |   2 +-
 .../dev/acpica/components/dispatcher/dswexec.c     |   2 +-
 .../dev/acpica/components/dispatcher/dswload.c     |   2 +-
 .../dev/acpica/components/dispatcher/dswload2.c    |   2 +-
 .../dev/acpica/components/dispatcher/dswscope.c    |   2 +-
 .../dev/acpica/components/dispatcher/dswstate.c    |   2 +-
 sys/contrib/dev/acpica/components/events/evevent.c |   2 +-
 sys/contrib/dev/acpica/components/events/evglock.c |   2 +-
 sys/contrib/dev/acpica/components/events/evgpe.c   |   2 +-
 .../dev/acpica/components/events/evgpeblk.c        |   2 +-
 .../dev/acpica/components/events/evgpeinit.c       |   2 +-
 .../dev/acpica/components/events/evgpeutil.c       |   2 +-
 .../dev/acpica/components/events/evhandler.c       |   2 +-
 sys/contrib/dev/acpica/components/events/evmisc.c  |   2 +-
 .../dev/acpica/components/events/evregion.c        |   2 +-
 .../dev/acpica/components/events/evrgnini.c        |   2 +-
 sys/contrib/dev/acpica/components/events/evsci.c   |   2 +-
 sys/contrib/dev/acpica/components/events/evxface.c |   2 +-
 .../dev/acpica/components/events/evxfevnt.c        |   2 +-
 sys/contrib/dev/acpica/components/events/evxfgpe.c |   2 +-
 .../dev/acpica/components/events/evxfregn.c        |   2 +-
 .../dev/acpica/components/executer/exconcat.c      |   2 +-
 .../dev/acpica/components/executer/exconfig.c      |   2 +-
 .../dev/acpica/components/executer/exconvrt.c      |   4 +-
 .../dev/acpica/components/executer/excreate.c      |   2 +-
 .../dev/acpica/components/executer/exdebug.c       |   2 +-
 .../dev/acpica/components/executer/exdump.c        |   2 +-
 .../dev/acpica/components/executer/exfield.c       |   2 +-
 .../dev/acpica/components/executer/exfldio.c       |   2 +-
 .../dev/acpica/components/executer/exmisc.c        |   2 +-
 .../dev/acpica/components/executer/exmutex.c       |   2 +-
 .../dev/acpica/components/executer/exnames.c       |   2 +-
 .../dev/acpica/components/executer/exoparg1.c      |   2 +-
 .../dev/acpica/components/executer/exoparg2.c      |   2 +-
 .../dev/acpica/components/executer/exoparg3.c      |   2 +-
 .../dev/acpica/components/executer/exoparg6.c      |   2 +-
 .../dev/acpica/components/executer/exprep.c        |   2 +-
 .../dev/acpica/components/executer/exregion.c      |   2 +-
 .../dev/acpica/components/executer/exresnte.c      |   2 +-
 .../dev/acpica/components/executer/exresolv.c      |   2 +-
 .../dev/acpica/components/executer/exresop.c       |   2 +-
 .../dev/acpica/components/executer/exserial.c      |   8 +-
 .../dev/acpica/components/executer/exstore.c       |   2 +-
 .../dev/acpica/components/executer/exstoren.c      |   2 +-
 .../dev/acpica/components/executer/exstorob.c      |   2 +-
 .../dev/acpica/components/executer/exsystem.c      |   2 +-
 .../dev/acpica/components/executer/extrace.c       |   2 +-
 .../dev/acpica/components/executer/exutils.c       |   2 +-
 .../dev/acpica/components/hardware/hwacpi.c        |   2 +-
 .../dev/acpica/components/hardware/hwesleep.c      |   2 +-
 sys/contrib/dev/acpica/components/hardware/hwgpe.c |   2 +-
 sys/contrib/dev/acpica/components/hardware/hwpci.c |   2 +-
 .../dev/acpica/components/hardware/hwregs.c        |   2 +-
 .../dev/acpica/components/hardware/hwsleep.c       |   2 +-
 .../dev/acpica/components/hardware/hwtimer.c       |   2 +-
 .../dev/acpica/components/hardware/hwvalid.c       |   2 +-
 .../dev/acpica/components/hardware/hwxface.c       |   2 +-
 .../dev/acpica/components/hardware/hwxfsleep.c     |   2 +-
 .../dev/acpica/components/namespace/nsaccess.c     |   2 +-
 .../dev/acpica/components/namespace/nsalloc.c      |   2 +-
 .../dev/acpica/components/namespace/nsarguments.c  |   2 +-
 .../dev/acpica/components/namespace/nsconvert.c    |   2 +-
 .../dev/acpica/components/namespace/nsdump.c       |   2 +-
 .../dev/acpica/components/namespace/nsdumpdv.c     |   2 +-
 .../dev/acpica/components/namespace/nseval.c       |   2 +-
 .../dev/acpica/components/namespace/nsinit.c       |   2 +-
 .../dev/acpica/components/namespace/nsload.c       |   2 +-
 .../dev/acpica/components/namespace/nsnames.c      |   4 +-
 .../dev/acpica/components/namespace/nsobject.c     |   2 +-
 .../dev/acpica/components/namespace/nsparse.c      |   2 +-
 .../dev/acpica/components/namespace/nspredef.c     |   2 +-
 .../dev/acpica/components/namespace/nsprepkg.c     |   2 +-
 .../dev/acpica/components/namespace/nsrepair.c     |   2 +-
 .../dev/acpica/components/namespace/nsrepair2.c    |   4 +-
 .../dev/acpica/components/namespace/nssearch.c     |   2 +-
 .../dev/acpica/components/namespace/nsutils.c      |   2 +-
 .../dev/acpica/components/namespace/nswalk.c       |   2 +-
 .../dev/acpica/components/namespace/nsxfeval.c     |   2 +-
 .../dev/acpica/components/namespace/nsxfname.c     |   2 +-
 .../dev/acpica/components/namespace/nsxfobj.c      |   2 +-
 sys/contrib/dev/acpica/components/parser/psargs.c  |   2 +-
 sys/contrib/dev/acpica/components/parser/psloop.c  |   2 +-
 .../dev/acpica/components/parser/psobject.c        |   2 +-
 .../dev/acpica/components/parser/psopcode.c        |   2 +-
 .../dev/acpica/components/parser/psopinfo.c        |   2 +-
 sys/contrib/dev/acpica/components/parser/psparse.c |   2 +-
 sys/contrib/dev/acpica/components/parser/psscope.c |   2 +-
 sys/contrib/dev/acpica/components/parser/pstree.c  |   2 +-
 sys/contrib/dev/acpica/components/parser/psutils.c |   2 +-
 sys/contrib/dev/acpica/components/parser/pswalk.c  |   2 +-
 sys/contrib/dev/acpica/components/parser/psxface.c |   2 +-
 .../dev/acpica/components/resources/rsaddr.c       |  16 +-
 .../dev/acpica/components/resources/rscalc.c       |  17 +-
 .../dev/acpica/components/resources/rscreate.c     |   2 +-
 .../dev/acpica/components/resources/rsdump.c       |   2 +-
 .../dev/acpica/components/resources/rsdumpinfo.c   |   2 +-
 .../dev/acpica/components/resources/rsinfo.c       |   2 +-
 sys/contrib/dev/acpica/components/resources/rsio.c |   2 +-
 .../dev/acpica/components/resources/rsirq.c        |   2 +-
 .../dev/acpica/components/resources/rslist.c       |  11 +-
 .../dev/acpica/components/resources/rsmemory.c     |   2 +-
 .../dev/acpica/components/resources/rsmisc.c       |   2 +-
 .../dev/acpica/components/resources/rsserial.c     |   2 +-
 .../dev/acpica/components/resources/rsutils.c      |   2 +-
 .../dev/acpica/components/resources/rsxface.c      |   2 +-
 sys/contrib/dev/acpica/components/tables/tbdata.c  |   2 +-
 sys/contrib/dev/acpica/components/tables/tbfadt.c  |   2 +-
 sys/contrib/dev/acpica/components/tables/tbfind.c  |   6 +-
 .../dev/acpica/components/tables/tbinstal.c        |   2 +-
 sys/contrib/dev/acpica/components/tables/tbprint.c |   2 +-
 sys/contrib/dev/acpica/components/tables/tbutils.c |   2 +-
 sys/contrib/dev/acpica/components/tables/tbxface.c |   2 +-
 .../dev/acpica/components/tables/tbxfload.c        |   2 +-
 .../dev/acpica/components/tables/tbxfroot.c        |   2 +-
 .../dev/acpica/components/utilities/utaddress.c    |   2 +-
 .../dev/acpica/components/utilities/utalloc.c      |   2 +-
 .../dev/acpica/components/utilities/utascii.c      |   2 +-
 .../dev/acpica/components/utilities/utbuffer.c     |   2 +-
 .../dev/acpica/components/utilities/utcache.c      |   6 +-
 .../dev/acpica/components/utilities/utcksum.c      |   2 +-
 .../dev/acpica/components/utilities/utcopy.c       |   2 +-
 .../dev/acpica/components/utilities/utdebug.c      |   2 +-
 .../dev/acpica/components/utilities/utdecode.c     |   2 +-
 .../dev/acpica/components/utilities/utdelete.c     |   4 +-
 .../dev/acpica/components/utilities/uterror.c      |   2 +-
 .../dev/acpica/components/utilities/uteval.c       |   2 +-
 .../dev/acpica/components/utilities/utexcep.c      |   2 +-
 .../dev/acpica/components/utilities/utglobal.c     |   2 +-
 .../dev/acpica/components/utilities/uthex.c        |   2 +-
 .../dev/acpica/components/utilities/utids.c        |   2 +-
 .../dev/acpica/components/utilities/utinit.c       |   2 +-
 .../dev/acpica/components/utilities/utlock.c       |   2 +-
 .../dev/acpica/components/utilities/utmath.c       |   2 +-
 .../dev/acpica/components/utilities/utmisc.c       |   2 +-
 .../dev/acpica/components/utilities/utmutex.c      |   2 +-
 .../dev/acpica/components/utilities/utnonansi.c    |   4 +-
 .../dev/acpica/components/utilities/utobject.c     |   2 +-
 .../dev/acpica/components/utilities/utosi.c        |   2 +-
 .../dev/acpica/components/utilities/utownerid.c    |   2 +-
 .../dev/acpica/components/utilities/utpredef.c     |   2 +-
 .../dev/acpica/components/utilities/utresdecode.c  |   2 +-
 .../dev/acpica/components/utilities/utresrc.c      |  13 +-
 .../dev/acpica/components/utilities/utstate.c      |   2 +-
 .../dev/acpica/components/utilities/utstring.c     |   2 +-
 .../dev/acpica/components/utilities/utstrsuppt.c   |   2 +-
 .../dev/acpica/components/utilities/utstrtoul64.c  |   2 +-
 .../dev/acpica/components/utilities/uttrack.c      |   2 +-
 .../dev/acpica/components/utilities/utuuid.c       |   2 +-
 .../dev/acpica/components/utilities/utxface.c      |   2 +-
 .../dev/acpica/components/utilities/utxferror.c    |   2 +-
 .../dev/acpica/components/utilities/utxfinit.c     |   2 +-
 .../dev/acpica/components/utilities/utxfmutex.c    |   2 +-
 sys/contrib/dev/acpica/include/acapps.h            |   4 +-
 sys/contrib/dev/acpica/include/acbuffer.h          |   2 +-
 sys/contrib/dev/acpica/include/acclib.h            |   2 +-
 sys/contrib/dev/acpica/include/accommon.h          |   2 +-
 sys/contrib/dev/acpica/include/acconfig.h          |   2 +-
 sys/contrib/dev/acpica/include/acconvert.h         |   2 +-
 sys/contrib/dev/acpica/include/acdebug.h           |   4 +-
 sys/contrib/dev/acpica/include/acdisasm.h          |  48 +-
 sys/contrib/dev/acpica/include/acdispat.h          |   2 +-
 sys/contrib/dev/acpica/include/acevents.h          |   2 +-
 sys/contrib/dev/acpica/include/acexcep.h           |   2 +-
 sys/contrib/dev/acpica/include/acglobal.h          |   2 +-
 sys/contrib/dev/acpica/include/achware.h           |   2 +-
 sys/contrib/dev/acpica/include/acinterp.h          |   2 +-
 sys/contrib/dev/acpica/include/aclocal.h           |   6 +-
 sys/contrib/dev/acpica/include/acmacros.h          |   2 +-
 sys/contrib/dev/acpica/include/acnames.h           |   2 +-
 sys/contrib/dev/acpica/include/acnamesp.h          |   2 +-
 sys/contrib/dev/acpica/include/acobject.h          |   2 +-
 sys/contrib/dev/acpica/include/acopcode.h          |   2 +-
 sys/contrib/dev/acpica/include/acoutput.h          |   2 +-
 sys/contrib/dev/acpica/include/acparser.h          |   2 +-
 sys/contrib/dev/acpica/include/acpi.h              |   2 +-
 sys/contrib/dev/acpica/include/acpiosxf.h          |   2 +-
 sys/contrib/dev/acpica/include/acpixf.h            |   4 +-
 sys/contrib/dev/acpica/include/acpredef.h          |   2 +-
 sys/contrib/dev/acpica/include/acresrc.h           |   2 +-
 sys/contrib/dev/acpica/include/acrestyp.h          |   2 +-
 sys/contrib/dev/acpica/include/acstruct.h          |   2 +-
 sys/contrib/dev/acpica/include/actables.h          |   2 +-
 sys/contrib/dev/acpica/include/actbinfo.h          |  28 +-
 sys/contrib/dev/acpica/include/actbl.h             |  20 +-
 sys/contrib/dev/acpica/include/actbl1.h            |  35 +-
 sys/contrib/dev/acpica/include/actbl2.h            | 385 ++++++++++++++-
 sys/contrib/dev/acpica/include/actbl3.h            |   4 +-
 sys/contrib/dev/acpica/include/actypes.h           |  10 +-
 sys/contrib/dev/acpica/include/acutils.h           |   2 +-
 sys/contrib/dev/acpica/include/acuuid.h            |   2 +-
 sys/contrib/dev/acpica/include/amlcode.h           |   2 +-
 sys/contrib/dev/acpica/include/amlresrc.h          |   9 +-
 sys/contrib/dev/acpica/include/platform/acenv.h    |   2 +-
 sys/contrib/dev/acpica/include/platform/acenvex.h  |   2 +-
 .../dev/acpica/include/platform/acfreebsd.h        |   2 +-
 sys/contrib/dev/acpica/include/platform/acgcc.h    |  10 +-
 sys/contrib/dev/acpica/include/platform/acgccex.h  |   2 +-
 .../acpica/os_specific/service_layers/osgendbg.c   |   2 +-
 .../acpica/os_specific/service_layers/osunixxf.c   |   2 +-
 359 files changed, 2658 insertions(+), 458 deletions(-)

diff --git a/sys/contrib/dev/acpica/changes.txt b/sys/contrib/dev/acpica/changes.txt
index 5130ba82057d..435540b254f1 100644
--- a/sys/contrib/dev/acpica/changes.txt
+++ b/sys/contrib/dev/acpica/changes.txt
@@ -1,3 +1,19 @@
+----------------------------------------
+4 April 2025. Summary of changes for version 20250404:
+
+Major changes:
+
+Update all the copyright continuation year to 2025 in the license header of all files
+
+Add complete support for 3 new ACPI tables ? MRRM,ERDT and RIMT (Tony Luck & V L Sunil)
+
+Add a license file to the project which is a great improvement (Dionna Glaze)
+
+Update DMAR and TPM2 tables to support their latest versions (Alexey Neyman and Stuart Yoder) 
+
+A few fixes including local cache allocation, FFixedHW Region, attribute packing, string vs. non-string char array, vsnprintf()etc. along with some comments, spelling errors and code alignment (multiple awesome contributors)
+ 
+
 ----------------------------------------
 12 December 2024. Summary of changes for version 20241212:
 
diff --git a/sys/contrib/dev/acpica/common/acfileio.c b/sys/contrib/dev/acpica/common/acfileio.c
index c8666a18384b..19274cb4bdd3 100644
--- a/sys/contrib/dev/acpica/common/acfileio.c
+++ b/sys/contrib/dev/acpica/common/acfileio.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/acgetline.c b/sys/contrib/dev/acpica/common/acgetline.c
index 6aa66412722f..2793f26077bb 100644
--- a/sys/contrib/dev/acpica/common/acgetline.c
+++ b/sys/contrib/dev/acpica/common/acgetline.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/adfile.c b/sys/contrib/dev/acpica/common/adfile.c
index 54c88ce149dc..f87b329d918d 100644
--- a/sys/contrib/dev/acpica/common/adfile.c
+++ b/sys/contrib/dev/acpica/common/adfile.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/adisasm.c b/sys/contrib/dev/acpica/common/adisasm.c
index c329093901f7..96cd6c7f5d3c 100644
--- a/sys/contrib/dev/acpica/common/adisasm.c
+++ b/sys/contrib/dev/acpica/common/adisasm.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
@@ -458,7 +458,7 @@ AdDisassembleOneTable (
      */
     if (AcpiGbl_CaptureComments)
     {
-        strncpy (Table->Signature, AcpiGbl_TableSig, ACPI_NAMESEG_SIZE);
+        memcpy (Table->Signature, AcpiGbl_TableSig, ACPI_NAMESEG_SIZE);
     }
 #endif
 
diff --git a/sys/contrib/dev/acpica/common/adwalk.c b/sys/contrib/dev/acpica/common/adwalk.c
index bb6f7e21c08a..b7484315fe51 100644
--- a/sys/contrib/dev/acpica/common/adwalk.c
+++ b/sys/contrib/dev/acpica/common/adwalk.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/ahids.c b/sys/contrib/dev/acpica/common/ahids.c
index a50a4d51a2a3..07b69b45c641 100644
--- a/sys/contrib/dev/acpica/common/ahids.c
+++ b/sys/contrib/dev/acpica/common/ahids.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/ahpredef.c b/sys/contrib/dev/acpica/common/ahpredef.c
index e1e71b9c0c4d..e6c3f2758760 100644
--- a/sys/contrib/dev/acpica/common/ahpredef.c
+++ b/sys/contrib/dev/acpica/common/ahpredef.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/ahtable.c b/sys/contrib/dev/acpica/common/ahtable.c
index 7a95e5f3198d..898b2d09f609 100644
--- a/sys/contrib/dev/acpica/common/ahtable.c
+++ b/sys/contrib/dev/acpica/common/ahtable.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
@@ -219,6 +219,7 @@ const AH_TABLE      AcpiGbl_SupportedTables[] =
     {ACPI_SIG_DSDT, "Differentiated System Description Table (AML table)"},
     {ACPI_SIG_ECDT, "Embedded Controller Boot Resources Table"},
     {ACPI_SIG_EINJ, "Error Injection Table"},
+    {ACPI_SIG_ERDT, "Enhanced Resource Director Technology Table"},
     {ACPI_SIG_ERST, "Error Record Serialization Table"},
     {ACPI_SIG_FACS, "Firmware ACPI Control Structure"},
     {ACPI_SIG_FADT, "Fixed ACPI Description Table (FADT)"},
@@ -235,6 +236,7 @@ const AH_TABLE      AcpiGbl_SupportedTables[] =
     {ACPI_SIG_MCHI, "Management Controller Host Interface Table"},
     {ACPI_SIG_MPAM, "Memory System Resource Partitioning and Monitoring Table"},
     {ACPI_SIG_MPST, "Memory Power State Table"},
+    {ACPI_SIG_MRRM, "Memory Range and Region Mapping Table"},
     {ACPI_SIG_MSCT, "Maximum System Characteristics Table"},
     {ACPI_SIG_MSDM, "Microsoft Data Management Table"},
     {ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"},
diff --git a/sys/contrib/dev/acpica/common/ahuuids.c b/sys/contrib/dev/acpica/common/ahuuids.c
index cb29f05f1059..f7056fdf9363 100644
--- a/sys/contrib/dev/acpica/common/ahuuids.c
+++ b/sys/contrib/dev/acpica/common/ahuuids.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/cmfsize.c b/sys/contrib/dev/acpica/common/cmfsize.c
index 8b4b00909714..c6cedf9a0866 100644
--- a/sys/contrib/dev/acpica/common/cmfsize.c
+++ b/sys/contrib/dev/acpica/common/cmfsize.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmextern.c b/sys/contrib/dev/acpica/common/dmextern.c
index 3c5ba89a762f..d2eeffdfe02e 100644
--- a/sys/contrib/dev/acpica/common/dmextern.c
+++ b/sys/contrib/dev/acpica/common/dmextern.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmrestag.c b/sys/contrib/dev/acpica/common/dmrestag.c
index aca96acffcf4..8c7cc4b9ef7c 100644
--- a/sys/contrib/dev/acpica/common/dmrestag.c
+++ b/sys/contrib/dev/acpica/common/dmrestag.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
@@ -894,7 +894,7 @@ static void
 AcpiDmUpdateResourceName (
     ACPI_NAMESPACE_NODE     *ResourceNode)
 {
-    char                    Name[ACPI_NAMESEG_SIZE];
+    char                    Name[ACPI_NAMESEG_SIZE] ACPI_NONSTRING;
 
 
     /* Ignore if a unique name has already been assigned */
diff --git a/sys/contrib/dev/acpica/common/dmswitch.c b/sys/contrib/dev/acpica/common/dmswitch.c
index a2f20bab281a..8d5ca2e016a7 100644
--- a/sys/contrib/dev/acpica/common/dmswitch.c
+++ b/sys/contrib/dev/acpica/common/dmswitch.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmtable.c b/sys/contrib/dev/acpica/common/dmtable.c
index c40abb20703a..fcff97a304ae 100644
--- a/sys/contrib/dev/acpica/common/dmtable.c
+++ b/sys/contrib/dev/acpica/common/dmtable.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
@@ -272,6 +272,7 @@ static const char           *AcpiDmDmarSubnames[] =
     "Remapping Hardware Static Affinity",
     "ACPI Namespace Device Declaration",
     "SoC Integrated Address Translation Cache",
+    "SoC Integrated Device Property",
     "Unknown Subtable Type"         /* Reserved */
 };
 
@@ -312,6 +313,22 @@ static const char           *AcpiDmEinjInstructions[] =
     "Unknown Instruction"
 };
 
+static const char           *AcpiDmErdtSubnames[] =
+{
+    "RMDD",
+    "CACD",
+    "DACD",
+    "CMRC",
+    "MMRC",
+    "MARC",
+    "CARC",
+    "CMRD",
+    "IBRD",
+    "IBAD",
+    "CARD",
+    "RESERVED"
+};
+
 static const char           *AcpiDmErstActions[] =
 {
     "Begin Write Operation",
@@ -660,6 +677,7 @@ const ACPI_DMTABLE_DATA     AcpiDmTableData[] =
     {ACPI_SIG_DRTM, NULL,                   AcpiDmDumpDrtm, DtCompileDrtm,  TemplateDrtm},
     {ACPI_SIG_ECDT, AcpiDmTableInfoEcdt,    NULL,           NULL,           TemplateEcdt},
     {ACPI_SIG_EINJ, NULL,                   AcpiDmDumpEinj, DtCompileEinj,  TemplateEinj},
+    {ACPI_SIG_ERDT, NULL,                   AcpiDmDumpErdt, DtCompileErdt,  TemplateErdt},
     {ACPI_SIG_ERST, NULL,                   AcpiDmDumpErst, DtCompileErst,  TemplateErst},
     {ACPI_SIG_FADT, NULL,                   AcpiDmDumpFadt, DtCompileFadt,  TemplateFadt},
     {ACPI_SIG_FPDT, NULL,                   AcpiDmDumpFpdt, DtCompileFpdt,  TemplateFpdt},
@@ -675,6 +693,7 @@ const ACPI_DMTABLE_DATA     AcpiDmTableData[] =
     {ACPI_SIG_MCHI, AcpiDmTableInfoMchi,    NULL,           NULL,           TemplateMchi},
     {ACPI_SIG_MPAM, NULL,                   AcpiDmDumpMpam, DtCompileMpam,  TemplateMpam},
     {ACPI_SIG_MPST, AcpiDmTableInfoMpst,    AcpiDmDumpMpst, DtCompileMpst,  TemplateMpst},
+    {ACPI_SIG_MRRM, NULL,                   AcpiDmDumpMrrm, DtCompileMrrm,  TemplateMrrm},
     {ACPI_SIG_MSCT, NULL,                   AcpiDmDumpMsct, DtCompileMsct,  TemplateMsct},
     {ACPI_SIG_MSDM, NULL,                   AcpiDmDumpSlic, DtCompileSlic,  TemplateMsdm},
     {ACPI_SIG_NFIT, AcpiDmTableInfoNfit,    AcpiDmDumpNfit, DtCompileNfit,  TemplateNfit},
@@ -689,6 +708,7 @@ const ACPI_DMTABLE_DATA     AcpiDmTableData[] =
     {ACPI_SIG_RAS2, AcpiDmTableInfoRas2,    AcpiDmDumpRas2, DtCompileRas2,  TemplateRas2},
     {ACPI_SIG_RGRT, NULL,                   AcpiDmDumpRgrt, DtCompileRgrt,  TemplateRgrt},
     {ACPI_SIG_RHCT, NULL,                   AcpiDmDumpRhct, DtCompileRhct,  TemplateRhct},
+    {ACPI_SIG_RIMT, NULL,                   AcpiDmDumpRimt, DtCompileRimt,  TemplateRimt},
     {ACPI_SIG_RSDT, NULL,                   AcpiDmDumpRsdt, DtCompileRsdt,  TemplateRsdt},
     {ACPI_SIG_S3PT, NULL,                   NULL,           NULL,           TemplateS3pt},
     {ACPI_SIG_SBST, AcpiDmTableInfoSbst,    NULL,           NULL,           TemplateSbst},
@@ -1132,6 +1152,7 @@ AcpiDmDumpTable (
         case ACPI_DMT_ASPT:
         case ACPI_DMT_UINT16:
         case ACPI_DMT_DMAR:
+        case ACPI_DMT_ERDT:
         case ACPI_DMT_HEST:
         case ACPI_DMT_HMAT:
         case ACPI_DMT_NFIT:
@@ -1185,6 +1206,11 @@ AcpiDmDumpTable (
             ByteLength = 10;
             break;
 
+        case ACPI_DMT_BUF11:
+
+            ByteLength = 11;
+            break;
+
         case ACPI_DMT_BUF12:
 
             ByteLength = 12;
@@ -1201,6 +1227,16 @@ AcpiDmDumpTable (
             ByteLength = 18;
             break;
 
+        case ACPI_DMT_BUF24:
+
+            ByteLength = 24;
+            break;
+
+        case ACPI_DMT_BUF26:
+
+            ByteLength = 26;
+            break;
+
         case ACPI_DMT_BUF32:
 
             ByteLength = 32;
@@ -1419,9 +1455,12 @@ AcpiDmDumpTable (
 
         case ACPI_DMT_BUF7:
         case ACPI_DMT_BUF10:
+        case ACPI_DMT_BUF11:
         case ACPI_DMT_BUF12:
         case ACPI_DMT_BUF16:
         case ACPI_DMT_BUF18:
+        case ACPI_DMT_BUF24:
+        case ACPI_DMT_BUF26:
         case ACPI_DMT_BUF32:
         case ACPI_DMT_BUF112:
         case ACPI_DMT_BUF128:
@@ -1767,6 +1806,20 @@ AcpiDmDumpTable (
                 AcpiDmErstActions[Temp8]);
             break;
 
+        case ACPI_DMT_ERDT:
+
+            /* ERDT subtable types */
+
+            Temp16 = *Target;
+            if (Temp16 > ACPI_ERDT_TYPE_RESERVED)
+            {
+                Temp16 = ACPI_ERDT_TYPE_RESERVED;
+            }
+
+            AcpiOsPrintf (UINT8_FORMAT, *Target,
+                AcpiDmErdtSubnames[Temp16]);
+            break;
+
         case ACPI_DMT_ERSTINST:
 
             /* ERST Instruction types */
diff --git a/sys/contrib/dev/acpica/common/dmtables.c b/sys/contrib/dev/acpica/common/dmtables.c
index 227d6ae335ed..c72f6451154c 100644
--- a/sys/contrib/dev/acpica/common/dmtables.c
+++ b/sys/contrib/dev/acpica/common/dmtables.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmtbdump.c b/sys/contrib/dev/acpica/common/dmtbdump.c
index 47173d8e31fc..aa8b5aa76892 100644
--- a/sys/contrib/dev/acpica/common/dmtbdump.c
+++ b/sys/contrib/dev/acpica/common/dmtbdump.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
diff --git a/sys/contrib/dev/acpica/common/dmtbdump1.c b/sys/contrib/dev/acpica/common/dmtbdump1.c
index edf366039edb..3453ed479a22 100644
--- a/sys/contrib/dev/acpica/common/dmtbdump1.c
+++ b/sys/contrib/dev/acpica/common/dmtbdump1.c
@@ -8,7 +8,7 @@
  *
  * 1. Copyright Notice
  *
- * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
  * All rights reserved.
  *
  * 2. License
@@ -1480,6 +1480,12 @@ AcpiDmDumpDmar (
             ScopeOffset = sizeof (ACPI_DMAR_SATC);
             break;
 
+        case ACPI_DMAR_TYPE_SIDP:
+
+            InfoTable = AcpiDmTableInfoDmar6;
+            ScopeOffset = sizeof (ACPI_DMAR_SIDP);
+            break;
+
         default:
 
             AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n",
@@ -1717,6 +1723,233 @@ AcpiDmDumpEinj (
 }
 
 
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiDmDumpErdt
+ *
+ * PARAMETERS:  Table               - A ERDT table
+ *
+ * RETURN:      None
+ *
+ * DESCRIPTION: Format the contents of a ERDT. This table type consists
+ *              of an open-ended number of subtables.
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpErdt (
+    ACPI_TABLE_HEADER       *Table)
+{
+    ACPI_STATUS             Status;
+    ACPI_SUBTBL_HDR_16      *Subtable, *Subsubtable;
+    ACPI_ERDT_DACD_PATHS    *ScopeTable;
+    UINT32                  Offset = sizeof (ACPI_TABLE_ERDT);
+    UINT32                  Suboffset;
+    UINT32                  ScopeOffset;
+    UINT32                  SubsubtableLength = 0;
+    ACPI_DMTABLE_INFO       *InfoTable, *TrailEntries, *DacdEntries;
+    UINT32                  NumTrailers = 0;
+
+    /* Main table */
+
+    Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoErdt);
+    if (ACPI_FAILURE (Status))
+    {
+        return;
+    }
+
+    /* Subtables */
+    Subtable = ACPI_ADD_PTR (ACPI_SUBTBL_HDR_16, Table, Offset);
+    while (Offset < Table->Length)
+    {
+
+        /* Dump common header */
+
+        AcpiOsPrintf ("\n");
+        Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+            Subtable->Length, AcpiDmTableInfoErdtHdr);
+        if (ACPI_FAILURE (Status))
+        {
+            return;
+        }
+
+        AcpiOsPrintf ("\n");
+        Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+            Subtable->Length, AcpiDmTableInfoErdtRmdd);
+        if (ACPI_FAILURE (Status))
+        {
+            return;
+        }
+
+        /* Subtables of this RMDD table */
+
+        Suboffset = Offset + sizeof(ACPI_ERDT_RMDD);
+        Subsubtable = ACPI_ADD_PTR (ACPI_SUBTBL_HDR_16, Table, Suboffset);
+        while (Suboffset < Offset + Subtable->Length)
+        {
+            AcpiOsPrintf ("\n");
+
+            TrailEntries = NULL;
+            DacdEntries = NULL;
+            switch (Subsubtable->Type)
+            {
+            case ACPI_ERDT_TYPE_CACD:
+                 InfoTable = AcpiDmTableInfoErdtCacd;
+                 TrailEntries = AcpiDmTableInfoErdtCacdX2apic;
+                 SubsubtableLength = sizeof(ACPI_ERDT_CACD);
+                 break;
+
+            case ACPI_ERDT_TYPE_DACD:
+                 InfoTable = AcpiDmTableInfoErdtDacd;
+                 DacdEntries = AcpiDmTableInfoErdtDacdScope;
+                 SubsubtableLength = sizeof(ACPI_ERDT_DACD);
+                 break;
+
+            case ACPI_ERDT_TYPE_CMRC:
+                 InfoTable = AcpiDmTableInfoErdtCmrc;
+                 break;
+
+            case ACPI_ERDT_TYPE_MMRC:
+                 InfoTable = AcpiDmTableInfoErdtMmrc;
+                 TrailEntries = AcpiDmTableInfoErdtMmrcCorrFactor;
+                 SubsubtableLength = sizeof(ACPI_ERDT_MMRC);
+                 break;
+
+            case ACPI_ERDT_TYPE_MARC:
+                 InfoTable = AcpiDmTableInfoErdtMarc;
+                 break;
+
+            case ACPI_ERDT_TYPE_CARC:
+                 InfoTable = AcpiDmTableInfoErdtCarc;
+                 break;
+
+            case ACPI_ERDT_TYPE_CMRD:
+                 InfoTable = AcpiDmTableInfoErdtCmrd;
+                 break;
+
+            case ACPI_ERDT_TYPE_IBRD:
+                 InfoTable = AcpiDmTableInfoErdtIbrd;
+                 TrailEntries = AcpiDmTableInfoErdtIbrdCorrFactor;
+                 SubsubtableLength = sizeof(ACPI_ERDT_IBRD);
+                 break;
+
+            case ACPI_ERDT_TYPE_IBAD:
+                 InfoTable = AcpiDmTableInfoErdtIbad;
+                 break;
+
+            case ACPI_ERDT_TYPE_CARD:
+                 InfoTable = AcpiDmTableInfoErdtCard;
+                 break;
+
+            default:
+                AcpiOsPrintf ("\n**** Unknown RMDD subtable type 0x%X\n",
+                    Subsubtable->Type);
+
+                /* Attempt to continue */
+
+                if (!Subsubtable->Length)
+                {
+                    AcpiOsPrintf ("Invalid zero length subtable\n");
+                    return;
+                }
+                goto NextSubsubtable;
+            }
+
+            /* Dump subtable header */
+
+            Status = AcpiDmDumpTable (Table->Length, Suboffset, Subsubtable,
+                Subsubtable->Length, AcpiDmTableInfoErdtHdr);
+            if (ACPI_FAILURE (Status))
+            {
+                return;
+            }
+
+            /* Dump subtable body */
+
+            Status = AcpiDmDumpTable (Table->Length, Suboffset, Subsubtable,
+                Subsubtable->Length, InfoTable);
+            if (ACPI_FAILURE (Status))
+            {
+                return;
+            }
+
+            /* CACD, MMRC, and IBRD subtables have simple flex array at end */
+
+            if (TrailEntries)
+            {
+                NumTrailers = 0;
+                while (NumTrailers < Subsubtable->Length - SubsubtableLength)
+                {
+
+                    /* Dump one flex array element */
+
+                    Status = AcpiDmDumpTable (Table->Length, Suboffset +
+                        SubsubtableLength + NumTrailers,
+                        ACPI_ADD_PTR (ACPI_SUBTBL_HDR_16, Subsubtable,
+                            SubsubtableLength + NumTrailers),
+                        sizeof(UINT32), TrailEntries);
+                    if (ACPI_FAILURE (Status))
+                    {
+                        return;
+                    }
+                    NumTrailers += sizeof(UINT32);
+                }
+            }
+
+            /* DACD subtable has flex array of device agent structures */
+
+            if (DacdEntries) {
+                 ScopeOffset = Suboffset + SubsubtableLength;
+                 ScopeTable = ACPI_ADD_PTR (ACPI_ERDT_DACD_PATHS,
+                     Subsubtable, SubsubtableLength);
+                 while (ScopeOffset < Suboffset + Subsubtable->Length)
+                 {
+                     /* Dump one device agent structure */
+
+                     AcpiOsPrintf ("\n");
+                     Status = AcpiDmDumpTable (Table->Length, ScopeOffset,
+                         ScopeTable, ScopeTable->Header.Length, DacdEntries);
+                     if (ACPI_FAILURE (Status))
+                     {
+                         return;
+                     }
*** 7267 LINES SKIPPED ***