aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/dev/acpica
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica')
-rwxr-xr-xsys/contrib/dev/acpica/acpica_prep.sh8
-rw-r--r--sys/contrib/dev/acpica/changes.txt249
-rw-r--r--sys/contrib/dev/acpica/common/acfileio.c133
-rw-r--r--sys/contrib/dev/acpica/common/acgetline.c2
-rw-r--r--sys/contrib/dev/acpica/common/adfile.c2
-rw-r--r--sys/contrib/dev/acpica/common/adisasm.c21
-rw-r--r--sys/contrib/dev/acpica/common/adwalk.c2
-rw-r--r--sys/contrib/dev/acpica/common/ahids.c2
-rw-r--r--sys/contrib/dev/acpica/common/ahpredef.c3
-rw-r--r--sys/contrib/dev/acpica/common/ahtable.c11
-rw-r--r--sys/contrib/dev/acpica/common/ahuuids.c5
-rw-r--r--sys/contrib/dev/acpica/common/cmfsize.c2
-rw-r--r--sys/contrib/dev/acpica/common/dmextern.c10
-rw-r--r--sys/contrib/dev/acpica/common/dmrestag.c13
-rw-r--r--sys/contrib/dev/acpica/common/dmswitch.c2
-rw-r--r--sys/contrib/dev/acpica/common/dmtable.c452
-rw-r--r--sys/contrib/dev/acpica/common/dmtables.c18
-rw-r--r--sys/contrib/dev/acpica/common/dmtbdump.c22
-rw-r--r--sys/contrib/dev/acpica/common/dmtbdump1.c687
-rw-r--r--sys/contrib/dev/acpica/common/dmtbdump2.c1120
-rw-r--r--sys/contrib/dev/acpica/common/dmtbdump3.c10
-rw-r--r--sys/contrib/dev/acpica/common/dmtbinfo.c2
-rw-r--r--sys/contrib/dev/acpica/common/dmtbinfo1.c575
-rw-r--r--sys/contrib/dev/acpica/common/dmtbinfo2.c830
-rw-r--r--sys/contrib/dev/acpica/common/dmtbinfo3.c42
-rw-r--r--sys/contrib/dev/acpica/common/getopt.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslallocate.c8
-rw-r--r--sys/contrib/dev/acpica/compiler/aslanalyze.c18
-rw-r--r--sys/contrib/dev/acpica/compiler/aslascii.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslbtypes.c5
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcache.c5
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcodegen.c77
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcompile.c34
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcompiler.h18
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcompiler.l17
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcstyle.y2
-rw-r--r--sys/contrib/dev/acpica/compiler/asldebug.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/asldefine.h4
-rw-r--r--sys/contrib/dev/acpica/compiler/aslerror.c3
-rw-r--r--sys/contrib/dev/acpica/compiler/aslexternal.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslfileio.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslfiles.c6
-rw-r--r--sys/contrib/dev/acpica/compiler/aslfold.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslglobal.h3
-rw-r--r--sys/contrib/dev/acpica/compiler/aslhelp.c4
-rw-r--r--sys/contrib/dev/acpica/compiler/aslhelpers.y2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslhex.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslkeywords.y13
-rw-r--r--sys/contrib/dev/acpica/compiler/asllength.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/asllisting.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/asllistsup.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslload.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/asllookup.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmain.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmap.c11
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmapenter.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmapoutput.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmaputils.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmessages.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmessages.h2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmethod.c8
-rw-r--r--sys/contrib/dev/acpica/compiler/aslnamesp.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/asloffset.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslopcodes.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/asloperands.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslopt.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/asloptions.c39
-rw-r--r--sys/contrib/dev/acpica/compiler/aslparseop.c8
-rw-r--r--sys/contrib/dev/acpica/compiler/aslparser.y4
-rw-r--r--sys/contrib/dev/acpica/compiler/aslpld.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslpredef.c4
-rw-r--r--sys/contrib/dev/acpica/compiler/aslprepkg.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslprimaries.y2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslprintf.c6
-rw-r--r--sys/contrib/dev/acpica/compiler/aslprune.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslresource.c23
-rw-r--r--sys/contrib/dev/acpica/compiler/aslresources.y63
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype1.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype1i.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype2.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype2d.c159
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype2e.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype2q.c158
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype2s.c131
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype2w.c158
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrules.y2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslstartup.c4
-rw-r--r--sys/contrib/dev/acpica/compiler/aslstubs.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslsupport.l4
-rw-r--r--sys/contrib/dev/acpica/compiler/aslsupport.y2
-rw-r--r--sys/contrib/dev/acpica/compiler/asltokens.y11
-rw-r--r--sys/contrib/dev/acpica/compiler/asltransform.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/asltree.c5
-rw-r--r--sys/contrib/dev/acpica/compiler/asltypes.h4
-rw-r--r--sys/contrib/dev/acpica/compiler/asltypes.y8
-rw-r--r--sys/contrib/dev/acpica/compiler/aslutils.c8
-rw-r--r--sys/contrib/dev/acpica/compiler/asluuid.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslwalks.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslxref.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/aslxrefout.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/cvcompiler.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/cvdisasm.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/cvparser.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/dtcompile.c44
-rw-r--r--sys/contrib/dev/acpica/compiler/dtcompiler.h48
-rw-r--r--sys/contrib/dev/acpica/compiler/dtcompilerparser.l2
-rw-r--r--sys/contrib/dev/acpica/compiler/dtcompilerparser.y2
-rw-r--r--sys/contrib/dev/acpica/compiler/dtexpress.c7
-rw-r--r--sys/contrib/dev/acpica/compiler/dtfield.c8
-rw-r--r--sys/contrib/dev/acpica/compiler/dtio.c10
-rw-r--r--sys/contrib/dev/acpica/compiler/dtparser.l2
-rw-r--r--sys/contrib/dev/acpica/compiler/dtparser.y2
-rw-r--r--sys/contrib/dev/acpica/compiler/dtsubtable.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/dttable.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/dttable1.c883
-rw-r--r--sys/contrib/dev/acpica/compiler/dttable2.c1043
-rw-r--r--sys/contrib/dev/acpica/compiler/dttemplate.c26
-rw-r--r--sys/contrib/dev/acpica/compiler/dttemplate.h733
-rw-r--r--sys/contrib/dev/acpica/compiler/dtutils.c46
-rw-r--r--sys/contrib/dev/acpica/compiler/preprocess.h11
-rw-r--r--sys/contrib/dev/acpica/compiler/prexpress.c2
-rw-r--r--sys/contrib/dev/acpica/compiler/prmacros.c58
-rw-r--r--sys/contrib/dev/acpica/compiler/prparser.l2
-rw-r--r--sys/contrib/dev/acpica/compiler/prparser.y2
-rw-r--r--sys/contrib/dev/acpica/compiler/prscan.c9
-rw-r--r--sys/contrib/dev/acpica/compiler/prutils.c264
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbcmds.c61
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbconvert.c4
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbdisply.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbexec.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbfileio.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbhistry.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbinput.c10
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbmethod.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbnames.c12
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbobject.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbstats.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbtest.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbutils.c2
-rw-r--r--sys/contrib/dev/acpica/components/debugger/dbxface.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmbuffer.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmcstyle.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmdeferred.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmnames.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmopcode.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmresrc.c3
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmresrcl.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c44
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmresrcs.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmutils.c2
-rw-r--r--sys/contrib/dev/acpica/components/disassembler/dmwalk.c4
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsargs.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dscontrol.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsdebug.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsfield.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsinit.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsmethod.c41
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c3
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsobject.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsopcode.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dspkginit.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dsutils.c11
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dswexec.c8
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dswload.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dswload2.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dswscope.c2
-rw-r--r--sys/contrib/dev/acpica/components/dispatcher/dswstate.c15
-rw-r--r--sys/contrib/dev/acpica/components/events/evevent.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evglock.c7
-rw-r--r--sys/contrib/dev/acpica/components/events/evgpe.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evgpeblk.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evgpeinit.c3
-rw-r--r--sys/contrib/dev/acpica/components/events/evgpeutil.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evhandler.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evmisc.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evregion.c10
-rw-r--r--sys/contrib/dev/acpica/components/events/evrgnini.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evsci.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evxface.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evxfevnt.c2
-rw-r--r--sys/contrib/dev/acpica/components/events/evxfgpe.c4
-rw-r--r--sys/contrib/dev/acpica/components/events/evxfregn.c104
-rw-r--r--sys/contrib/dev/acpica/components/executer/exconcat.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exconfig.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exconvrt.c60
-rw-r--r--sys/contrib/dev/acpica/components/executer/excreate.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exdebug.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exdump.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exfield.c8
-rw-r--r--sys/contrib/dev/acpica/components/executer/exfldio.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exmisc.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exmutex.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exnames.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exoparg1.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exoparg2.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exoparg3.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exoparg6.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exprep.c6
-rw-r--r--sys/contrib/dev/acpica/components/executer/exregion.c25
-rw-r--r--sys/contrib/dev/acpica/components/executer/exresnte.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exresolv.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exresop.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exserial.c17
-rw-r--r--sys/contrib/dev/acpica/components/executer/exstore.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exstoren.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exstorob.c2
-rw-r--r--sys/contrib/dev/acpica/components/executer/exsystem.c10
-rw-r--r--sys/contrib/dev/acpica/components/executer/extrace.c68
-rw-r--r--sys/contrib/dev/acpica/components/executer/exutils.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwacpi.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwesleep.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwgpe.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwpci.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwregs.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwsleep.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwtimer.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwvalid.c10
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwxface.c2
-rw-r--r--sys/contrib/dev/acpica/components/hardware/hwxfsleep.c17
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsaccess.c10
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsalloc.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsarguments.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsconvert.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsdump.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsdumpdv.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nseval.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsinit.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsload.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsnames.c4
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsobject.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsparse.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nspredef.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsprepkg.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsrepair.c16
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsrepair2.c13
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nssearch.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsutils.c4
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nswalk.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsxfeval.c2
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsxfname.c4
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsxfobj.c2
-rw-r--r--sys/contrib/dev/acpica/components/parser/psargs.c58
-rw-r--r--sys/contrib/dev/acpica/components/parser/psloop.c2
-rw-r--r--sys/contrib/dev/acpica/components/parser/psobject.c46
-rw-r--r--sys/contrib/dev/acpica/components/parser/psopcode.c4
-rw-r--r--sys/contrib/dev/acpica/components/parser/psopinfo.c10
-rw-r--r--sys/contrib/dev/acpica/components/parser/psparse.c2
-rw-r--r--sys/contrib/dev/acpica/components/parser/psscope.c2
-rw-r--r--sys/contrib/dev/acpica/components/parser/pstree.c2
-rw-r--r--sys/contrib/dev/acpica/components/parser/psutils.c2
-rw-r--r--sys/contrib/dev/acpica/components/parser/pswalk.c2
-rw-r--r--sys/contrib/dev/acpica/components/parser/psxface.c2
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsaddr.c9
-rw-r--r--sys/contrib/dev/acpica/components/resources/rscalc.c18
-rw-r--r--sys/contrib/dev/acpica/components/resources/rscreate.c2
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsdump.c5
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsdumpinfo.c13
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsinfo.c7
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsio.c2
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsirq.c2
-rw-r--r--sys/contrib/dev/acpica/components/resources/rslist.c2
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsmemory.c2
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsmisc.c11
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsserial.c46
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsutils.c2
-rw-r--r--sys/contrib/dev/acpica/components/resources/rsxface.c2
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbdata.c4
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbfadt.c33
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbfind.c6
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbinstal.c2
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbprint.c101
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbutils.c21
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbxface.c2
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbxfload.c2
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbxfroot.c34
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utaddress.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utalloc.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utascii.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utbuffer.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utcache.c6
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utcksum.c335
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utcopy.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utdebug.c12
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utdecode.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utdelete.c8
-rw-r--r--sys/contrib/dev/acpica/components/utilities/uterror.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/uteval.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utexcep.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utglobal.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/uthex.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utids.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utinit.c4
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utlock.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utmath.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utmisc.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utmutex.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utnonansi.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utobject.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utosi.c3
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utownerid.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utpredef.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utresdecode.c15
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utresrc.c5
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utstate.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utstring.c12
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utstrsuppt.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utstrtoul64.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/uttrack.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utuuid.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utxface.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utxferror.c2
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utxfinit.c30
-rw-r--r--sys/contrib/dev/acpica/components/utilities/utxfmutex.c2
-rw-r--r--sys/contrib/dev/acpica/include/acapps.h4
-rw-r--r--sys/contrib/dev/acpica/include/acbuffer.h2
-rw-r--r--sys/contrib/dev/acpica/include/acclib.h2
-rw-r--r--sys/contrib/dev/acpica/include/accommon.h2
-rw-r--r--sys/contrib/dev/acpica/include/acconfig.h5
-rw-r--r--sys/contrib/dev/acpica/include/acconvert.h2
-rw-r--r--sys/contrib/dev/acpica/include/acdebug.h6
-rw-r--r--sys/contrib/dev/acpica/include/acdisasm.h173
-rw-r--r--sys/contrib/dev/acpica/include/acdispat.h2
-rw-r--r--sys/contrib/dev/acpica/include/acevents.h2
-rw-r--r--sys/contrib/dev/acpica/include/acexcep.h11
-rw-r--r--sys/contrib/dev/acpica/include/acglobal.h10
-rw-r--r--sys/contrib/dev/acpica/include/achware.h2
-rw-r--r--sys/contrib/dev/acpica/include/acinterp.h6
-rw-r--r--sys/contrib/dev/acpica/include/aclocal.h40
-rw-r--r--sys/contrib/dev/acpica/include/acmacros.h2
-rw-r--r--sys/contrib/dev/acpica/include/acnames.h3
-rw-r--r--sys/contrib/dev/acpica/include/acnamesp.h2
-rw-r--r--sys/contrib/dev/acpica/include/acobject.h84
-rw-r--r--sys/contrib/dev/acpica/include/acopcode.h2
-rw-r--r--sys/contrib/dev/acpica/include/acoutput.h7
-rw-r--r--sys/contrib/dev/acpica/include/acparser.h2
-rw-r--r--sys/contrib/dev/acpica/include/acpi.h2
-rw-r--r--sys/contrib/dev/acpica/include/acpiosxf.h2
-rw-r--r--sys/contrib/dev/acpica/include/acpixf.h29
-rw-r--r--sys/contrib/dev/acpica/include/acpredef.h7
-rw-r--r--sys/contrib/dev/acpica/include/acresrc.h4
-rw-r--r--sys/contrib/dev/acpica/include/acrestyp.h41
-rw-r--r--sys/contrib/dev/acpica/include/acstruct.h2
-rw-r--r--sys/contrib/dev/acpica/include/actables.h12
-rw-r--r--sys/contrib/dev/acpica/include/actbinfo.h105
-rw-r--r--sys/contrib/dev/acpica/include/actbl.h20
-rw-r--r--sys/contrib/dev/acpica/include/actbl1.h349
-rw-r--r--sys/contrib/dev/acpica/include/actbl2.h1514
-rw-r--r--sys/contrib/dev/acpica/include/actbl3.h42
-rw-r--r--sys/contrib/dev/acpica/include/actypes.h31
-rw-r--r--sys/contrib/dev/acpica/include/acutils.h29
-rw-r--r--sys/contrib/dev/acpica/include/acuuid.h5
-rw-r--r--sys/contrib/dev/acpica/include/amlcode.h2
-rw-r--r--sys/contrib/dev/acpica/include/amlresrc.h34
-rw-r--r--sys/contrib/dev/acpica/include/platform/acenv.h10
-rw-r--r--sys/contrib/dev/acpica/include/platform/acenvex.h2
-rw-r--r--sys/contrib/dev/acpica/include/platform/acfreebsd.h4
-rw-r--r--sys/contrib/dev/acpica/include/platform/acgcc.h25
-rw-r--r--sys/contrib/dev/acpica/include/platform/acgccex.h2
-rw-r--r--sys/contrib/dev/acpica/os_specific/service_layers/osgendbg.c2
-rw-r--r--sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c2
360 files changed, 10117 insertions, 2809 deletions
diff --git a/sys/contrib/dev/acpica/acpica_prep.sh b/sys/contrib/dev/acpica/acpica_prep.sh
index 1a53d8c44ae1..034541cc69d7 100755
--- a/sys/contrib/dev/acpica/acpica_prep.sh
+++ b/sys/contrib/dev/acpica/acpica_prep.sh
@@ -21,10 +21,10 @@ stripdirs="generate libraries parsers preprocessor tests tools"
stripfiles="Makefile README aslcompiler.y accygwin.h acdragonfly.h \
acdragonflyex.h acefi.h acefiex.h achaiku.h acintel.h aclinux.h \
aclinuxex.h acmacosx.h acmsvc.h acmsvcex.h acnetbsd.h acos2.h \
- acqnx.h acwin.h acwin64.h acwinex.h new_table.txt osbsdtbl.c \
- osefitbl.c osefixf.c osfreebsdtbl.c oslinuxtbl.c osunixdir.c \
- osunixmap.c oswindir.c oswintbl.c oswinxf.c readme.txt utclib.c \
- utprint.c"
+ acqnx.h acwin.h acwin64.h acwinex.h aczephyr.h new_table.txt \
+ osbsdtbl.c osefitbl.c osefixf.c osfreebsdtbl.c oslinuxtbl.c \
+ osunixdir.c osunixmap.c oswindir.c oswintbl.c oswinxf.c \
+ oszephyr.c readme.txt utclib.c utprint.c"
# include files to canonify
src_headers="acapps.h acbuffer.h acclib.h accommon.h acconfig.h \
diff --git a/sys/contrib/dev/acpica/changes.txt b/sys/contrib/dev/acpica/changes.txt
index cf3c21898c51..4e3cf4f2f41c 100644
--- a/sys/contrib/dev/acpica/changes.txt
+++ b/sys/contrib/dev/acpica/changes.txt
@@ -1,4 +1,252 @@
----------------------------------------
+7 August 2025. Summary of changes for version 20250807:
+
+Major changes:
+
+Added option to skip the global lock for SMM - Huacai Chen
+
+Fixed non-NUL terminated string implementations - Ahmed Salem
+
+Fixed CCEL and CDAT templates - Ahmed Salem
+
+Fixed a major Linux kernel bug (UAF) that was triggered by unequal number of method parameters (definition) vs arguments (invocation) in different places - Peter Williams, Hans de Goede, Rafael Wysocki
+
+Define distinct D3 states (D3Hot and D3Cold) that help clarify the device behavior support - Aymeric Wibo
+
+A few cleanups, improvements to existing table supports, small fixes, spelling corrections etc.
+
+
+----------------------------------------
+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:
+
+Major changes:
+
+Fix 2 critical CVE addressing memory leaks - Seunghun Han
+
+EINJ V2 updates - Zaid Alali (Ampere Computing)
+
+CDAT updates - Ira Weiny (Intel Corporation)
+
+Fix mutex handling, do not release ones that were never acquired - Daniil Tatianin
+
+Experiment with new tag name format Ryyyy_mm_dd to solve chronological sorting problems
+
+
+----------------------------------------
+27 September 2024. Summary of changes for version 20240927:
+
+Major changes:
+
+Fix the acpixf.h file which caused issues for the last release (before this) 20240827
+
+Fix the pointer offset for the SLIC table
+
+Verify the local environment and GitHub commits are all in sync which was a problem with the second from last release (before this)20240322 (aka 20240323 - date issue)
+
+
+
+----------------------------------------
+27 August 2024. Summary of changes for version 20240827:
+
+Major changes:
+
+Fix the PHAT table working: ensure that the PHAT firmware health record offset works correctly, fix various sub-table offsets, prevent segmentation faults when encountering invalid device paths. Contributed by: Armin Wolf <W_Armin@gmx.de>
+
+Fix the optional table 4-byte signature. Contributed by: Daniil Tatianin <99danilt@gmail.com>
+
+Correct the dumping of SLIC and DBG2 tables. Contributed by: Al Stone (Fedora) <ahs3@ahs3.net>
+
+Add support for QWordPCC and DWordPCC by Jose Marinho (ARM)
+
+Fix the integer to hex string conversions by Armin Wolf
+
+Detecting FACS in reduced HW mode and allowing setting waking vector thereby waking up from S3 state
+
+Fixing issues with crossing page boundaries when mapping operation regions by Raju Rangoju, Sanath S and Mario Limonciello (AMD)
+
+Update the support for IORT, HMAT, MPAM, AEST, CEDT, SPCR etc. tables
+
+Fix multiple issues with table parsing, compilation and disassembly by Myra DeMere (Google)
+
+Allow for more flexibility in _DSM usage.
+
+
+----------------------------------------
+22 March 2024. Summary of changes for version 20240322:
+
+Major changes:
+
+Update all the license header year from 2023 to 2024.
+
+Fix table argument ordering to work properly with iasl.
+
+Get rid of the annoying repeated warning types in MSVC and Windows.
+
+Fix a test in ASLTS with edge case failure.
+
+Fix a couple of issues with how GPEs are counted and enabled.
+
+Add new tables for various architectures/OS, mainly RISC-V and also update many more.
+
+Add an option to either make the output deterministic or non-deterministic.
+
+Remove redundant checks, duplicated code and fix spellings in various files.
+
+Fix flex arrays for C++ compilers and also make ACPICA overall more compatible with different compilers which throw warnings related to memory sanitization etc.
+
+
+----------------------------------------
+28 June 2023. Summary of changes for version 20230628:
+
+0) Global changes:
+
+Fixed a problem with the ASL/AML Timer() operator. Discovered by UBSAN: ?array-index-out-of-bounds in acpica/dswexec.c:401:12 index -1 is out of range for type 'acpi_operand_object?. Added AML_NO_OPERAND_RESOLVE flag to Timer (since there are no runtime arguments). Reported by: Abhishek Mainkar abmainkar@nvidia.com.
+
+Added a define for size of acpi_srat_generic_affinity DeviceHandle. Replaced a magic number with a define. The Linux kernel code will utilize this. Reported by Dave Jiang dave.jiang@intel.com.
+
+Added support for _DSC (Deepest State for Configuration) as per ACPI 6.5.
+
+1) ACPICA kernel-resident subsystem:
+
+Added port definitions for CDAT SSLBIS. Add upstream port and any port definitions for SSLBIS. Reported by: Dave Jiang dave.jiang@intel.com.
+
+Fixed misspelled CDAT DSMAS define: ACPI_CEDT_DSMAS_NON_VOLATILE -> ACPI_CDAT_DSMAS_NON_VOLATILE. Reported by: Dave Jiang dave.jiang@intel.com.
+
+1) ACPICA kernel-resident subsystem:
+
+Fix GCC 12 dangling-pointer warning. We're storing a persistent pointer to an ephemeral local variable which technically is a dangling pointer and the compiler is correct. However, since we never indirect the pointer, this is a safe operation and we can suppress the warning.
+
+Also, some C run-times (like MUSL) aren't including <stdint.h> indirectly so we must include it explicitly or we won't have the type definition for uintptr_t.
+
+2) iASL Compiler/Disassembler and ACPICA tools:.
+
+IASL/RHCT: Enable dumping and compiling newly added nodes. The RHCT table is updated with new nodes. Add compile and dump functionality for these new structures.
+
+AcpiExec: Added a new command, ?interrupt?. The Interrupt command simulates an interrupt with a IntID (GSIV) equal to the first argument of the call/invocation. The acpiexec code simulates the behavior by OSPM: execute the _EVT method of the GED device associated with that IntID. Submitted by: Jose Marinho jose.marinho@arm.com.
+
+AcpiExec: Detect GED device and keep track of _EVT. The GED device is described by a _HID of ACPI0013. This code traverses the namespace identifying all GED devices. For each GED device in the namespace we record the Interrupt object and the _EVT method. This information is used when an interrupt is simulated via the ?interrupt? command. Submitted by: Jose Marinho jose.marinho@arm.com.
+----------------------------------------
+31 March 2023. Summary of changes for version 20230331:
+
+This release is available at https://acpica.org/downloads
+
+0) Global changes:
+
+
+Update all copyright notices to the year 2023. This effects all source
+modules, as well as utility signons.
+Add OS-specific support for Zephyr RTOS.
+Fix miscellaneous code that accesses various objects.
+Remove some dead code.
+Add C ?Flexible Array? support.
+Add support for 64 bit LoongArch compilation.
+Add first batch of RISC-V related definitions.
+Performed a global automated update to remove tabs, fix indentation
+issues, etc.
+
+1) ACPICA kernel-resident subsystem:
+
+hwvalid: Drop port I/O validation.
+
+2) ACPICA tools and utilities:
+
+iASL: Added full macro support in the preprocessor. Example:
+#define ABCD(a,b,c,d) a+b+c-d
+
+Known macro support limitations (at this time):
+ No support for multi-line #define macros (backslash continuation
+lines)
+ No support for the C-style ternary operator
+ No support for the stringizing operator (#)
+ No support for the concatenation (token pasting) operator (##)
+ No support for variable number of macro arguments
+
+Add support for AMD Secure Processor Table (ASPT) version 1.
+Add support for Arm's MPAM ACPI table version 2.
+ACPI 6.5: MADT: add support for trace buffer extension in GICC.
+Headers: Delete bogus NodeArray array of pointers from AEST table.
+PHAT table support is still ongoing.
+
+
+----------------------------------------
+20 October 2022. Summary of changes for version 20221020:
+
+This release is available at https://acpica.org/downloads
+
+0) Global changes:
+
+Allow disabling of -Werror. For distro maintainers having `-Werror` can
+delay update of GCC. Since every GCC release might add new warnings that
+were not yet captured, it might break the build of packages. With this
+change, distros can now build with `NOWERROR=TRUE` instead of patching
+either the errors or the makefiles. The default behavior keeps on using
+`-Werror`.
+
+1) ACPICA kernel-resident subsystem:
+
+Added support for FFH Operation Region special context data. FFH(Fixed
+Function Hardware) Opregion is approved to be added in ACPI 6.5 via code
+first approach[1]. It requires special context data similar to GPIO and
+Generic Serial Bus as it needs to know platform specific offset and
+length.
+
+Reverted this commit "executer/exsystem: Warn about sleeps greater than
+10 ms." Due to user complaints about valid sleeps greater than 10ms seen
+in some existing machines -- generating lots of warnings.
+
+Do not touch VGA memory when EBDA < 1KiB. The ACPICA code assumes that
+EBDA region must be at least 1KiB in size. Because this is not
+guaranteed, it might happen that while scanning the memory for RSDP
+pointer, the kernel touches memory above 640KiB. This is unwanted as the
+VGA memory range may not be decoded or even present when running under
+virtualization.
+
+Check that EBDA pointer is in valid memory. If the memory at 0x40e is
+uninitialized, the retrieved physical memory address of EBDA may be
+beyond the low memory (i.e. above 640K). If so, the kernel may
+unintentionally access the VGA memory, that might not be decoded or even
+present in case of virtualization.
+
+2) iASL Compiler/Disassembler and ACPICA tools:
+
+Completed the existing partial support for the CDAT "table". Although
+this isn't technically an ACPI table (It doesn't go into the XSDT), it is
+possible to support this table in the Data Table compiler. Created one
+new file, "utilities/utcksum.c", used to centralize checksum
+generation/validation into one location. Includes changes to makefiles
+and MSVC project files.
+
+Updated support for the IORT table - update to version E.e
+
+Added CXL 3.0 structures (CXIMS & RDPAS) to the CEDT table
+
+iASL: Added CCEL table to both compiler/disassembler.
+
+iASL: NHLT table: Fixed compilation of optional undocumented fields
+
+iASL: Fix iASL compile error due to ACPI_TDEL_OFFSET. Commit # 10e4763
+("iASL: Add CCEL table to both compiler/disassembler") introduced the
+iASL build issue. The issue is due to using ACPI_TDEL_OFFSET for CCEL
+table member reference. To fix it, change ACPI_TDEL_OFFSET with
+ACPI_CCEL_OFFSET.
+
+----------------------------------------
31 March 2022. Summary of changes for version 20220331:
0) Global changes:
@@ -6940,7 +7188,6 @@ features become unavailable:
General Purpose Events (GPEs)
Global Lock
ACPI PM timer
- FACS table (Waking vectors and Global Lock)
Updated the unix tarball directory structure to match the ACPICA git
source
diff --git a/sys/contrib/dev/acpica/common/acfileio.c b/sys/contrib/dev/acpica/common/acfileio.c
index ca1e9199f3e3..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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -387,16 +387,36 @@ AcGetOneTableFromFile (
ACPI_TABLE_HEADER TableHeader;
ACPI_TABLE_HEADER *Table;
INT32 Count;
- long TableOffset;
-
+ UINT32 TableLength;
+ UINT32 HeaderLength;
+ long TableOffset = 0;
*ReturnTable = NULL;
/* Get the table header to examine signature and length */
+ /*
+ * Special handling for the CDAT table (both the Length field
+ * and the Checksum field are not in the standard positions).
+ * (The table header is non-standard).
+ */
+ if (AcpiGbl_CDAT)
+ {
+ HeaderLength = sizeof (ACPI_TABLE_CDAT);
+ }
+ else
+ {
+ HeaderLength = sizeof (ACPI_TABLE_HEADER);
+ }
+
+ Status = AcValidateTableHeader (File, TableOffset);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
TableOffset = ftell (File);
- Count = fread (&TableHeader, 1, sizeof (ACPI_TABLE_HEADER), File);
- if (Count != sizeof (ACPI_TABLE_HEADER))
+ Count = fread (&TableHeader, 1, HeaderLength, File);
+ if (Count != (INT32) HeaderLength)
{
return (AE_CTRL_TERMINATE);
}
@@ -405,12 +425,6 @@ AcGetOneTableFromFile (
{
/* Validate the table signature/header (limited ASCII chars) */
- Status = AcValidateTableHeader (File, TableOffset);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
/*
* Table must be an AML table (DSDT/SSDT).
* Used for iASL -e option only.
@@ -425,9 +439,22 @@ AcGetOneTableFromFile (
}
}
+ /*
+ * Special handling for the CDAT table (both the Length field
+ * and the Checksum field are not in the standard positions).
+ */
+ if (AcpiGbl_CDAT)
+ {
+ TableLength = ACPI_CAST_PTR (ACPI_TABLE_CDAT, &TableHeader)->Length;
+ }
+ else
+ {
+ TableLength = TableHeader.Length;
+ }
+
/* Allocate a buffer for the entire table */
- Table = AcpiOsAllocate ((ACPI_SIZE) TableHeader.Length);
+ Table = AcpiOsAllocate ((ACPI_SIZE) TableLength);
if (!Table)
{
return (AE_NO_MEMORY);
@@ -436,22 +463,31 @@ AcGetOneTableFromFile (
/* Read the entire ACPI table, including header */
fseek (File, TableOffset, SEEK_SET);
-
- Count = fread (Table, 1, TableHeader.Length, File);
+ Count = fread (Table, 1, TableLength, File);
/*
* Checks for data table headers happen later in the execution. Only verify
* for Aml tables at this point in the code.
*/
- if (GetOnlyAmlTables && Count != (INT32) TableHeader.Length)
+ if (GetOnlyAmlTables && Count != (INT32) TableLength)
{
Status = AE_ERROR;
goto ErrorExit;
}
- /* Validate the checksum (just issue a warning) */
+ /*
+ * Validate the checksum (just issue a warning if incorrect).
+ * Note: CDAT is special cased here because the table does
+ * not have the checksum field in the standard position.
+ */
+ if (AcpiGbl_CDAT)
+ {
+ Status = AcpiUtVerifyCdatChecksum ((ACPI_TABLE_CDAT *) Table, TableLength);
+ } else
+ {
+ Status = AcpiUtVerifyChecksum (Table, TableLength);
+ }
- Status = AcpiTbVerifyChecksum (Table, TableHeader.Length);
if (ACPI_FAILURE (Status))
{
Status = AcCheckTextModeCorruption (Table);
@@ -540,6 +576,8 @@ AcValidateTableHeader (
long TableOffset)
{
ACPI_TABLE_HEADER TableHeader;
+ ACPI_TABLE_CDAT *CdatTableHeader = ACPI_CAST_PTR (ACPI_TABLE_CDAT, &TableHeader);
+ UINT32 HeaderLength;
ACPI_SIZE Actual;
long OriginalOffset;
UINT32 FileSize;
@@ -548,6 +586,16 @@ AcValidateTableHeader (
ACPI_FUNCTION_TRACE (AcValidateTableHeader);
+ /* Determine the type of table header */
+
+ if (AcpiGbl_CDAT)
+ {
+ HeaderLength = sizeof (ACPI_TABLE_CDAT);
+ }
+ else
+ {
+ HeaderLength = sizeof (ACPI_TABLE_HEADER);
+ }
/* Read a potential table header */
@@ -556,41 +604,76 @@ AcValidateTableHeader (
{
fprintf (stderr, "SEEK error\n");
}
- Actual = fread (&TableHeader, 1, sizeof (ACPI_TABLE_HEADER), File);
+ Actual = fread (&TableHeader, 1, HeaderLength, File);
if (fseek (File, OriginalOffset, SEEK_SET))
{
fprintf (stderr, "SEEK error\n");
}
- if (Actual < sizeof (ACPI_TABLE_HEADER))
+ if (Actual < HeaderLength)
{
fprintf (stderr,
"Could not read entire table header: Actual %u, Requested %u\n",
- (UINT32) Actual, (UINT32) sizeof (ACPI_TABLE_HEADER));
+ (UINT32) Actual, HeaderLength);
return (AE_ERROR);
}
/* Validate the signature (limited ASCII chars) */
- if (!AcpiUtValidNameseg (TableHeader.Signature))
+ if (!AcpiGbl_CDAT && !AcpiUtValidNameseg (TableHeader.Signature))
{
+ /*
+ * The "-ds cdat" option was not used, and the signature is not valid.
+ *
+ * For CDAT we are assuming that there should be at least one non-ASCII
+ * byte in the (normally) 4-character Signature field (at least the
+ * high-order byte should be zero). Otherwise, this is OK.
+ */
+ fprintf (stderr,
+ "\nTable appears to be a CDAT table, which has no signature.\n"
+ "If this is in fact a CDAT table, use the -ds option on the\n"
+ "command line to specify the table type (signature):\n"
+ "\"iasl -d -ds CDAT <file>\" or \"iasl -ds CDAT -T CDAT\"\n\n");
+
return (AE_BAD_SIGNATURE);
}
/* Validate table length against bytes remaining in the file */
FileSize = CmGetFileSize (File);
- if (TableHeader.Length > (UINT32) (FileSize - TableOffset))
+ if (!AcpiGbl_CDAT)
+ {
+ /* Standard ACPI table header */
+
+ if (TableHeader.Length > (UINT32) (FileSize - TableOffset))
+ {
+ fprintf (stderr, "Table [%4.4s] is too long for file - "
+ "needs: 0x%.2X, remaining in file: 0x%.2X\n",
+ TableHeader.Signature, TableHeader.Length,
+ (UINT32) (FileSize - TableOffset));
+ return (AE_BAD_HEADER);
+ }
+ }
+ else if (CdatTableHeader->Length > (UINT32) (FileSize - TableOffset))
{
- fprintf (stderr, "Table [%4.4s] is too long for file - "
+ /* Special header for CDAT table */
+
+ fprintf (stderr, "Table [CDAT] is too long for file - "
"needs: 0x%.2X, remaining in file: 0x%.2X\n",
- TableHeader.Signature, TableHeader.Length,
+ CdatTableHeader->Length,
(UINT32) (FileSize - TableOffset));
return (AE_BAD_HEADER);
}
+ /* For CDAT table, there are no ASCII fields in the header, we are done */
+
+ if (AcpiGbl_CDAT)
+ {
+ return (AE_OK);
+ }
+
/*
- * These fields must be ASCII: OemId, OemTableId, AslCompilerId.
+ * These standard fields must be ASCII: OemId, OemTableId, AslCompilerId.
* We allow a NULL terminator in OemId and OemTableId.
*/
for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
diff --git a/sys/contrib/dev/acpica/common/acgetline.c b/sys/contrib/dev/acpica/common/acgetline.c
index 7ad10510168e..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 - 2022, 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 a4639e30e4ac..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 - 2022, 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 c45b609d4f3f..83125098cbd1 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 - 2022, 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
@@ -476,17 +476,17 @@ AdDisassembleOneTable (
/* This is a "Data Table" (non-AML table) */
AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n",
- Table->Signature);
+ AcpiGbl_CDAT ? (char *) AcpiGbl_CDAT : Table->Signature);
AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength] "
"FieldName : FieldValue (in hex)\n */\n\n");
AcpiDmDumpDataTable (Table);
- fprintf (stderr, "Acpi Data Table [%4.4s] decoded\n",
- Table->Signature);
+ fprintf (stdout, "Acpi Data Table [%4.4s] decoded\n",
+ AcpiGbl_CDAT ? (char *) AcpiGbl_CDAT : Table->Signature);
if (File)
{
- fprintf (stderr, "Formatted output: %s - %u bytes\n",
+ fprintf (stdout, "Formatted output: %s - %u bytes\n",
DisasmFilename, CmGetFileSize (File));
}
@@ -584,16 +584,16 @@ AdDisassembleOneTable (
AcpiDmDumpDataTable (Table);
- fprintf (stderr, "Disassembly completed\n");
+ fprintf (stdout, "Disassembly completed\n");
if (File)
{
- fprintf (stderr, "ASL Output: %s - %u bytes\n",
+ fprintf (stdout, "ASL Output: %s - %u bytes\n",
DisasmFilename, CmGetFileSize (File));
}
if (AslGbl_MapfileFlag)
{
- fprintf (stderr, "%14s %s - %u bytes\n",
+ fprintf (stdout, "%14s %s - %u bytes\n",
AslGbl_FileDescs[ASL_FILE_MAP_OUTPUT].ShortDescription,
AslGbl_Files[ASL_FILE_MAP_OUTPUT].Filename,
FlGetFileSize (ASL_FILE_MAP_OUTPUT));
@@ -630,7 +630,7 @@ AdReparseOneTable (
ACPI_COMMENT_ADDR_NODE *AddrListHead;
- fprintf (stderr,
+ fprintf (stdout,
"\nFound %u external control methods, "
"reparsing with new information\n",
AcpiDmGetUnresolvedExternalMethodCount ());
@@ -789,6 +789,7 @@ AdDoExternalFileList (
AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot,
AcpiGbl_RootNode, OwnerId);
AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
+ AcpiGbl_ParseOpRoot = NULL;
ExternalListHead = ExternalListHead->Next;
}
diff --git a/sys/contrib/dev/acpica/common/adwalk.c b/sys/contrib/dev/acpica/common/adwalk.c
index 44b3485a21ba..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 - 2022, 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 7c1aabdf8b89..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 - 2022, 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 afad65543194..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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -234,6 +234,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_DMA", "Direct Memory Access", "Returns device current resources for DMA transactions, and resource field"),
AH_PREDEF ("_DOD", "Display Output Devices", "Enumerate all devices attached to the display adapter"),
AH_PREDEF ("_DOS", "Disable Output Switching", "Sets the display output switching mode"),
+ AH_PREDEF ("_DSC", "Deepest State for Configuration", "Returns the deepest D-state of the device to the OSPM"),
AH_PREDEF ("_DPL", "Device Selection Polarity", "Polarity of Device Selection signal, Resource Descriptor field"),
AH_PREDEF ("_DRS", "Drive Strength", "Drive Strength setting for GPIO connection, Resource Descriptor field"),
AH_PREDEF ("_DSD", "Device-Specific Data", "Returns a list of device property information"),
diff --git a/sys/contrib/dev/acpica/common/ahtable.c b/sys/contrib/dev/acpica/common/ahtable.c
index 227fee2b5132..587bf61016f0 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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -202,10 +202,13 @@ const AH_TABLE AcpiGbl_SupportedTables[] =
{ACPI_SIG_AEST, "Arm Error Source Table"},
{ACPI_SIG_AGDI, "Arm Generic Diagnostic Dump and Reset Device Interface Table"},
{ACPI_SIG_ASF, "Alert Standard Format Table"},
+ {ACPI_SIG_ASPT, "AMD Secure Processor Table"},
{ACPI_SIG_BDAT, "BIOS Data ACPI Table"},
{ACPI_SIG_BERT, "Boot Error Record Table"},
{ACPI_SIG_BGRT, "Boot Graphics Resource Table"},
{ACPI_SIG_BOOT, "Simple Boot Flag Table"},
+ {ACPI_SIG_CCEL, "CC-Event Log Table"},
+ {ACPI_SIG_CDAT, "Coherent Device Attribute Table"},
{ACPI_SIG_CEDT, "CXL Early Discovery Table"},
{ACPI_SIG_CPEP, "Corrected Platform Error Polling Table"},
{ACPI_SIG_CSRT, "Core System Resource Table"},
@@ -216,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)"},
@@ -230,7 +234,9 @@ const AH_TABLE AcpiGbl_SupportedTables[] =
{ACPI_SIG_MADT, "Multiple APIC Description Table (MADT)"},
{ACPI_SIG_MCFG, "Memory Mapped Configuration Table"},
{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"},
@@ -242,6 +248,8 @@ const AH_TABLE AcpiGbl_SupportedTables[] =
{ACPI_SIG_PPTT, "Processor Properties Topology Table"},
{ACPI_SIG_PRMT, "Platform Runtime Mechanism Table"},
{ACPI_SIG_RASF, "RAS Features Table"},
+ {ACPI_SIG_RAS2, "RAS2 Features Table"},
+ {ACPI_SIG_RHCT, "RISC-V Hart Capabilities Table"},
{ACPI_SIG_RGRT, "Regulatory Graphics Resource Table"},
{ACPI_RSDP_NAME,"Root System Description Pointer"},
{ACPI_SIG_RSDT, "Root System Description Table"},
@@ -257,6 +265,7 @@ const AH_TABLE AcpiGbl_SupportedTables[] =
{ACPI_SIG_SSDT, "Secondary System Description Table (AML table)"},
{ACPI_SIG_STAO, "Status Override Table"},
{ACPI_SIG_SVKL, "Storage Volume Key Location Table"},
+ {ACPI_SIG_SWFT, "SoundWire File Table"},
{ACPI_SIG_TCPA, "Trusted Computing Platform Alliance Table"},
{ACPI_SIG_TDEL, "TD-Event Log Table"},
{ACPI_SIG_TPM2, "Trusted Platform Module hardware interface Table"},
diff --git a/sys/contrib/dev/acpica/common/ahuuids.c b/sys/contrib/dev/acpica/common/ahuuids.c
index 7378a8555bb0..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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -209,6 +209,9 @@ const AH_UUID Gbl_AcpiUuids[] =
{"Hierarchical Data Extension", UUID_HIERARCHICAL_DATA_EXTENSION},
{"ARM Coresight Graph", UUID_CORESIGHT_GRAPH},
{"USB4 Capabilities", UUID_USB4_CAPABILITIES},
+ {"First Function ID for _DSM", UUID_1ST_FUNCTION_ID},
+ {"Second Function ID for _DSM", UUID_2ND_FUNCTION_ID},
+
{NULL, NULL}
};
diff --git a/sys/contrib/dev/acpica/common/cmfsize.c b/sys/contrib/dev/acpica/common/cmfsize.c
index 2a0b907bae2f..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 - 2022, 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 b9293282a24e..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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -1493,7 +1493,6 @@ AcpiDmMarkExternalConflict (
ACPI_EXTERNAL_LIST *ExternalList = AcpiGbl_ExternalList;
char *ExternalPath;
char *InternalPath;
- char *Temp;
ACPI_STATUS Status;
@@ -1526,13 +1525,6 @@ AcpiDmMarkExternalConflict (
while (ExternalList)
{
- Temp = ExternalList->InternalPath;
- if ((*ExternalList->InternalPath == AML_ROOT_PREFIX) &&
- (ExternalList->InternalPath[1]))
- {
- Temp++;
- }
-
if (!strcmp (ExternalList->InternalPath, InternalPath))
{
ExternalList->Flags |= ACPI_EXT_CONFLICTING_DECLARATION;
diff --git a/sys/contrib/dev/acpica/common/dmrestag.c b/sys/contrib/dev/acpica/common/dmrestag.c
index e26f3d092a3c..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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -480,6 +480,14 @@ static const ACPI_RESOURCE_TAG AcpiDmIoFlagTags[] =
{0, NULL}
};
+/* Subtype tables for ClockInput descriptor */
+
+static const ACPI_RESOURCE_TAG AcpiDmClockInputTags[] =
+{
+ {( 6 * 8), ACPI_RESTAG_FQD},
+ {( 8 * 8), ACPI_RESTAG_FQN},
+ {0, NULL}
+};
/*
* Dispatch table used to obtain the correct tag table for a descriptor.
@@ -531,6 +539,7 @@ static const ACPI_RESOURCE_TAG *AcpiGbl_ResourceTags[] =
NULL, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */
AcpiDmPinGroupFunctionTags, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */
AcpiDmPinConfigTags, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG - Same as PinConfig */
+ AcpiDmClockInputTags, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */
};
/* GPIO Subtypes */
@@ -885,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 9cad863b6c03..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 - 2022, 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 78c75ab803f8..702f4f7965e4 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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -190,6 +190,8 @@ static const char *AcpiDmAestSubnames[] =
"SMMU Error Node",
"Vendor-defined Error Node",
"GIC Error Node",
+ "PCIE Error Node",
+ "PROXY Error Node",
"Unknown Subtable Type" /* Reserved */
};
@@ -214,6 +216,7 @@ static const char *AcpiDmAestXfaceNames[] =
{
"System Register Interface",
"Memory Mapped Interface",
+ "Single Record Memory Mapped Interface",
"Unknown Interface Type" /* Reserved */
};
@@ -234,10 +237,30 @@ static const char *AcpiDmAsfSubnames[] =
"Unknown Subtable Type" /* Reserved */
};
+static const char *AcpiDmAsptSubnames[] =
+{
+ "ASPT Global Registers",
+ "ASPT SEV Mailbox Registers",
+ "ASPT ACPI Mailbox Registers",
+ "Unknown Subtable Type" /* Reserved */
+};
+
+static const char *AcpiDmCdatSubnames[] =
+{
+ "Device Scoped Memory Affinity Structure (DSMAS)",
+ "Device scoped Latency and Bandwidth Information Structure (DSLBIS)",
+ "Device Scoped Memory Side Cache Information Structure (DSMSCIS)",
+ "Device Scoped Initiator Structure (DSIS)",
+ "Device Scoped EFI Memory Type Structure (DSEMTS)",
+ "Switch Scoped Latency and Bandwidth Information Structure (SSLBIS)",
+ "Unknown Subtable Type" /* Reserved */
+};
+
static const char *AcpiDmCedtSubnames[] =
{
"CXL Host Bridge Structure",
"CXL Fixed Memory Window Structure",
+ "CXL XOR Interleave Math Structure",
"Unknown Subtable Type" /* Reserved */
};
@@ -249,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 */
};
@@ -289,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",
@@ -403,10 +443,32 @@ static const char *AcpiDmMadtSubnames[] =
"Generic Interrupt Redistributor", /* ACPI_MADT_GENERIC_REDISTRIBUTOR */
"Generic Interrupt Translator", /* ACPI_MADT_GENERIC_TRANSLATOR */
"Mutiprocessor Wakeup", /* ACPI_MADT_TYPE_MULTIPROC_WAKEUP */
+ "CPU Core Interrupt Controller", /* ACPI_MADT_TYPE_CORE_PIC */
+ "Legacy I/O Interrupt Controller", /* ACPI_MADT_TYPE_LIO_PIC */
+ "HT Interrupt Controller", /* ACPI_MADT_TYPE_HT_PIC */
+ "Extend I/O Interrupt Controller", /* ACPI_MADT_TYPE_EIO_PIC */
+ "MSI Interrupt Controller", /* ACPI_MADT_TYPE_MSI_PIC */
+ "Bridge I/O Interrupt Controller", /* ACPI_MADT_TYPE_BIO_PIC */
+ "LPC Interrupt Controller", /* ACPI_MADT_TYPE_LPC_PIC */
+ "RISC-V Interrupt Controller", /* ACPI_MADT_TYPE_RINTC */
+ "RISC-V Incoming MSI Controller", /* ACPI_MADT_TYPE_IMSIC */
+ "RISC-V APLIC Controller", /* ACPI_MADT_TYPE_APLIC */
+ "RISC-V PLIC Controller", /* ACPI_MADT_TYPE_PLIC */
"Unknown Subtable Type", /* Reserved */
"Types 80-FF are used for OEM data" /* Reserved for OEM data */
};
+static const char *AcpiDmMpamSubnames[] =
+{
+ "Processor cache", /* ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE */
+ "Memory", /* ACPI_MPAM_LOCATION_TYPE_MEMORY */
+ "SMMU", /* ACPI_MPAM_LOCATION_TYPE_SMMU */
+ "Memory-side cache", /* ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE */
+ "ACPI device", /* ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE */
+ "Interconnect", /* ACPI_MPAM_LOCATION_TYPE_INTERCONNECT */
+ "Unknown" /* ACPI_MPAM_LOCATION_TYPE_UNKNOWN */
+};
+
static const char *AcpiDmNfitSubnames[] =
{
"System Physical Address Range", /* ACPI_NFIT_TYPE_SYSTEM_ADDRESS */
@@ -420,70 +482,6 @@ static const char *AcpiDmNfitSubnames[] =
"Unknown Subtable Type" /* Reserved */
};
-static const char *AcpiDmNhltLinkTypeNames[] =
-{
- "Reserved for HD-Audio", /* ACPI_NHLT_RESERVED_HD_AUDIO */
- "Reserved for DSP", /* ACPI_NHLT_RESERVED_DSP */
- "Type PDM", /* ACPI_NHLT_PDM */
- "Type SSP", /* ACPI_NHLT_SSP */
- "Reserved for SlimBus", /* ACPI_NHLT_RESERVED_SLIMBUS */
- "Reserved for SoundWire", /* ACPI_NHLT_RESERVED_SOUNDWIRE */
- "Unknown Link Type" /* Reserved */
-};
-
-static const char *AcpiDmNhltDirectionNames[] =
-{
- "Render", /* ACPI_NHLT_DIR_RENDER */
- "Capture", /* ACPI_NHLT_DIR_CAPTURE */
- "Render with Loopback", /* ACPI_NHLT_DIR_RENDER_LOOPBACK */
- "Feedback for Render", /* ACPI_NHLT_DIR_RENDER_FEEDBACK */
- "Unknown Direction" /* Reserved */
-};
-
-static const char *AcpiDmNhltMicTypeNames[] =
-{
- "Omnidirectional", /* ACPI_NHLT_MIC_OMNIDIRECTIONAL */
- "Subcardioid", /* ACPI_NHLT_MIC_SUBCARDIOID */
- "Cardioid", /* ACPI_NHLT_MIC_CARDIOID */
- "SuperCardioid", /* ACPI_NHLT_MIC_SUPER_CARDIOID */
- "HyperCardioid", /* ACPI_NHLT_MIC_HYPER_CARDIOID */
- "8 Shaped", /* ACPI_NHLT_MIC_8_SHAPED */
- "Reserved Mic Type", /* Reserved */
- "Vendor Defined", /* ACPI_NHLT_MIC_VENDOR_DEFINED */
- "Unknown Mic Type" /* ACPI_NHLT_MIC_RESERVED */
-};
-
-static const char *AcpiDmNhltMicPositionNames[] =
-{
- "Top", /* ACPI_NHLT_MIC_POSITION_TOP */
- "Bottom", /* ACPI_NHLT_MIC_POSITION_BOTTOM */
- "Left", /* ACPI_NHLT_MIC_POSITION_LEFT */
- "Right", /* ACPI_NHLT_MIC_POSITION_RIGHT */
- "Front", /* ACPI_NHLT_MIC_POSITION_FRONT */
- "Back", /* ACPI_NHLT_MIC_POSITION_BACK */
- "Unknown Mic Position" /* 6 and above are reserved */
-};
-
-static const char *AcpiDmNhltMicArrayTypeNames[] =
-{
- "Unknown Array Type", /* ACPI_NHLT_ARRAY_TYPE_RESERVED */
- "Small Linear 2-element", /* ACPI_NHLT_SMALL_LINEAR_2ELEMENT */
- "Big Linear 2-element", /* ACPI_NHLT_BIG_LINEAR_2ELEMENT */
- "Linear 4-element 1st Geometry", /* ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT */
- "Planar L-shaped 4-element", /* ACPI_NHLT_PLANAR_LSHAPED_4ELEMENT */
- "Linear 4-element 2nd Geometry", /* ACPI_NHLT_SECOND_GEOMETRY_LINEAR_4ELEMENT */
- "Vendor Defined" /* ACPI_NHLT_VENDOR_DEFINED */
-};
-
-static const char *AcpiDmNhltConfigTypeNames[] =
-{
- "Generic Type", /* ACPI_NHLT_CONFIG_TYPE_GENERIC */
- "Microphone Array", /* ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY */
- "Reserved", /* ACPI_NHLT_CONFIG_TYPE_RESERVED */
- "Render Feedback", /* ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK */
- "Unknown Config Type" /* ACPI_NHLT_CONFIG_TYPE_RESERVED */
-};
-
static const char *AcpiDmPcctSubnames[] =
{
"Generic Communications Subspace", /* ACPI_PCCT_TYPE_GENERIC_SUBSPACE */
@@ -541,6 +539,7 @@ static const char *AcpiDmSratSubnames[] =
"GIC ITS Affinity", /* Acpi 6.2 */
"Generic Initiator Affinity", /* Acpi 6.3 */
"Generic Port Affinity", /* Acpi 6.4 */
+ "RINTC Affinity", /* Acpi 6.6 */
"Unknown Subtable Type" /* Reserved */
};
@@ -631,6 +630,14 @@ static const char *AcpiDmGasAccessWidth[] =
"Unknown Width Encoding"
};
+static const char *AcpiDmRhctSubnames[] =
+{
+ "RISC-V ISA string structure", /* ACPI_RHCT_ISA_STRING */
+ "RISC-V CMO node structure", /* ACPI_RHCT_CMO_NODE */
+ "RISC-V MMU node structure", /* ACPI_RHCT_MMU_NODE */
+ "RISC-V Hart Info structure", /* ACPI_RHCT_HART_INFO */
+};
+
/*******************************************************************************
*
@@ -654,10 +661,13 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
{ACPI_SIG_AGDI, AcpiDmTableInfoAgdi, NULL, NULL, TemplateAgdi},
{ACPI_SIG_APMT, NULL, AcpiDmDumpApmt, DtCompileApmt, TemplateApmt},
{ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, TemplateAsf},
+ {ACPI_SIG_ASPT, NULL, AcpiDmDumpAspt, DtCompileAspt, TemplateAspt},
{ACPI_SIG_BDAT, AcpiDmTableInfoBdat, NULL, NULL, TemplateBdat},
{ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert},
{ACPI_SIG_BGRT, AcpiDmTableInfoBgrt, NULL, NULL, TemplateBgrt},
{ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot},
+ {ACPI_SIG_CCEL, AcpiDmTableInfoCcel, NULL, NULL, TemplateCcel},
+ {ACPI_SIG_CDAT, NULL, AcpiDmDumpCdat, NULL, TemplateCdat},
{ACPI_SIG_CEDT, NULL, AcpiDmDumpCedt, DtCompileCedt, TemplateCedt},
{ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep},
{ACPI_SIG_CSRT, NULL, AcpiDmDumpCsrt, DtCompileCsrt, TemplateCsrt},
@@ -667,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},
@@ -680,11 +691,13 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
{ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, DtCompileMadt, TemplateMadt},
{ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, DtCompileMcfg, TemplateMcfg},
{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},
- {ACPI_SIG_NHLT, AcpiDmTableInfoNhlt, AcpiDmDumpNhlt, DtCompileNhlt, TemplateNhlt},
+ {ACPI_SIG_NHLT, NULL, NULL, NULL, NULL},
{ACPI_SIG_PCCT, AcpiDmTableInfoPcct, AcpiDmDumpPcct, DtCompilePcct, TemplatePcct},
{ACPI_SIG_PDTT, AcpiDmTableInfoPdtt, AcpiDmDumpPdtt, DtCompilePdtt, TemplatePdtt},
{ACPI_SIG_PHAT, NULL, AcpiDmDumpPhat, DtCompilePhat, TemplatePhat},
@@ -692,7 +705,10 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
{ACPI_SIG_PPTT, NULL, AcpiDmDumpPptt, DtCompilePptt, TemplatePptt},
{ACPI_SIG_PRMT, NULL, AcpiDmDumpPrmt, DtCompilePrmt, TemplatePrmt},
{ACPI_SIG_RASF, AcpiDmTableInfoRasf, NULL, NULL, TemplateRasf},
+ {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},
@@ -705,6 +721,7 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
{ACPI_SIG_SRAT, NULL, AcpiDmDumpSrat, DtCompileSrat, TemplateSrat},
{ACPI_SIG_STAO, NULL, AcpiDmDumpStao, DtCompileStao, TemplateStao},
{ACPI_SIG_SVKL, AcpiDmTableInfoSvkl, AcpiDmDumpSvkl, DtCompileSvkl, TemplateSvkl},
+ {ACPI_SIG_SWFT, NULL, NULL, NULL, NULL},
{ACPI_SIG_TCPA, NULL, AcpiDmDumpTcpa, DtCompileTcpa, TemplateTcpa},
{ACPI_SIG_TDEL, AcpiDmTableInfoTdel, NULL, NULL, TemplateTdel},
{ACPI_SIG_TPM2, AcpiDmTableInfoTpm2, AcpiDmDumpTpm2, DtCompileTpm2, TemplateTpm2},
@@ -724,44 +741,6 @@ const ACPI_DMTABLE_DATA AcpiDmTableData[] =
/*******************************************************************************
*
- * FUNCTION: AcpiDmGenerateChecksum
- *
- * PARAMETERS: Table - Pointer to table to be checksummed
- * Length - Length of the table
- * OriginalChecksum - Value of the checksum field
- *
- * RETURN: 8 bit checksum of buffer
- *
- * DESCRIPTION: Computes an 8 bit checksum of the table.
- *
- ******************************************************************************/
-
-UINT8
-AcpiDmGenerateChecksum (
- void *Table,
- UINT32 Length,
- UINT8 OriginalChecksum)
-{
- UINT8 Checksum;
-
-
- /* Sum the entire table as-is */
-
- Checksum = AcpiTbChecksum ((UINT8 *) Table, Length);
-
- /* Subtract off the existing checksum value in the table */
-
- Checksum = (UINT8) (Checksum - OriginalChecksum);
-
- /* Compute the final checksum */
-
- Checksum = (UINT8) (0 - Checksum);
- return (Checksum);
-}
-
-
-/*******************************************************************************
- *
* FUNCTION: AcpiDmGetTableData
*
* PARAMETERS: Signature - ACPI signature (4 chars) to match
@@ -834,7 +813,7 @@ AcpiDmDumpDataTable (
/*
* Handle tables that don't use the common ACPI table header structure.
- * Currently, these are the FACS, RSDP, and S3PT.
+ * Currently, these are the FACS, RSDP, S3PT and CDAT.
*/
if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS))
{
@@ -854,6 +833,28 @@ AcpiDmDumpDataTable (
{
Length = AcpiDmDumpS3pt (Table);
}
+ else if (!AcpiUtValidNameseg (Table->Signature))
+ {
+ /*
+ * For CDAT we are assuming that there should be at least one non-ASCII
+ * byte in the (normally) 4-character Signature field (at least the
+ * high-order byte should be zero).
+ */
+ if (AcpiGbl_CDAT)
+ {
+ /*
+ * Invalid signature and <-ds CDAT> was specified on the command line.
+ * Therefore, we have a CDAT table.
+ */
+ AcpiDmDumpCdat (Table);
+ }
+ else
+ {
+ fprintf (stderr, "Table has an invalid signature\n");
+ }
+
+ return;
+ }
else
{
/*
@@ -977,7 +978,7 @@ AcpiDmLineHeader (
{
if (ByteLength)
{
- AcpiOsPrintf ("[%3.3Xh %4.4d% 4d] %28s : ",
+ AcpiOsPrintf ("[%3.3Xh %4.4u %3.3Xh] %27s : ",
Offset, Offset, ByteLength, Name);
}
else
@@ -1019,12 +1020,12 @@ AcpiDmLineHeader2 (
{
if (ByteLength)
{
- AcpiOsPrintf ("[%3.3Xh %4.4d %3d] %24s %3d : ",
+ AcpiOsPrintf ("[%3.3Xh %4.4u %3.3Xh] %24s %3d : ",
Offset, Offset, ByteLength, Name, Value);
}
else
{
- AcpiOsPrintf ("[%3.3Xh %4.4d ] %24s %3d : ",
+ AcpiOsPrintf ("[%3.3Xh %4.4u ] %24s %3d : ",
Offset, Offset, Name, Value);
}
}
@@ -1106,7 +1107,8 @@ AcpiDmDumpTable (
{
AcpiOsPrintf (
"/**** ACPI table terminates "
- "in the middle of a data structure! (dump table) */\n");
+ "in the middle of a data structure! (dump table)\n"
+ "CurrentOffset: %X, TableLength: %X ***/", CurrentOffset, TableLength);
return (AE_BAD_DATA);
}
@@ -1123,12 +1125,7 @@ AcpiDmDumpTable (
case ACPI_DMT_IVRS_DE:
case ACPI_DMT_GTDT:
case ACPI_DMT_MADT:
- case ACPI_DMT_NHLT1:
- case ACPI_DMT_NHLT1a:
- case ACPI_DMT_NHLT1b:
- case ACPI_DMT_NHLT1c:
- case ACPI_DMT_NHLT1d:
- case ACPI_DMT_NHLT1f:
+ case ACPI_DMT_MPAM_LOCATOR:
case ACPI_DMT_PCCT:
case ACPI_DMT_PMTT:
case ACPI_DMT_PPTT:
@@ -1140,6 +1137,7 @@ AcpiDmDumpTable (
case ACPI_DMT_AEST_XFACE:
case ACPI_DMT_AEST_XRUPT:
case ACPI_DMT_ASF:
+ case ACPI_DMT_CDAT:
case ACPI_DMT_HESTNTYP:
case ACPI_DMT_FADTPM:
case ACPI_DMT_EINJACT:
@@ -1152,13 +1150,15 @@ AcpiDmDumpTable (
ByteLength = 1;
break;
+ 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:
- case ACPI_DMT_NHLT1e:
case ACPI_DMT_PHAT:
+ case ACPI_DMT_RHCT:
ByteLength = 2;
break;
@@ -1207,6 +1207,11 @@ AcpiDmDumpTable (
ByteLength = 10;
break;
+ case ACPI_DMT_BUF11:
+
+ ByteLength = 11;
+ break;
+
case ACPI_DMT_BUF12:
ByteLength = 12;
@@ -1223,6 +1228,26 @@ AcpiDmDumpTable (
ByteLength = 18;
break;
+ case ACPI_DMT_BUF24:
+
+ ByteLength = 24;
+ break;
+
+ case ACPI_DMT_BUF26:
+
+ ByteLength = 26;
+ break;
+
+ case ACPI_DMT_BUF32:
+
+ ByteLength = 32;
+ break;
+
+ case ACPI_DMT_BUF112:
+
+ ByteLength = 112;
+ break;
+
case ACPI_DMT_BUF128:
ByteLength = 128;
@@ -1369,7 +1394,7 @@ AcpiDmDumpTable (
AcpiOsPrintf ("%2.2X\n", (*Target >> 2) & 0xFF);
break;
- case ACPI_DMT_FLAGS4:
+ case ACPI_DMT_FLAGS4:
AcpiOsPrintf ("%1.1X\n", (*Target >> 4) & 0x03);
break;
@@ -1431,9 +1456,14 @@ 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:
/*
* Buffer: Size depends on the opcode and was set above.
@@ -1522,7 +1552,7 @@ AcpiDmDumpTable (
/* Checksum, display and validate */
AcpiOsPrintf ("%2.2X", *Target);
- Temp8 = AcpiDmGenerateChecksum (Table,
+ Temp8 = AcpiUtGenerateChecksum (Table,
ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length,
ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum);
@@ -1655,6 +1685,17 @@ AcpiDmDumpTable (
AcpiDmAestXruptNames[Temp8]);
break;
+ case ACPI_DMT_ASPT:
+ /* ASPT subtable types */
+ Temp16 = ACPI_GET16(Target);
+ if (Temp16 > ACPI_ASPT_TYPE_UNKNOWN)
+ {
+ Temp16 = ACPI_ASPT_TYPE_UNKNOWN;
+ }
+
+ AcpiOsPrintf(UINT16_FORMAT, Temp16, AcpiDmAsptSubnames[Temp16]);
+ break;
+
case ACPI_DMT_ASF:
/* ASF subtable types */
@@ -1668,6 +1709,20 @@ AcpiDmDumpTable (
AcpiOsPrintf (UINT8_FORMAT, *Target, AcpiDmAsfSubnames[Temp16]);
break;
+ case ACPI_DMT_CDAT:
+
+ /* CDAT subtable types */
+
+ Temp8 = *Target;
+ if (Temp8 > ACPI_CDAT_TYPE_RESERVED)
+ {
+ Temp8 = ACPI_CDAT_TYPE_RESERVED;
+ }
+
+ AcpiOsPrintf (UINT8_FORMAT, *Target,
+ AcpiDmCdatSubnames[Temp8]);
+ break;
+
case ACPI_DMT_CEDT:
/* CEDT subtable types */
@@ -1752,6 +1807,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 */
@@ -1870,135 +1939,32 @@ AcpiDmDumpTable (
AcpiDmMadtSubnames[Temp8]);
break;
- case ACPI_DMT_NFIT:
-
- /* NFIT subtable types */
-
- Temp16 = ACPI_GET16 (Target);
- if (Temp16 > ACPI_NFIT_TYPE_RESERVED)
- {
- Temp16 = ACPI_NFIT_TYPE_RESERVED;
- }
-
- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
- AcpiDmNfitSubnames[Temp16]);
- break;
-
- case ACPI_DMT_NHLT1:
-
- /* NHLT link types */
-
- Temp8 = *Target;
- if (Temp8 > ACPI_NHLT_TYPE_RESERVED)
- {
- Temp8 = ACPI_NHLT_TYPE_RESERVED;
- }
-
- AcpiOsPrintf (UINT8_FORMAT, *Target,
- AcpiDmNhltLinkTypeNames[Temp8]);
- break;
-
- case ACPI_DMT_NHLT1a:
-
- /* NHLT direction */
-
- Temp8 = *Target;
- if (Temp8 > ACPI_NHLT_DIR_RESERVED)
- {
- Temp8 = ACPI_NHLT_DIR_RESERVED;
- }
-
- AcpiOsPrintf (UINT8_FORMAT, *Target,
- AcpiDmNhltDirectionNames[Temp8]);
- break;
-
- case ACPI_DMT_NHLT1b:
-
- /* NHLT microphone type */
-
- Temp8 = *Target;
- if (Temp8 > ACPI_NHLT_MIC_RESERVED)
- {
- Temp8 = ACPI_NHLT_MIC_RESERVED;
- }
-
- AcpiOsPrintf (UINT8_FORMAT, *Target,
- AcpiDmNhltMicTypeNames[Temp8]);
- break;
-
- case ACPI_DMT_NHLT1c:
+ case ACPI_DMT_MPAM_LOCATOR:
- /* NHLT microphone position */
+ /* MPAM subtable locator types */
Temp8 = *Target;
- if (Temp8 > ACPI_NHLT_MIC_POSITION_RESERVED)
+ if (Temp8 > ACPI_MPAM_LOCATION_TYPE_INTERCONNECT)
{
- Temp8 = ACPI_NHLT_MIC_POSITION_RESERVED;
+ Temp8 = ACPI_MPAM_LOCATION_TYPE_INTERCONNECT + 1;
}
AcpiOsPrintf (UINT8_FORMAT, *Target,
- AcpiDmNhltMicPositionNames[Temp8]);
+ AcpiDmMpamSubnames[Temp8]);
break;
- case ACPI_DMT_NHLT1d:
-
- /* NHLT microphone array type */
-
- Temp8 = *Target & ACPI_NHLT_ARRAY_TYPE_MASK;
- if (Temp8 < ACPI_NHLT_ARRAY_TYPE_RESERVED)
- {
- Temp8 = ACPI_NHLT_ARRAY_TYPE_RESERVED;
- }
-
- AcpiOsPrintf (UINT8_FORMAT_NO_NEWLINE, *Target,
- AcpiDmNhltMicArrayTypeNames[Temp8 - ACPI_NHLT_ARRAY_TYPE_RESERVED]);
-
- Temp8 = *Target;
- if (Temp8 & ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT)
- {
- AcpiOsPrintf (" [%s]", "SNR and Sensitivity");
- }
-
- AcpiOsPrintf ("\n");
- break;
-
- case ACPI_DMT_NHLT1e:
+ case ACPI_DMT_NFIT:
- /* NHLT Endpoint Device ID */
+ /* NFIT subtable types */
Temp16 = ACPI_GET16 (Target);
- if (Temp16 == 0xAE20)
- {
- Name = "PDM DMIC";
- }
- else if (Temp16 == 0xAE30)
- {
- Name = "BT Sideband";
- }
- else if (Temp16 == 0xAE34)
- {
- Name = "I2S/TDM Codecs";
- }
- else
- {
- Name = "Unknown Device ID";
- }
-
- AcpiOsPrintf (UINT16_FORMAT, Temp16, Name);
- break;
-
- case ACPI_DMT_NHLT1f:
-
- /* NHLT ConfigType field */
-
- Temp8 = *Target;
- if (Temp8 > ACPI_NHLT_CONFIG_TYPE_RESERVED)
+ if (Temp16 > ACPI_NFIT_TYPE_RESERVED)
{
- Temp8 = ACPI_NHLT_CONFIG_TYPE_RESERVED;
+ Temp16 = ACPI_NFIT_TYPE_RESERVED;
}
- AcpiOsPrintf (UINT8_FORMAT, *Target,
- AcpiDmNhltConfigTypeNames[Temp8]);
+ AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
+ AcpiDmNfitSubnames[Temp16]);
break;
case ACPI_DMT_PCCT:
@@ -2017,15 +1983,15 @@ AcpiDmDumpTable (
case ACPI_DMT_PHAT:
- /* PMTT subtable types */
+ /* PHAT subtable types */
- Temp16 = *Target;
+ Temp16 = ACPI_GET16 (Target);
if (Temp16 > ACPI_PHAT_TYPE_RESERVED)
{
Temp16 = ACPI_PHAT_TYPE_RESERVED;
}
- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16(Target),
+ AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
AcpiDmPhatSubnames[Temp16]);
break;
@@ -2069,7 +2035,7 @@ AcpiDmDumpTable (
break;
}
- AcpiDmDumpUnicode (Table, CurrentOffset, ByteLength);
+ AcpiDmDumpUnicode (Table, 0, ByteLength);
break;
case ACPI_DMT_RAW_BUFFER:
@@ -2099,6 +2065,20 @@ AcpiDmDumpTable (
AcpiDmRgrtSubnames[Temp8]);
break;
+ case ACPI_DMT_RHCT:
+
+ /* RHCT subtable types */
+
+ Temp16 = ACPI_GET16 (Target);
+ if (Temp16 == ACPI_RHCT_NODE_TYPE_HART_INFO)
+ {
+ Temp16 = ACPI_RHCT_NODE_TYPE_RESERVED;
+ }
+
+ AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
+ AcpiDmRhctSubnames[Temp16]);
+ break;
+
case ACPI_DMT_SDEV:
/* SDEV subtable types */
diff --git a/sys/contrib/dev/acpica/common/dmtables.c b/sys/contrib/dev/acpica/common/dmtables.c
index 13ecdf40909e..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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -190,7 +190,7 @@ extern ACPI_PARSE_OBJECT *AcpiGbl_ParseOpRoot;
* RETURN: None
*
* DESCRIPTION: Create the disassembler header, including ACPICA signon with
- * current time and date.
+ * optional current time and date.
*
*****************************************************************************/
@@ -202,8 +202,6 @@ AdDisassemblerHeader (
time_t Timer;
- time (&Timer);
-
/* Header and input table info */
AcpiOsPrintf ("/*\n");
@@ -225,7 +223,15 @@ AdDisassemblerHeader (
}
}
- AcpiOsPrintf (" * Disassembly of %s, %s", Filename, ctime (&Timer));
+ if (AslGbl_Deterministic)
+ {
+ AcpiOsPrintf (" * Disassembly of %s\n", Filename);
+ }
+ else
+ {
+ time (&Timer);
+ AcpiOsPrintf (" * Disassembly of %s, %s", Filename, ctime (&Timer));
+ }
AcpiOsPrintf (" *\n");
}
@@ -296,7 +302,7 @@ AdCreateTableHeader (
AcpiOsPrintf ("\n * Checksum 0x%2.2X", Table->Checksum);
- Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length);
+ Checksum = AcpiUtChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length);
if (Checksum)
{
AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X",
diff --git a/sys/contrib/dev/acpica/common/dmtbdump.c b/sys/contrib/dev/acpica/common/dmtbdump.c
index b87c276cc625..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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -266,14 +266,7 @@ AcpiDmDumpBuffer (
/* Done with that line. */
/* Close the comment and insert a backslash - line continuation character */
- if (Length > 16)
- {
- AcpiOsPrintf (" */\\");
- }
- else
- {
- AcpiOsPrintf (" */\\");
- }
+ AcpiOsPrintf (" */\\");
i += 16; /* Point to next line */
}
@@ -384,7 +377,7 @@ AcpiDmDumpRsdp (
/* Validate the first checksum */
- Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_RSDP_COMMON),
+ Checksum = AcpiUtGenerateChecksum (Rsdp, sizeof (ACPI_RSDP_COMMON),
Rsdp->Checksum);
if (Checksum != Rsdp->Checksum)
{
@@ -405,7 +398,7 @@ AcpiDmDumpRsdp (
/* Validate the extended checksum over entire RSDP */
- Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_TABLE_RSDP),
+ Checksum = AcpiUtGenerateChecksum (Rsdp, sizeof (ACPI_TABLE_RSDP),
Rsdp->ExtendedChecksum);
if (Checksum != Rsdp->ExtendedChecksum)
{
@@ -569,7 +562,7 @@ AcpiDmDumpFadt (
/* Check for FADT revision 6 fields and up (ACPI 6.0+) */
- if (Table->Length > ACPI_FADT_V3_SIZE)
+ if (Table->Length > ACPI_FADT_V5_SIZE)
{
Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
AcpiDmTableInfoFadt6);
@@ -642,6 +635,11 @@ AcpiDmValidateFadtLength (
ExpectedLength = ACPI_FADT_V5_SIZE;
break;
+ case 6:
+
+ ExpectedLength = ACPI_FADT_V6_SIZE;
+ break;
+
default:
return;
diff --git a/sys/contrib/dev/acpica/common/dmtbdump1.c b/sys/contrib/dev/acpica/common/dmtbdump1.c
index c21d641d25a0..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 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -153,6 +153,7 @@
#include <contrib/dev/acpica/include/accommon.h>
#include <contrib/dev/acpica/include/acdisasm.h>
#include <contrib/dev/acpica/include/actables.h>
+#include <contrib/dev/acpica/compiler/aslcompiler.h>
/* This module used for application-level code only */
@@ -194,6 +195,9 @@ AcpiDmDumpAest (
ACPI_DMTABLE_INFO *InfoTable;
ACPI_SIZE Length;
UINT8 Type;
+ UINT8 Revision = Table->Revision;
+ UINT32 Count;
+ ACPI_AEST_NODE_INTERFACE_HEADER *InterfaceHeader;
/* Very small, generic main table. AEST consists of mostly subtables */
@@ -233,8 +237,22 @@ AcpiDmDumpAest (
break;
case ACPI_AEST_VENDOR_ERROR_NODE:
- InfoTable = AcpiDmTableInfoAestVendorError;
- Length = sizeof (ACPI_AEST_VENDOR);
+ switch (Revision)
+ {
+ case 1:
+ InfoTable = AcpiDmTableInfoAestVendorError;
+ Length = sizeof (ACPI_AEST_VENDOR);
+ break;
+
+ case 2:
+ InfoTable = AcpiDmTableInfoAestVendorV2Error;
+ Length = sizeof (ACPI_AEST_VENDOR_V2);
+ break;
+
+ default:
+ AcpiOsPrintf ("\n**** Unknown AEST revision 0x%X\n", Revision);
+ return;
+ }
break;
case ACPI_AEST_GIC_ERROR_NODE:
@@ -242,6 +260,16 @@ AcpiDmDumpAest (
Length = sizeof (ACPI_AEST_GIC);
break;
+ case ACPI_AEST_PCIE_ERROR_NODE:
+ InfoTable = AcpiDmTableInfoAestPCIeError;
+ Length = sizeof (ACPI_AEST_PCIE);
+ break;
+
+ case ACPI_AEST_PROXY_ERROR_NODE:
+ InfoTable = AcpiDmTableInfoAestProxyError;
+ Length = sizeof (ACPI_AEST_PROXY);
+ break;
+
/* Error case below */
default:
@@ -334,8 +362,57 @@ AcpiDmDumpAest (
return;
}
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
- sizeof (ACPI_AEST_NODE_INTERFACE), AcpiDmTableInfoAestXface);
+ if (Revision == 1)
+ {
+ InfoTable = AcpiDmTableInfoAestXface;
+ Length = sizeof (ACPI_AEST_NODE_INTERFACE);
+ }
+ else if (Revision == 2)
+ {
+ InfoTable = AcpiDmTableInfoAestXfaceHeader;
+ Length = sizeof (ACPI_AEST_NODE_INTERFACE_HEADER);
+
+ Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Offset += Length;
+
+ InterfaceHeader = ACPI_CAST_PTR (ACPI_AEST_NODE_INTERFACE_HEADER, Subtable);
+ switch (InterfaceHeader->GroupFormat)
+ {
+ case ACPI_AEST_NODE_GROUP_FORMAT_4K:
+ InfoTable = AcpiDmTableInfoAestXface4k;
+ Length = sizeof (ACPI_AEST_NODE_INTERFACE_4K);
+ break;
+
+ case ACPI_AEST_NODE_GROUP_FORMAT_16K:
+ InfoTable = AcpiDmTableInfoAestXface16k;
+ Length = sizeof (ACPI_AEST_NODE_INTERFACE_16K);
+ break;
+
+ case ACPI_AEST_NODE_GROUP_FORMAT_64K:
+ InfoTable = AcpiDmTableInfoAestXface64k;
+ Length = sizeof (ACPI_AEST_NODE_INTERFACE_64K);
+ break;
+
+ default:
+ AcpiOsPrintf ("\n**** Unknown AEST Interface Group Format 0x%X\n",
+ InterfaceHeader->GroupFormat);
+ return;
+ }
+
+ Subtable = ACPI_ADD_PTR (ACPI_AEST_HEADER, Table, Offset);
+ }
+ else
+ {
+ AcpiOsPrintf ("\n**** Unknown AEST revision 0x%X\n", Revision);
+ return;
+ }
+
+ Status = AcpiDmDumpTable (Table->Length, Offset, Subtable, Length, InfoTable);
if (ACPI_FAILURE (Status))
{
return;
@@ -344,22 +421,36 @@ AcpiDmDumpAest (
/* Point past the interface structure */
AcpiOsPrintf ("\n");
- Offset += sizeof (ACPI_AEST_NODE_INTERFACE);
+ Offset += Length;
/* Dump the entire interrupt structure array, if present */
if (NodeHeader->NodeInterruptOffset)
{
- Length = NodeHeader->NodeInterruptCount;
+ Count = NodeHeader->NodeInterruptCount;
Subtable = ACPI_ADD_PTR (ACPI_AEST_HEADER, Table, Offset);
- while (Length)
+ while (Count)
{
/* Dump the interrupt structure */
+ switch (Revision) {
+ case 1:
+ InfoTable = AcpiDmTableInfoAestXrupt;
+ Length = sizeof (ACPI_AEST_NODE_INTERRUPT);
+ break;
+
+ case 2:
+ InfoTable = AcpiDmTableInfoAestXruptV2;
+ Length = sizeof (ACPI_AEST_NODE_INTERRUPT_V2);
+ break;
+ default:
+ AcpiOsPrintf ("\n**** Unknown AEST revision 0x%X\n",
+ Revision);
+ return;
+ }
Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
- sizeof (ACPI_AEST_NODE_INTERRUPT),
- AcpiDmTableInfoAestXrupt);
+ Length, InfoTable);
if (ACPI_FAILURE (Status))
{
return;
@@ -367,9 +458,9 @@ AcpiDmDumpAest (
/* Point to the next interrupt structure */
- Offset += sizeof (ACPI_AEST_NODE_INTERRUPT);
+ Offset += Length;
Subtable = ACPI_ADD_PTR (ACPI_AEST_HEADER, Table, Offset);
- Length--;
+ Count--;
AcpiOsPrintf ("\n");
}
}
@@ -610,6 +701,281 @@ AcpiDmDumpAsf (
/*******************************************************************************
*
+ * FUNCTION: AcpiDmDumpAspt
+ *
+ * PARAMETERS: Table - A ASPT table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Format the contents of a ASPT table
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpAspt (
+ ACPI_TABLE_HEADER *Table)
+{
+ ACPI_STATUS Status;
+ UINT32 Offset = sizeof (ACPI_TABLE_ASPT);
+ UINT32 Length = Table->Length;
+ ACPI_ASPT_HEADER *Subtable;
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT16 Type;
+
+ /* Main table */
+ Status = AcpiDmDumpTable(Length, 0, Table, 0, AcpiDmTableInfoAspt);
+
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_ASPT_HEADER, Table, Offset);
+ while (Offset < Table->Length)
+ {
+ AcpiOsPrintf ("\n");
+
+ /* Common subtable header */
+ Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+ Subtable->Length, AcpiDmTableInfoAsptHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Type = Subtable->Type;
+
+ switch (Type)
+ {
+ case ACPI_ASPT_TYPE_GLOBAL_REGS:
+
+ InfoTable = AcpiDmTableInfoAspt0;
+ break;
+
+ case ACPI_ASPT_TYPE_SEV_MBOX_REGS:
+
+ InfoTable = AcpiDmTableInfoAspt1;
+ break;
+
+ case ACPI_ASPT_TYPE_ACPI_MBOX_REGS:
+
+ InfoTable = AcpiDmTableInfoAspt2;
+ break;
+
+ default:
+
+ AcpiOsPrintf ("\n**** Unknown ASPT subtable type 0x%X\n",
+ Subtable->Type);
+ return;
+ }
+
+ Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+ Subtable->Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ AcpiOsPrintf ("\n");
+
+ /* Point to next subtable */
+ if (!Subtable->Length)
+ {
+ AcpiOsPrintf ("Invalid zero subtable header length\n");
+ return;
+ }
+
+ Offset += Subtable->Length;
+ Subtable = ACPI_ADD_PTR (ACPI_ASPT_HEADER, Subtable,
+ Subtable->Length);
+ }
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDmDumpCdat
+ *
+ * PARAMETERS: InTable - A CDAT table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Format the contents of a CDAT. This table type consists
+ * of an open-ended number of subtables.
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpCdat (
+ ACPI_TABLE_HEADER *InTable)
+{
+ ACPI_TABLE_CDAT *Table = ACPI_CAST_PTR (ACPI_TABLE_CDAT, InTable);
+ ACPI_STATUS Status;
+ ACPI_CDAT_HEADER *Subtable;
+ ACPI_TABLE_CDAT *CdatTable = ACPI_CAST_PTR (ACPI_TABLE_CDAT, Table);
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT32 Length = CdatTable->Length;
+ UINT32 Offset = sizeof (ACPI_TABLE_CDAT);
+ UINT32 SubtableLength;
+ UINT32 SubtableType;
+ INT32 EntriesLength;
+
+
+ /* Main table */
+
+ Status = AcpiDmDumpTable (Offset, 0, CdatTable, 0,
+ AcpiDmTableInfoCdatTableHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, sizeof (ACPI_TABLE_CDAT));
+ while (Offset < Table->Length)
+ {
+ /* Dump the common subtable header */
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "0) HeaderOffset: %X\n", Offset);
+ AcpiOsPrintf ("\n");
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
+ sizeof (ACPI_CDAT_HEADER), AcpiDmTableInfoCdatHeader);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Point past the common subtable header, decode the subtable type */
+
+ Offset += sizeof (ACPI_CDAT_HEADER);
+ SubtableType = Subtable->Type;
+
+ switch (Subtable->Type)
+ {
+ case ACPI_CDAT_TYPE_DSMAS:
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset);
+ SubtableLength = sizeof (ACPI_CDAT_DSMAS);
+
+ InfoTable = AcpiDmTableInfoCdat0;
+ break;
+
+ case ACPI_CDAT_TYPE_DSLBIS:
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset);
+ SubtableLength = sizeof (ACPI_CDAT_DSLBIS);
+ DbgPrint (ASL_DEBUG_OUTPUT, "1) Offset: %X\n", Offset);
+
+ InfoTable = AcpiDmTableInfoCdat1;
+ break;
+
+ case ACPI_CDAT_TYPE_DSMSCIS:
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset);
+ SubtableLength = sizeof (ACPI_CDAT_DSMSCIS);
+
+ InfoTable = AcpiDmTableInfoCdat2;
+ break;
+
+ case ACPI_CDAT_TYPE_DSIS:
+ DbgPrint (ASL_DEBUG_OUTPUT, "2) Offset: %X ", Offset);
+ SubtableLength = sizeof (ACPI_CDAT_DSIS);
+ DbgPrint (ASL_DEBUG_OUTPUT, "1) input pointer: %p\n", Table);
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset);
+ DbgPrint (ASL_DEBUG_OUTPUT, "1) output pointers: %p, %p, Offset: %X\n",
+ Table, Subtable, Offset);
+ DbgPrint (ASL_DEBUG_OUTPUT, "3) Offset: %X\n", Offset);
+
+ InfoTable = AcpiDmTableInfoCdat3;
+ break;
+
+ case ACPI_CDAT_TYPE_DSEMTS:
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset);
+ SubtableLength = sizeof (ACPI_CDAT_DSEMTS);
+
+ InfoTable = AcpiDmTableInfoCdat4;
+ break;
+
+ case ACPI_CDAT_TYPE_SSLBIS:
+ SubtableLength = Subtable->Length;
+
+ InfoTable = AcpiDmTableInfoCdat5;
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset);
+ break;
+
+ default:
+ fprintf (stderr, "ERROR: Unknown SubtableType: %X\n", Subtable->Type);
+ return;
+ }
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "SubtableType: %X, Length: %X Actual "
+ "Length: %X Offset: %X tableptr: %p\n", SubtableType,
+ Subtable->Length, SubtableLength, Offset, Table);
+
+ /*
+ * Do the subtable-specific fields
+ */
+ Status = AcpiDmDumpTable (Length, Offset, Subtable, Offset, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "Subtable Type: %X, Offset: %X, SubtableLength: %X\n",
+ SubtableType, Offset, SubtableLength);
+
+ /* Additional sub-subtables, dependent on the main subtable type */
+
+ switch (SubtableType)
+ {
+ case ACPI_CDAT_TYPE_SSLBIS:
+ Offset += sizeof (ACPI_CDAT_SSLBIS);
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table,
+ Offset);
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "Case SSLBIS, Offset: %X, SubtableLength: %X "
+ "Subtable->Length %X\n", Offset, SubtableLength, Subtable->Length);
+
+ /* Generate the total length of all the SSLBE entries */
+
+ EntriesLength = SubtableLength - sizeof (ACPI_CDAT_HEADER) -
+ sizeof (ACPI_CDAT_SSLBIS);
+ DbgPrint (ASL_DEBUG_OUTPUT, "EntriesLength: %X, Offset: %X, Table->Length: %X\n",
+ EntriesLength, Offset, Table->Length);
+
+ /* Do each of the SSLBE Entries */
+
+ while ((EntriesLength > 0) && (Offset < Table->Length))
+ {
+ AcpiOsPrintf ("\n");
+
+ Status = AcpiDmDumpTable (Length, Offset, Subtable, Offset,
+ AcpiDmTableInfoCdatEntries);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ EntriesLength -= sizeof (ACPI_CDAT_SSLBE);
+ Offset += sizeof (ACPI_CDAT_SSLBE);
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset);
+ }
+
+ SubtableLength = 0;
+ break;
+
+ default:
+ break;
+ }
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "Offset: %X, Subtable Length: %X\n",
+ Offset, SubtableLength);
+
+ /* Point to next subtable */
+
+ Offset += SubtableLength;
+ Subtable = ACPI_ADD_PTR (ACPI_CDAT_HEADER, Table, Offset);
+ }
+
+ return;
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AcpiDmDumpCedt
*
* PARAMETERS: Table - A CEDT table
@@ -651,31 +1017,73 @@ AcpiDmDumpCedt (
case ACPI_CEDT_TYPE_CHBS:
Status = AcpiDmDumpTable (Length, Offset, Subtable,
Subtable->Length, AcpiDmTableInfoCedt0);
- if (ACPI_FAILURE (Status)) {
+ if (ACPI_FAILURE (Status))
+ {
return;
}
break;
- case ACPI_CEDT_TYPE_CFMWS: {
+ case ACPI_CEDT_TYPE_CFMWS:
+ {
ACPI_CEDT_CFMWS *ptr = (ACPI_CEDT_CFMWS *) Subtable;
- unsigned int i, max = 0x01 << (ptr->InterleaveWays);
+ unsigned int i, max;
+
+ if (ptr->InterleaveWays < 8)
+ max = 1 << (ptr->InterleaveWays);
+ else
+ max = 3 << (ptr->InterleaveWays - 8);
- /* print out table with first "Interleave target" */
+ /* print out table with first "Interleave target" */
Status = AcpiDmDumpTable (Length, Offset, Subtable,
Subtable->Length, AcpiDmTableInfoCedt1);
- if (ACPI_FAILURE (Status)) {
+ if (ACPI_FAILURE (Status))
+ {
return;
}
/* Now, print out any interleave targets beyond the first. */
- for (i = 1; i < max; i++) {
- unsigned int loc_offset = Offset + (i * 4) + ACPI_OFFSET(ACPI_CEDT_CFMWS, InterleaveTargets);
+ for (i = 1; i < max; i++)
+ {
+ unsigned int loc_offset = Offset + (i * 4) + ACPI_OFFSET (ACPI_CEDT_CFMWS, InterleaveTargets);
unsigned int *trg = &(ptr->InterleaveTargets[i]);
+
Status = AcpiDmDumpTable (Length, loc_offset, trg,
Subtable->Length, AcpiDmTableInfoCedt1_te);
- if (ACPI_FAILURE (Status)) {
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ }
+ break;
+ }
+
+ case ACPI_CEDT_TYPE_CXIMS:
+ {
+ ACPI_CEDT_CXIMS *ptr = (ACPI_CEDT_CXIMS *) Subtable;
+ unsigned int i, max = ptr->NrXormaps;
+
+ /* print out table with first "XOR Map" */
+
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
+ Subtable->Length, AcpiDmTableInfoCedt2);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Now, print out any XOR Map beyond the first. */
+
+ for (i = 1; i < max; i++)
+ {
+ unsigned int loc_offset = Offset + (i * 1) + ACPI_OFFSET (ACPI_CEDT_CXIMS, XormapList);
+ UINT64 *trg = &(ptr->XormapList[i]);
+
+ Status = AcpiDmDumpTable (Length, loc_offset, trg,
+ Subtable->Length, AcpiDmTableInfoCedt2_te);
+ if (ACPI_FAILURE (Status))
+ {
return;
}
}
@@ -963,8 +1371,8 @@ AcpiDmDumpDbg2 (
if (Subtable->OemDataOffset)
{
- Status = AcpiDmDumpTable (Length, Offset + Subtable->OemDataOffset,
- Table, Subtable->OemDataLength,
+ Status = AcpiDmDumpTable (Length, Subtable->OemDataOffset,
+ Subtable, Subtable->OemDataLength,
AcpiDmTableInfoDbg2OemData);
if (ACPI_FAILURE (Status))
{
@@ -1072,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",
@@ -1311,6 +1725,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;
+ }
+
+ /* Flex array of UINT8 for device path */
+
+ NumTrailers = 0;
+ while (NumTrailers < ScopeTable->Header.Length - sizeof(ACPI_ERDT_DACD_PATHS))
+ {
+ /* Dump one UINT8 of the device path */
+
+ Status = AcpiDmDumpTable (Table->Length, ScopeOffset +
+ sizeof(ACPI_ERDT_DACD_PATHS) + NumTrailers,
+ ACPI_ADD_PTR (ACPI_SUBTBL_HDR_16, ScopeTable,
+ sizeof(*ScopeTable) + NumTrailers),
+ sizeof(UINT32), AcpiDmTableInfoErdtDacdPath);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ NumTrailers++;
+ }
+
+ ScopeOffset += ScopeTable->Header.Length;
+ ScopeTable = ACPI_ADD_PTR (ACPI_ERDT_DACD_PATHS,
+ ScopeTable, ScopeTable->Header.Length);
+ }
+ }
+NextSubsubtable:
+ Suboffset += Subsubtable->Length;
+ Subsubtable = ACPI_ADD_PTR (ACPI_SUBTBL_HDR_16, Table, Suboffset);
+ }
+
+ Offset += Subtable->Length;
+ Subtable = ACPI_ADD_PTR (ACPI_SUBTBL_HDR_16, Subtable,
+ Subtable->Length);
+ }
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AcpiDmDumpErst
*
* PARAMETERS: Table - A ERST table
@@ -1837,7 +2478,7 @@ AcpiDmDumpHmat (
return;
}
- /* Dump HMAT structure additionals */
+ /* Dump HMAT structure additional */
switch (HmatStruct->Type)
{
diff --git a/sys/contrib/dev/acpica/common/dmtbdump2.c b/sys/contrib/dev/acpica/common/dmtbdump2.c
index 8371b8748977..d29a60be0f67 100644
--- a/sys/contrib/dev/acpica/common/dmtbdump2.c
+++ b/sys/contrib/dev/acpica/common/dmtbdump2.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -149,6 +149,7 @@
*
*****************************************************************************/
+#include <wchar.h>
#include <contrib/dev/acpica/include/acpi.h>
#include <contrib/dev/acpica/include/accommon.h>
#include <contrib/dev/acpica/include/acdisasm.h>
@@ -874,6 +875,7 @@ AcpiDmDumpMadt (
UINT32 Length = Table->Length;
UINT32 Offset = sizeof (ACPI_TABLE_MADT);
ACPI_DMTABLE_INFO *InfoTable;
+ UINT8 Revision;
/* Main table */
@@ -884,6 +886,8 @@ AcpiDmDumpMadt (
return;
}
+ Revision = Table->Revision;
+
/* Subtables */
Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
@@ -961,7 +965,12 @@ AcpiDmDumpMadt (
case ACPI_MADT_TYPE_GENERIC_INTERRUPT:
- InfoTable = AcpiDmTableInfoMadt11;
+ if (Revision > 6)
+ InfoTable = AcpiDmTableInfoMadt11b;
+ else if (Revision == 6)
+ InfoTable = AcpiDmTableInfoMadt11a;
+ else
+ InfoTable = AcpiDmTableInfoMadt11;
break;
case ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR:
@@ -976,12 +985,14 @@ AcpiDmDumpMadt (
case ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR:
- InfoTable = AcpiDmTableInfoMadt14;
+ InfoTable = Revision > 6 ? AcpiDmTableInfoMadt14a :
+ AcpiDmTableInfoMadt14;
break;
case ACPI_MADT_TYPE_GENERIC_TRANSLATOR:
- InfoTable = AcpiDmTableInfoMadt15;
+ InfoTable = Revision > 6 ? AcpiDmTableInfoMadt15a :
+ AcpiDmTableInfoMadt15;
break;
case ACPI_MADT_TYPE_MULTIPROC_WAKEUP:
@@ -989,6 +1000,61 @@ AcpiDmDumpMadt (
InfoTable = AcpiDmTableInfoMadt16;
break;
+ case ACPI_MADT_TYPE_CORE_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt17;
+ break;
+
+ case ACPI_MADT_TYPE_LIO_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt18;
+ break;
+
+ case ACPI_MADT_TYPE_HT_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt19;
+ break;
+
+ case ACPI_MADT_TYPE_EIO_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt20;
+ break;
+
+ case ACPI_MADT_TYPE_MSI_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt21;
+ break;
+
+ case ACPI_MADT_TYPE_BIO_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt22;
+ break;
+
+ case ACPI_MADT_TYPE_LPC_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt23;
+ break;
+
+ case ACPI_MADT_TYPE_RINTC:
+
+ InfoTable = AcpiDmTableInfoMadt24;
+ break;
+
+ case ACPI_MADT_TYPE_IMSIC:
+
+ InfoTable = AcpiDmTableInfoMadt25;
+ break;
+
+ case ACPI_MADT_TYPE_APLIC:
+
+ InfoTable = AcpiDmTableInfoMadt26;
+ break;
+
+ case ACPI_MADT_TYPE_PLIC:
+
+ InfoTable = AcpiDmTableInfoMadt27;
+ break;
+
default:
if ((Subtable->Type >= ACPI_MADT_TYPE_RESERVED) &&
@@ -1020,7 +1086,7 @@ AcpiDmDumpMadt (
/* Dump the OEM data */
Status = AcpiDmDumpTable (Length, Offset, ACPI_CAST_PTR (UINT8, Table) + Offset,
- Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt17);
+ Subtable->Length - sizeof (ACPI_SUBTABLE_HEADER), AcpiDmTableInfoMadt128);
if (ACPI_FAILURE (Status))
{
return;
@@ -1057,16 +1123,16 @@ NextSubtable:
Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable,
Subtable->Length);
- DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n",
- Subtable, Subtable->Length);
- DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n",
- ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable);
-
Offset = ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table);
if (Offset >= Table->Length)
{
return;
}
+
+ DbgPrint (ASL_PARSE_OUTPUT, "//[5) Next Subtable %p, length %X]\n",
+ Subtable, Subtable->Length);
+ DbgPrint (ASL_PARSE_OUTPUT, "//[5B) Offset from table start: 0x%8.8X%8.8X (%p)]\n",
+ ACPI_FORMAT_UINT64 (ACPI_CAST_PTR (char, Subtable) - ACPI_CAST_PTR (char, Table)), Subtable);
}
}
@@ -1128,6 +1194,137 @@ AcpiDmDumpMcfg (
}
}
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDmDumpMpam
+ *
+ * PARAMETERS: Table - A MPAM table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Format the contents of a MPAM table
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpMpam (
+ ACPI_TABLE_HEADER *Table)
+{
+ ACPI_STATUS Status;
+ ACPI_MPAM_MSC_NODE *MpamMscNode;
+ ACPI_MPAM_RESOURCE_NODE *MpamResourceNode;
+ ACPI_MPAM_FUNC_DEPS *MpamFunctionalDependency;
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT32 Offset = sizeof(ACPI_TABLE_HEADER);
+ UINT32 TempOffset;
+ UINT32 MpamResourceNodeLength = 0;
+
+ while (Offset < Table->Length)
+ {
+ MpamMscNode = ACPI_ADD_PTR (ACPI_MPAM_MSC_NODE, Table, Offset);
+
+ /* Subtable: MSC */
+ Status = AcpiDmDumpTable (Table->Length, Offset, MpamMscNode,
+ MpamMscNode->Length, AcpiDmTableInfoMpam0);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Offset the start of the array of resources */
+ Offset += sizeof(ACPI_MPAM_MSC_NODE);
+
+ /* Subtable: MSC RIS(es) */
+ for (UINT32 ResourceIdx = 0; ResourceIdx < MpamMscNode->NumResourceNodes; ResourceIdx++)
+ {
+ AcpiOsPrintf ("\n");
+ MpamResourceNode = ACPI_ADD_PTR (ACPI_MPAM_RESOURCE_NODE, Table, Offset);
+
+ MpamResourceNodeLength = sizeof(ACPI_MPAM_RESOURCE_NODE) +
+ MpamResourceNode->NumFunctionalDeps * sizeof(ACPI_MPAM_FUNC_DEPS);
+ TempOffset = Offset;
+ Offset += MpamResourceNodeLength;
+
+ /* Subtable: MSC RIS */
+ Status = AcpiDmDumpTable (Table->Length, TempOffset, MpamResourceNode,
+ sizeof(ACPI_MPAM_RESOURCE_NODE), AcpiDmTableInfoMpam1);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ switch (MpamResourceNode->LocatorType)
+ {
+ case ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE:
+ InfoTable = AcpiDmTableInfoMpam1A;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_MEMORY:
+ InfoTable = AcpiDmTableInfoMpam1B;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_SMMU:
+ InfoTable = AcpiDmTableInfoMpam1C;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE:
+ InfoTable = AcpiDmTableInfoMpam1D;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE:
+ InfoTable = AcpiDmTableInfoMpam1E;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_INTERCONNECT:
+ InfoTable = AcpiDmTableInfoMpam1F;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_UNKNOWN:
+ InfoTable = AcpiDmTableInfoMpam1G;
+ default:
+ AcpiOsPrintf ("\n**** Unknown MPAM locator type 0x%X\n",
+ MpamResourceNode->LocatorType);
+ return;
+ }
+
+ /* Subtable: MSC Resource Locator(s) */
+ TempOffset += ACPI_OFFSET(ACPI_MPAM_RESOURCE_NODE, Locator);
+ Status = AcpiDmDumpTable (Table->Length, TempOffset, &MpamResourceNode->Locator,
+ sizeof(ACPI_MPAM_RESOURCE_LOCATOR), InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Get the number of functional dependencies of an RIS */
+ TempOffset += sizeof(ACPI_MPAM_RESOURCE_LOCATOR);
+ Status = AcpiDmDumpTable (Table->Length, TempOffset, &MpamResourceNode->NumFunctionalDeps,
+ sizeof(UINT32), AcpiDmTableInfoMpam1Deps);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ TempOffset += sizeof(UINT32);
+ MpamFunctionalDependency = ACPI_ADD_PTR (ACPI_MPAM_FUNC_DEPS, MpamResourceNode,
+ sizeof(ACPI_MPAM_RESOURCE_NODE));
+ /* Subtable: MSC functional dependencies */
+ for (UINT32 funcDep = 0; funcDep < MpamResourceNode->NumFunctionalDeps; funcDep++)
+ {
+ AcpiOsPrintf ("\n");
+ Status = AcpiDmDumpTable (sizeof(ACPI_MPAM_FUNC_DEPS), 0,
+ &MpamResourceNode->NumFunctionalDeps, 0, AcpiDmTableInfoMpam2);
+ Status = AcpiDmDumpTable (Table->Length, TempOffset, MpamFunctionalDependency,
+ sizeof(ACPI_MPAM_FUNC_DEPS), AcpiDmTableInfoMpam2);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ TempOffset += sizeof(ACPI_MPAM_FUNC_DEPS);
+ MpamFunctionalDependency++;
+ }
+
+ AcpiOsPrintf ("\n\n");
+ }
+
+ }
+
+ return;
+}
/*******************************************************************************
*
@@ -1276,6 +1473,54 @@ AcpiDmDumpMpst (
/*******************************************************************************
*
+ * FUNCTION: AcpiDmDumpMrrm
+ *
+ * PARAMETERS: Table - A MRRM table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Format the contents of a MRRM
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpMrrm (
+ ACPI_TABLE_HEADER *Table)
+{
+ ACPI_STATUS Status;
+ ACPI_MRRM_MEM_RANGE_ENTRY *Subtable;
+ UINT16 Offset = sizeof (ACPI_TABLE_MRRM);
+
+ /* Main table */
+
+ Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMrrm);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Subtables (all are same type) */
+
+ Subtable = ACPI_ADD_PTR (ACPI_MRRM_MEM_RANGE_ENTRY, Table, Offset);
+ while (Offset < Table->Length)
+ {
+ AcpiOsPrintf ("\n");
+ Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+ Subtable->Header.Length, AcpiDmTableInfoMrrm0);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Offset += Subtable->Header.Length;
+ Subtable = ACPI_ADD_PTR (ACPI_MRRM_MEM_RANGE_ENTRY, Subtable,
+ Subtable->Header.Length);
+ }
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AcpiDmDumpMsct
*
* PARAMETERS: Table - A MSCT table
@@ -1419,7 +1664,7 @@ AcpiDmDumpNfit (
/* Has a variable number of 64-bit addresses at the end */
InfoTable = AcpiDmTableInfoNfit6;
- FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS) - sizeof (UINT64);
+ FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS);
break;
case ACPI_NFIT_TYPE_CAPABILITIES: /* ACPI 6.0A */
@@ -1473,12 +1718,12 @@ AcpiDmDumpNfit (
case ACPI_NFIT_TYPE_SMBIOS:
Length = Subtable->Length -
- sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8);
+ sizeof (ACPI_NFIT_SMBIOS);
if (Length)
{
Status = AcpiDmDumpTable (Table->Length,
- sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8),
+ sizeof (ACPI_NFIT_SMBIOS),
SmbiosInfo,
Length, AcpiDmTableInfoNfit3a);
if (ACPI_FAILURE (Status))
@@ -1521,410 +1766,6 @@ NextSubtable:
/*******************************************************************************
*
- * FUNCTION: AcpiDmDumpNhlt
- *
- * PARAMETERS: Table - A NHLT table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of an NHLT.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpNhlt (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_STATUS Status;
- UINT32 Offset;
- UINT32 TableLength = Table->Length;
- UINT32 EndpointCount;
- UINT8 FormatsCount;
- ACPI_NHLT_ENDPOINT *Subtable;
- ACPI_NHLT_FORMAT_CONFIG *FormatSubtable;
- ACPI_TABLE_NHLT *InfoTable;
- UINT32 CapabilitiesSize;
- UINT32 i;
- UINT32 j;
- UINT32 EndpointEndOffset;
- UINT8 ConfigType = 0;
- UINT8 ArrayType;
- UINT8 MicrophoneCount;
- ACPI_NHLT_VENDOR_MIC_COUNT *MicCount;
- ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A *DevSpecific;
- ACPI_NHLT_FORMATS_CONFIG *FormatsConfig;
- ACPI_NHLT_DEVICE_INFO_COUNT *Count;
- ACPI_NHLT_DEVICE_INFO *DeviceInfo;
- ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B *Capabilities;
-
-
- /* Main table */
-
- AcpiOsPrintf (" /* Main table */\n");
-
- Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNhlt);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Get the Endpoint Descriptor Count */
-
- InfoTable = ACPI_ADD_PTR (ACPI_TABLE_NHLT, Table, 0);
- EndpointCount = InfoTable->EndpointCount;
-
- /* Subtables */
-
- Offset = sizeof (ACPI_TABLE_NHLT);
-
- while (Offset < TableLength)
- {
- /* A variable number of Endpoint Descriptors - process each */
-
- for (i = 0; i < EndpointCount; i++)
- {
- /* Do the Endpoint Descriptor table */
-
- Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset);
-
- /* Check for endpoint descriptor length beyond end-of-table */
-
- if (Subtable->DescriptorLength > TableLength)
- {
- Offset += 1;
- AcpiOsPrintf ("\n /* Endpoint Descriptor Length larger than"
- " table size: %X, table %X, adjusting table offset (+1) */\n",
- Subtable->DescriptorLength, TableLength);
-
- Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset);
- }
-
- AcpiOsPrintf ("\n /* Endpoint Descriptor #%u */\n", i+1);
- Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
- Subtable->DescriptorLength, AcpiDmTableInfoNhlt0);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- EndpointEndOffset = Subtable->DescriptorLength + Offset;
-
- /* Check for endpoint descriptor beyond end-of-table */
-
- if (Subtable->DescriptorLength > TableLength)
- {
- AcpiOsPrintf ("\n /* Endpoint Descriptor Length larger than table size: %X, table %X */\n",
- Subtable->DescriptorLength, TableLength);
- }
-
- Offset += sizeof (ACPI_NHLT_ENDPOINT);
- Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset);
-
- /* Do the Device Specific table */
-
- AcpiOsPrintf ("\n /* Endpoint Device_Specific_Config table */\n");
- DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable);
- CapabilitiesSize = DevSpecific->CapabilitiesSize;
- Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
- sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- ArrayType = 0;
-
- /* Different subtables based upon capabilities_size */
-
- switch (CapabilitiesSize)
- {
- case 0:
- Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B);
- break;
-
- case 1:
- Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
- sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C), AcpiDmTableInfoNhlt5c);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
- Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C);
- break;
-
- case 2:
- Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
- sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG), AcpiDmTableInfoNhlt5);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
- Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG);
- break;
-
- case 3:
- default:
- /* Extract the ConfigType and ArrayType */
-
- ConfigType = DevSpecific->ConfigType;
- ArrayType = DevSpecific->ArrayType;
-
- Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
- sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A), AcpiDmTableInfoNhlt5a);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Capabilities Size == 3 */
- Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A);
- break;
-
- case 7:
- ConfigType = DevSpecific->ConfigType;
- Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset);
- DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable);
-
- AcpiOsPrintf ("\n /* Render Feedback Device-Specific table */\n");
- Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
- sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG), AcpiDmTableInfoNhlt5);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Capabilities Size = 7 */
- Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG);
-
- if (ConfigType == ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK)
- {
- Subtable = ACPI_ADD_PTR (ACPI_NHLT_ENDPOINT, Table, Offset);
- DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable);
-
- Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
- sizeof (ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG), AcpiDmTableInfoNhlt6b);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
- Offset += sizeof (ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG);
- }
- break;
- }
-
- /* Check for a vendor-defined mic array */
-
- if (ConfigType == ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY)
- {
- if ((ArrayType & ACPI_NHLT_ARRAY_TYPE_MASK) == ACPI_NHLT_VENDOR_DEFINED)
- {
- /* Vendor-defined microphone array; get the microphone count first */
-
- AcpiOsPrintf ("\n /* Vendor-defined microphone count */\n");
- MicCount = ACPI_ADD_PTR (ACPI_NHLT_VENDOR_MIC_COUNT, Table, Offset);
- MicrophoneCount = MicCount->MicrophoneCount;
-
- Status = AcpiDmDumpTable (TableLength, Offset, MicCount,
- sizeof (ACPI_NHLT_VENDOR_MIC_COUNT), AcpiDmTableInfoNhlt6a);
- Offset += sizeof (ACPI_NHLT_VENDOR_MIC_COUNT);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Get the vendor microphone config structure(s) */
-
- for (j = 0; j < MicrophoneCount; j++)
- {
- AcpiOsPrintf ("\n /* Vendor-defined microphone array #%u*/\n", j+1);
- DevSpecific = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Table, Offset);
-
- Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
- sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG), AcpiDmTableInfoNhlt6);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Offset += sizeof (ACPI_NHLT_VENDOR_MIC_CONFIG);
- }
-
- /* Check for Microphone SNR and sensitivity extension */
-
- if ((ArrayType & ACPI_NHLT_ARRAY_TYPE_EXT_MASK) == ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT)
- {
- AcpiOsPrintf ("\n /* Microphone SNR and sensitivity array */\n");
- DevSpecific = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Table, Offset);
-
- Status = AcpiDmDumpTable (TableLength, Offset, DevSpecific,
- sizeof (ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION), AcpiDmTableInfoNhlt9);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Offset += sizeof (ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION);
- }
- }
- }
-
- /* Do the Formats_Config table - starts with the FormatsCount field */
-
- FormatsConfig = ACPI_ADD_PTR (ACPI_NHLT_FORMATS_CONFIG, Table, Offset);
- FormatsCount = FormatsConfig->FormatsCount;
-
- AcpiOsPrintf ("\n /* Formats_Config table */\n");
-
- /* Dump the FormatsCount value */
-
- if (FormatsCount > 0)
- {
- Status = AcpiDmDumpTable (TableLength, Offset, FormatsConfig,
- sizeof (ACPI_NHLT_FORMATS_CONFIG), AcpiDmTableInfoNhlt4);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
- }
- Offset += sizeof (ACPI_NHLT_FORMATS_CONFIG);
-
- /* A variable number of Format_Config Descriptors - process each */
-
- for (j = 0; j < FormatsCount; j++)
- {
- FormatSubtable = ACPI_ADD_PTR (ACPI_NHLT_FORMAT_CONFIG, Table, Offset);
- CapabilitiesSize = FormatSubtable->CapabilitySize;
-
- /* Do the Wave_extensible struct */
-
- AcpiOsPrintf ("\n /* Wave_Format_Extensible table #%u */\n", j+1);
- Status = AcpiDmDumpTable (TableLength, Offset, FormatSubtable,
- sizeof (ACPI_NHLT_FORMAT_CONFIG), AcpiDmTableInfoNhlt3);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Offset += sizeof (ACPI_NHLT_FORMAT_CONFIG);
-
- if (CapabilitiesSize > 0)
- {
- UINT8* CapabilitiesBuf = ACPI_ADD_PTR (UINT8, Table, Offset);
- /* Do the Capabilities array (of bytes) */
-
- AcpiOsPrintf ("\n /* Specific_Config table #%u */\n", j+1);
-
- Status = AcpiDmDumpTable (TableLength, Offset, CapabilitiesBuf,
- CapabilitiesSize, AcpiDmTableInfoNhlt3a);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Offset += CapabilitiesSize; /* + sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B); */
- }
-
- } /* for (j = 0; j < FormatsCount; j++) */
-
- /*
- * If we are not done with the current Endpoint yet, then there must be
- * some non documented structure(s) yet to be processed. First, get
- * the count of such structure(s).
- */
- if (Offset < EndpointEndOffset)
- {
- AcpiOsPrintf ("\n /* Structures that are not part of NHLT spec */\n");
- Count = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_INFO_COUNT, Table, Offset);
- Status = AcpiDmDumpTable (TableLength, Offset, Count,
- sizeof (ACPI_NHLT_DEVICE_INFO_COUNT), AcpiDmTableInfoNhlt7);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
- Offset += sizeof (ACPI_NHLT_DEVICE_INFO_COUNT);
-
- /* Variable number of device structures */
-
- for (j = 0; j < Count->StructureCount; j++)
- {
- DeviceInfo = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_INFO, Table, Offset);
- AcpiOsPrintf ("\n /* Device Info structure #%u (not part of NHLT spec) */\n", j+1);
-
- /*
- * Dump the following Device Info fields:
- * 1) Device ID
- * 2) Device Instance ID
- * 3) Device Port ID
- */
- Status = AcpiDmDumpTable (TableLength, Offset, DeviceInfo,
- sizeof (ACPI_NHLT_DEVICE_INFO), AcpiDmTableInfoNhlt7a);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Offset += sizeof (ACPI_NHLT_DEVICE_INFO);
- }
-
- /*
- * Check that the current offset is not beyond the end of
- * this endpoint descriptor. If it is not, print those
- * undocumented bytes.
- */
- if (Offset < EndpointEndOffset)
- {
- /* Unknown data at the end of the Endpoint */
- UINT32 size = EndpointEndOffset - Offset;
- UINT8* buffer = ACPI_ADD_PTR (UINT8, Table, Offset);
- AcpiOsPrintf ("\n /* Unknown data at the end of the Endpoint, size: %X */\n", size);
- Status = AcpiDmDumpTable (TableLength, Offset, buffer,
- size, AcpiDmTableInfoNhlt7b);
- Offset = EndpointEndOffset;
- }
-
- /* Should be at the end of the Endpoint structure. */
- }
-
- } /* for (i = 0; i < EndpointCount; i++) */
-
-
- /*
- * Done with all of the Endpoint Descriptors, Emit the table terminator
- * (if such a legacy structure is present -- not in NHLT specification)
- */
- if (Offset < TableLength)
- {
- Capabilities = ACPI_ADD_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B, Table, Offset);
- AcpiOsPrintf ("\n/* Terminating specific config (not part of NHLT spec) */\n");
-
- Status = AcpiDmDumpTable (TableLength, Offset, Capabilities,
- sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B), AcpiDmTableInfoNhlt5b);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
- Offset += sizeof (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B);
-
- if (Capabilities->CapabilitiesSize > 0)
- {
- UINT32 remainingBytes = TableLength - Offset;
- UINT8* buffer = ACPI_ADD_PTR (UINT8, Table, Offset);
-
- if (remainingBytes != Capabilities->CapabilitiesSize)
- AcpiOsPrintf ("\n/* Incorrect config size, should be %X, is %X */\n",
- Capabilities->CapabilitiesSize, remainingBytes);
- Status = AcpiDmDumpTable (TableLength, Offset, buffer,
- remainingBytes, AcpiDmTableInfoNhlt3a);
- }
- }
-
- return;
- }
-}
-
-
-/*******************************************************************************
- *
* FUNCTION: AcpiDmDumpPcct
*
* PARAMETERS: Table - A PCCT table
@@ -2101,12 +1942,15 @@ AcpiDmDumpPhat (
ACPI_DMTABLE_INFO *InfoTable;
ACPI_PHAT_HEADER *Subtable;
ACPI_PHAT_VERSION_DATA *VersionData;
+ ACPI_PHAT_HEALTH_DATA *HealthData;
UINT32 RecordCount;
UINT32 Length = Table->Length;
UINT32 Offset = sizeof (ACPI_TABLE_PHAT);
+ UINT32 OriginalOffset;
UINT32 SubtableLength;
UINT32 PathLength;
UINT32 VendorLength;
+ UINT16 RecordType;
Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table, sizeof (ACPI_TABLE_PHAT));
@@ -2116,13 +1960,16 @@ AcpiDmDumpPhat (
/* Common subtable header */
AcpiOsPrintf ("\n");
- Status = AcpiDmDumpTable (Length, 0, Subtable,
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
sizeof (ACPI_PHAT_HEADER), AcpiDmTableInfoPhatHdr);
if (ACPI_FAILURE (Status))
{
return;
}
+ DbgPrint (ASL_DEBUG_OUTPUT, "\n/* %u, Subtable->Type %X */\n",
+ __LINE__, Subtable->Type);
+
switch (Subtable->Type)
{
case ACPI_PHAT_TYPE_FW_VERSION_DATA:
@@ -2139,35 +1986,69 @@ AcpiDmDumpPhat (
default:
- AcpiOsPrintf ("\n**** Unknown PHAT subtable type 0x%X\n\n",
+ DbgPrint (ASL_DEBUG_OUTPUT, "\n**** Unknown PHAT subtable type 0x%X\n\n",
Subtable->Type);
return;
}
- Status = AcpiDmDumpTable (Length, 0, Subtable,
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
SubtableLength, InfoTable);
if (ACPI_FAILURE (Status))
{
return;
}
+ Offset += SubtableLength;
+
+ OriginalOffset = Offset;
switch (Subtable->Type)
{
case ACPI_PHAT_TYPE_FW_VERSION_DATA:
VersionData = ACPI_CAST_PTR (ACPI_PHAT_VERSION_DATA, Subtable);
RecordCount = VersionData->ElementCount;
- while (RecordCount)
+ RecordType = *ACPI_CAST_PTR (UINT8, Subtable);
+
+ /*
+ * Skip past a zero-valued block (not part of the ACPI PHAT specification).
+ * First, check for a zero length record and a zero element count
+ */
+ if (!VersionData->Header.Length && !VersionData->ElementCount)
{
- Status = AcpiDmDumpTable (Length, Offset,
- ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_VERSION_DATA)),
+ while (RecordType == 0)
+ {
+ Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table, Offset);
+ RecordType = *ACPI_CAST_PTR (UINT8, Subtable);
+ RecordCount = VersionData->ElementCount;
+ Offset += 1;
+ }
+
+ Offset -= 1;
+ AcpiOsPrintf ("\n/* Warning: Block of zeros found above starting at Offset %X Length %X */\n"
+ "/* (not compliant to PHAT specification -- ignoring block) */\n",
+ OriginalOffset - 12, Offset - OriginalOffset + 12);
+ }
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "/* %u, RecordCount: %X, Offset %X, SubtableLength %X */\n",
+ __LINE__, RecordCount, Offset, SubtableLength);
+
+ /* Emit each of the version elements */
+
+ while (RecordCount && VersionData->Header.Length)
+ {
+ AcpiOsPrintf ("\n/* Version Element #%Xh Offset %Xh */\n\n",
+ VersionData->ElementCount - RecordCount + 1, Offset);
+
+ Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table, Offset);
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
sizeof (ACPI_PHAT_VERSION_ELEMENT), AcpiDmTableInfoPhat0a);
if (ACPI_FAILURE (Status))
{
return;
}
+ Offset += sizeof (ACPI_PHAT_VERSION_ELEMENT);
RecordCount--;
}
@@ -2175,28 +2056,64 @@ AcpiDmDumpPhat (
case ACPI_PHAT_TYPE_FW_HEALTH_DATA:
- /* account for the null terminator */
+ HealthData = ACPI_CAST_PTR (ACPI_PHAT_HEALTH_DATA, Subtable);
+ PathLength = Subtable->Length - sizeof (ACPI_PHAT_HEALTH_DATA);
+ VendorLength = 0;
- PathLength = strlen (ACPI_ADD_PTR (char, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA))) + 1;
- Status = AcpiDmDumpTable (Length, Offset,
- ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA)),
- PathLength, AcpiDmTableInfoPhat1a);
- if (ACPI_FAILURE (Status))
+ /* An offset of 0 should be ignored */
+ if (HealthData->DeviceSpecificOffset != 0)
{
- return;
+ if (HealthData->DeviceSpecificOffset > Subtable->Length)
+ {
+ AcpiOsPrintf ("\n/* Warning: Oversized device-specific data offset %X */\n"
+ "/* (maximum is %X -- ignoring device-specific data) */\n",
+ HealthData->DeviceSpecificOffset, Subtable->Length);
+ }
+ else if (HealthData->DeviceSpecificOffset < sizeof (ACPI_PHAT_HEALTH_DATA))
+ {
+ AcpiOsPrintf ("\n/* Warning: Undersized device-specific data offset %X */\n"
+ "/* (minimum is %X -- ignoring device-specific data) */\n",
+ HealthData->DeviceSpecificOffset, (UINT8) sizeof (ACPI_PHAT_HEALTH_DATA));
+ }
+ else
+ {
+ PathLength = HealthData->DeviceSpecificOffset - sizeof (ACPI_PHAT_HEALTH_DATA);
+ VendorLength = Subtable->Length - HealthData->DeviceSpecificOffset;
+ }
}
- /* Get vendor data - data length is the remaining subtable length */
+ DbgPrint (ASL_DEBUG_OUTPUT, "/* %u, PathLength %X, Offset %X */\n",
+ __LINE__, PathLength, Offset);
- VendorLength =
- Subtable->Length - sizeof (ACPI_PHAT_HEALTH_DATA) - PathLength;
- Status = AcpiDmDumpTable (Length, 0,
- ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA) + PathLength),
- VendorLength, AcpiDmTableInfoPhat1b);
- if (ACPI_FAILURE (Status))
+ if (PathLength)
{
- return;
+ Status = AcpiDmDumpTable (Length, Offset,
+ ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, sizeof (ACPI_PHAT_HEALTH_DATA)),
+ PathLength, AcpiDmTableInfoPhat1a);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Offset += PathLength;
+ }
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "/* %u, VendorLength %X, Offset %X */\n",
+ __LINE__, VendorLength, Offset);
+
+ if (VendorLength)
+ {
+ Status = AcpiDmDumpTable (Length, Offset,
+ ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable, HealthData->DeviceSpecificOffset),
+ VendorLength, AcpiDmTableInfoPhat1b);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Offset += VendorLength;
}
+
break;
default:
@@ -2208,9 +2125,12 @@ AcpiDmDumpPhat (
/* Next subtable */
- Offset += Subtable->Length;
- Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Subtable,
- Subtable->Length);
+ DbgPrint (ASL_DEBUG_OUTPUT, "/* %u, Bottom of main loop: Offset %X, "
+ "Subtable->Length %X, Table->Length %X */\n",
+ __LINE__, Offset, Subtable->Length, Table->Length);
+
+ Subtable = ACPI_ADD_PTR (ACPI_PHAT_HEADER, Table,
+ Offset);
}
}
@@ -2523,6 +2443,60 @@ AcpiDmDumpPrmt (
/*******************************************************************************
*
+ * FUNCTION: AcpiDmDumpRas2
+ *
+ * PARAMETERS: Table - A RAS2 table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Format the contents of a Ras2. This is a variable-length
+ * table that contains an open-ended number of the RAS2 PCC
+ * descriptors at the end of the table.
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpRas2 (
+ ACPI_TABLE_HEADER *Table)
+{
+ ACPI_STATUS Status;
+ ACPI_RAS2_PCC_DESC *Subtable;
+ UINT32 Length = Table->Length;
+ UINT32 Offset = sizeof (ACPI_TABLE_RAS2);
+
+
+ /* Main table */
+
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRas2);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Subtables - RAS2 PCC descriptor list */
+
+ Subtable = ACPI_ADD_PTR (ACPI_RAS2_PCC_DESC, Table, Offset);
+ while (Offset < Table->Length)
+ {
+ AcpiOsPrintf ("\n");
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
+ sizeof (ACPI_RAS2_PCC_DESC), AcpiDmTableInfoRas2PccDesc);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Point to next subtable */
+
+ Offset += sizeof (ACPI_RAS2_PCC_DESC);
+ Subtable = ACPI_ADD_PTR (ACPI_RAS2_PCC_DESC, Subtable,
+ sizeof (ACPI_RAS2_PCC_DESC));
+ }
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AcpiDmDumpRgrt
*
* PARAMETERS: Table - A RGRT table
@@ -2563,6 +2537,270 @@ AcpiDmDumpRgrt (
/*******************************************************************************
*
+ * FUNCTION: AcpiDmDumpRhct
+ *
+ * PARAMETERS: Table - A RHCT table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Format the contents of a RHCT.
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpRhct (
+ ACPI_TABLE_HEADER *Table)
+{
+ ACPI_STATUS Status;
+ ACPI_RHCT_NODE_HEADER *Subtable;
+ ACPI_RHCT_HART_INFO *RhctHartInfo;
+ ACPI_RHCT_ISA_STRING *RhctIsaString;
+ ACPI_RHCT_CMO_NODE *RhctCmoNode;
+ ACPI_RHCT_MMU_NODE *RhctMmuNode;
+ UINT32 Length = Table->Length;
+ UINT8 SubtableOffset, IsaPadOffset;
+ UINT32 Offset = sizeof (ACPI_TABLE_RHCT);
+ UINT32 i;
+
+ /* Main table */
+
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRhct);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Subtables */
+
+ while (Offset < Table->Length)
+ {
+ AcpiOsPrintf ("\n");
+
+ /* Common subtable header */
+
+ Subtable = ACPI_ADD_PTR (ACPI_RHCT_NODE_HEADER, Table, Offset);
+ if (Subtable->Length < sizeof (ACPI_RHCT_NODE_HEADER))
+ {
+ AcpiOsPrintf ("Invalid subtable length\n");
+ return;
+ }
+ Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+ Subtable->Length, AcpiDmTableInfoRhctNodeHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Length = sizeof (ACPI_RHCT_NODE_HEADER);
+
+ if (Subtable->Length < Length)
+ {
+ AcpiOsPrintf ("Invalid subtable length\n");
+ return;
+ }
+ SubtableOffset = (UINT8) Length;
+
+ switch (Subtable->Type)
+ {
+ case ACPI_RHCT_NODE_TYPE_HART_INFO:
+ Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_RHCT_HART_INFO, Subtable, SubtableOffset),
+ sizeof (ACPI_RHCT_HART_INFO), AcpiDmTableInfoRhctHartInfo1);
+
+ RhctHartInfo = ACPI_ADD_PTR (ACPI_RHCT_HART_INFO, Subtable, SubtableOffset);
+
+ if ((UINT16)(Subtable->Length - SubtableOffset) <
+ (UINT16)(RhctHartInfo->NumOffsets * 4))
+ {
+ AcpiOsPrintf ("Invalid number of offsets\n");
+ return;
+ }
+ SubtableOffset += sizeof (ACPI_RHCT_HART_INFO);
+ for (i = 0; i < RhctHartInfo->NumOffsets; i++)
+ {
+ Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
+ ACPI_ADD_PTR (UINT32, Subtable, SubtableOffset),
+ 4, AcpiDmTableInfoRhctHartInfo2);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ SubtableOffset += 4;
+ }
+ break;
+
+ case ACPI_RHCT_NODE_TYPE_ISA_STRING:
+ RhctIsaString = ACPI_ADD_PTR (ACPI_RHCT_ISA_STRING, Subtable, SubtableOffset);
+ IsaPadOffset = (UINT8) (SubtableOffset + 2 + RhctIsaString->IsaLength);
+ Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
+ RhctIsaString, RhctIsaString->IsaLength, AcpiDmTableInfoRhctIsa1);
+ if (Subtable->Length > IsaPadOffset)
+ {
+ Status = AcpiDmDumpTable (Table->Length, Offset + IsaPadOffset,
+ ACPI_ADD_PTR (UINT8, Subtable, IsaPadOffset),
+ (Subtable->Length - IsaPadOffset), AcpiDmTableInfoRhctIsaPad);
+ }
+
+ break;
+
+ case ACPI_RHCT_NODE_TYPE_CMO:
+ RhctCmoNode = ACPI_ADD_PTR (ACPI_RHCT_CMO_NODE, Subtable, SubtableOffset);
+ Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
+ RhctCmoNode, 4, AcpiDmTableInfoRhctCmo1);
+ break;
+
+ case ACPI_RHCT_NODE_TYPE_MMU:
+ RhctMmuNode = ACPI_ADD_PTR (ACPI_RHCT_MMU_NODE, Subtable, SubtableOffset);
+ Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
+ RhctMmuNode, 2, AcpiDmTableInfoRhctMmu1);
+ break;
+
+ default:
+ break;
+ }
+
+ /* Point to next subtable */
+
+ Offset += Subtable->Length;
+ }
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDmDumpRimt
+ *
+ * PARAMETERS: Table - A RIMT table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Format the contents of a RIMT.
+ *
+ ******************************************************************************/
+
+void
+AcpiDmDumpRimt (
+ ACPI_TABLE_HEADER *Table)
+{
+ ACPI_RIMT_PLATFORM_DEVICE *PlatNode;
+ ACPI_RIMT_PCIE_RC *PcieNode;
+ ACPI_RIMT_NODE *Subtable;
+ ACPI_STATUS Status;
+ UINT32 Length = Table->Length;
+ UINT16 SubtableOffset;
+ UINT32 NodeOffset;
+ UINT16 i;
+ UINT32 Offset = sizeof (ACPI_TABLE_RIMT);
+
+ /* Main table */
+
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRimt);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ /* Subtables */
+
+ while (Offset < Table->Length)
+ {
+ AcpiOsPrintf ("\n");
+
+ /* Common subtable header */
+
+ Subtable = ACPI_ADD_PTR (ACPI_RIMT_NODE, Table, Offset);
+ if (Subtable->Length < sizeof (ACPI_RIMT_NODE))
+ {
+ AcpiOsPrintf ("Invalid subtable length\n");
+ return;
+ }
+ Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+ Subtable->Length, AcpiDmTableInfoRimtNodeHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ Length = sizeof (ACPI_RIMT_NODE);
+
+ if (Subtable->Length < Length)
+ {
+ AcpiOsPrintf ("Invalid subtable length\n");
+ return;
+ }
+ SubtableOffset = (UINT16) Length;
+
+ switch (Subtable->Type)
+ {
+ case ACPI_RIMT_NODE_TYPE_IOMMU:
+ Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_RIMT_IOMMU, Subtable, SubtableOffset),
+ sizeof (ACPI_RIMT_IOMMU), AcpiDmTableInfoRimtIommu);
+
+ break;
+
+ case ACPI_RIMT_NODE_TYPE_PCIE_ROOT_COMPLEX:
+ Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_RIMT_PCIE_RC, Subtable, SubtableOffset),
+ sizeof (ACPI_RIMT_PCIE_RC), AcpiDmTableInfoRimtPcieRc);
+
+ PcieNode = ACPI_ADD_PTR (ACPI_RIMT_PCIE_RC, Subtable, SubtableOffset);
+
+ /* Dump the ID mappings */
+ NodeOffset = PcieNode->IdMappingOffset;
+ for (i = 0; i < PcieNode->NumIdMappings; i++)
+ {
+ AcpiOsPrintf ("\n");
+ Length = sizeof (ACPI_RIMT_ID_MAPPING);
+ Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
+ ACPI_ADD_PTR (ACPI_RIMT_ID_MAPPING, Subtable, NodeOffset),
+ Length, AcpiDmTableInfoRimtIdMapping);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ NodeOffset += Length;
+ }
+ break;
+
+ case ACPI_RIMT_NODE_TYPE_PLAT_DEVICE:
+ Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_RIMT_PLATFORM_DEVICE, Subtable, SubtableOffset),
+ sizeof (ACPI_RIMT_PLATFORM_DEVICE), AcpiDmTableInfoRimtPlatDev);
+ PlatNode = ACPI_ADD_PTR (ACPI_RIMT_PLATFORM_DEVICE, Subtable, SubtableOffset);
+
+ /* Dump the ID mappings */
+ NodeOffset = PlatNode->IdMappingOffset;
+ for (i = 0; i < PlatNode->NumIdMappings; i++)
+ {
+ AcpiOsPrintf ("\n");
+ Length = sizeof (ACPI_RIMT_ID_MAPPING);
+ Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
+ ACPI_ADD_PTR (ACPI_RIMT_ID_MAPPING, Subtable, NodeOffset),
+ Length, AcpiDmTableInfoRimtIdMapping);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+ NodeOffset += Length;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ /* Point to next subtable */
+
+ Offset += Subtable->Length;
+ }
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AcpiDmDumpS3pt
*
* PARAMETERS: Table - A S3PT table
diff --git a/sys/contrib/dev/acpica/common/dmtbdump3.c b/sys/contrib/dev/acpica/common/dmtbdump3.c
index d210b93170d5..41ae6a9887bf 100644
--- a/sys/contrib/dev/acpica/common/dmtbdump3.c
+++ b/sys/contrib/dev/acpica/common/dmtbdump3.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -177,7 +177,8 @@ AcpiDmDumpSlic (
ACPI_TABLE_HEADER *Table)
{
- (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table,
+ (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER),
+ (void *) ((UINT8 *)Table + sizeof (*Table)),
Table->Length - sizeof (*Table), AcpiDmTableInfoSlic);
}
@@ -343,6 +344,11 @@ AcpiDmDumpSrat (
InfoTable = AcpiDmTableInfoSrat6;
break;
+ case ACPI_SRAT_TYPE_RINTC_AFFINITY:
+
+ InfoTable = AcpiDmTableInfoSrat7;
+ break;
+
default:
AcpiOsPrintf ("\n**** Unknown SRAT subtable type 0x%X\n",
Subtable->Type);
diff --git a/sys/contrib/dev/acpica/common/dmtbinfo.c b/sys/contrib/dev/acpica/common/dmtbinfo.c
index 3954fc90eed8..937ad013f079 100644
--- a/sys/contrib/dev/acpica/common/dmtbinfo.c
+++ b/sys/contrib/dev/acpica/common/dmtbinfo.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/dmtbinfo1.c b/sys/contrib/dev/acpica/common/dmtbinfo1.c
index 8ce79320db3b..49c0f6f2a31c 100644
--- a/sys/contrib/dev/acpica/common/dmtbinfo1.c
+++ b/sys/contrib/dev/acpica/common/dmtbinfo1.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -287,6 +287,16 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[] =
ACPI_DMT_TERMINATOR
};
+/* 3: Vendor Defined V2 */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorV2Error[] =
+{
+ {ACPI_DMT_UINT64, ACPI_AEST3A_OFFSET (AcpiHid), "ACPI HID", 0},
+ {ACPI_DMT_UINT32, ACPI_AEST3A_OFFSET (AcpiUid), "ACPI UID", 0},
+ {ACPI_DMT_BUF16, ACPI_AEST3A_OFFSET (VendorSpecificData), "Vendor Specific Data", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/* 4: Gic Error */
ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[] =
@@ -296,6 +306,31 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[] =
ACPI_DMT_TERMINATOR
};
+/* 5: PCIe Error */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAestPCIeError[] =
+{
+ {ACPI_DMT_UINT32, ACPI_AEST5_OFFSET (IortNodeReference), "Iort Node Reference", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 6: Proxy Error */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAestProxyError[] =
+{
+ {ACPI_DMT_UINT64, ACPI_AEST6_OFFSET (NodeAddress), "Proxy Node Address", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Common AEST structures for subtables */
+
+#define ACPI_DM_AEST_INTERFACE_COMMON(a) \
+ {ACPI_DMT_UINT32, ACPI_AEST0D##a##_OFFSET (Common.ErrorNodeDevice), "Arm Error Node Device", 0},\
+ {ACPI_DMT_UINT32, ACPI_AEST0D##a##_OFFSET (Common.ProcessorAffinity), "Processor Affinity", 0}, \
+ {ACPI_DMT_UINT64, ACPI_AEST0D##a##_OFFSET (Common.ErrorGroupRegisterBase), "Err-Group Register Addr", 0}, \
+ {ACPI_DMT_UINT64, ACPI_AEST0D##a##_OFFSET (Common.FaultInjectRegisterBase), "Err-Inject Register Addr", 0}, \
+ {ACPI_DMT_UINT64, ACPI_AEST0D##a##_OFFSET (Common.InterruptConfigRegisterBase), "IRQ-Config Register Addr", 0},
+
/* AestXface: Node Interface Structure */
ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[] =
@@ -314,6 +349,60 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[] =
ACPI_DMT_TERMINATOR
};
+/* AestXface: Node Interface Structure V2 Header */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAestXfaceHeader[] =
+{
+ {ACPI_DMT_AEST_XFACE, ACPI_AEST0DH_OFFSET (Type), "Interface Type", 0},
+ {ACPI_DMT_UINT8, ACPI_AEST0DH_OFFSET (GroupFormat), "Group Format", 0},
+ {ACPI_DMT_UINT16, ACPI_AEST0DH_OFFSET (Reserved[0]), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_AEST0DH_OFFSET (Flags), "Flags (decoded below)", 0},
+ {ACPI_DMT_FLAG0, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Shared Interface", 0},
+ {ACPI_DMT_FLAG1, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Clear MISCx Registers", 0},
+ {ACPI_DMT_FLAG2, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Error Node Device Valid", 0},
+ {ACPI_DMT_FLAG3, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Affinity Type", 0},
+ {ACPI_DMT_FLAG4, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Error group Address Valid", 0},
+ {ACPI_DMT_FLAG5, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Fault Injection Address Valid", 0},
+ {ACPI_DMT_FLAG7, ACPI_AEST0D_FLAG_OFFSET (Flags, 0), "Interrupt Config Address valid", 0},
+ {ACPI_DMT_UINT64, ACPI_AEST0DH_OFFSET (Address), "Address", 0},
+ {ACPI_DMT_UINT32, ACPI_AEST0DH_OFFSET (ErrorRecordIndex), "Error Record Index", 0},
+ {ACPI_DMT_UINT32, ACPI_AEST0DH_OFFSET (ErrorRecordCount), "Error Record Count", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* AestXface: Node Interface Structure V2 4K Group Format */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface4k[] =
+{
+ {ACPI_DMT_UINT64, ACPI_AEST0D4_OFFSET (ErrorRecordImplemented),"Error Record Implemented", 0},
+ {ACPI_DMT_UINT64, ACPI_AEST0D4_OFFSET (ErrorStatusReporting), "Error Status Reporting", 0},
+ {ACPI_DMT_UINT64, ACPI_AEST0D4_OFFSET (AddressingMode), "Addressing Mode", 0},
+ ACPI_DM_AEST_INTERFACE_COMMON(4)
+ ACPI_DMT_TERMINATOR
+};
+
+/* AestXface: Node Interface Structure V2 16K Group Format */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface16k[] =
+{
+ {ACPI_DMT_BUF32, ACPI_AEST0D16_OFFSET (ErrorRecordImplemented[0]),"Error Record Implemented", 0},
+ {ACPI_DMT_BUF32, ACPI_AEST0D16_OFFSET (ErrorStatusReporting[0]), "Error Status Reporting", 0},
+ {ACPI_DMT_BUF32, ACPI_AEST0D16_OFFSET (AddressingMode[0]), "Addressing Mode", 0},
+ ACPI_DM_AEST_INTERFACE_COMMON(16)
+ ACPI_DMT_TERMINATOR
+};
+
+/* AestXface: Node Interface Structure V2 64K Group Format */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface64k[] =
+{
+ {ACPI_DMT_BUF112, ACPI_AEST0D64_OFFSET (ErrorRecordImplemented[0]),"Error Record Implemented", 0},
+ {ACPI_DMT_BUF112, ACPI_AEST0D64_OFFSET (ErrorStatusReporting[0]), "Error Status Reporting", 0},
+ {ACPI_DMT_BUF112, ACPI_AEST0D64_OFFSET (AddressingMode[0]), "Addressing Mode", 0},
+ ACPI_DM_AEST_INTERFACE_COMMON(64)
+ ACPI_DMT_TERMINATOR
+};
+
/* AestXrupt: Node Interrupt Structure */
ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[] =
@@ -329,6 +418,20 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[] =
};
+/* AestXrupt: Node Interrupt Structure V2 */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAestXruptV2[] =
+{
+ {ACPI_DMT_AEST_XRUPT, ACPI_AEST0EA_OFFSET (Type), "Interrupt Type", 0},
+ {ACPI_DMT_UINT16, ACPI_AEST0EA_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_AEST0EA_OFFSET (Flags), "Flags (decoded below)", 0},
+ {ACPI_DMT_FLAG0, ACPI_AEST0EA_FLAG_OFFSET (Flags, 0), "Level Triggered", 0},
+ {ACPI_DMT_UINT32, ACPI_AEST0EA_OFFSET (Gsiv), "Gsiv", 0},
+ {ACPI_DMT_UINT32, ACPI_AEST0EA_OFFSET (Reserved1[0]), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
/*******************************************************************************
*
* ASF - Alert Standard Format table (Signature "ASF!")
@@ -435,6 +538,57 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[] =
/*******************************************************************************
*
+ * ASPT - AMD Secure Processor table (Signature "ASPT")
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoAspt[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ASPT_OFFSET(NumEntries), "Number of Subtables", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Common Subtable header (one per Subtable) */
+ACPI_DMTABLE_INFO AcpiDmTableInfoAsptHdr[] =
+{
+ {ACPI_DMT_ASPT, ACPI_ASPTH_OFFSET(Type), "Type", 0},
+ {ACPI_DMT_UINT16, ACPI_ASPTH_OFFSET(Length), "Length", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 0: ASPT Global Registers */
+ACPI_DMTABLE_INFO AcpiDmTableInfoAspt0[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ASPT0_OFFSET(Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(FeatureRegAddr), "Feature Register Address", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(IrqEnRegAddr), "Interrupt Enable Register Address", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT0_OFFSET(IrqStRegAddr), "Interrupt Status Register Address", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1: ASPT SEV Mailbox Registers */
+ACPI_DMTABLE_INFO AcpiDmTableInfoAspt1[] =
+{
+ {ACPI_DMT_UINT8, ACPI_ASPT1_OFFSET(MboxIrqId), "Mailbox Interrupt ID", 0},
+ {ACPI_DMT_UINT24, ACPI_ASPT1_OFFSET(Reserved[0]), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdRespRegAddr), "CmdResp Register Address", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdBufLoRegAddr), "CmdBufAddr_Lo Register Address", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT1_OFFSET(CmdBufHiRegAddr), "CmdBufAddr_Hi Register Address", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 2: ASPT ACPI Maiblox Registers */
+ACPI_DMTABLE_INFO AcpiDmTableInfoAspt2[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ASPT2_OFFSET(Reserved1), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(CmdRespRegAddr), "CmdResp Register Address", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(Reserved2[0]), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ASPT2_OFFSET(Reserved2[1]), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/*******************************************************************************
+ *
* BDAT - BIOS Data ACPI Table
*
******************************************************************************/
@@ -494,6 +648,116 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[] =
ACPI_DMT_TERMINATOR
};
+/*******************************************************************************
+ *
+ * CDAT - Coherent Device Attribute Table
+ *
+ ******************************************************************************/
+
+ /* Table header (not ACPI-compliant) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdatTableHdr[] =
+{
+ {ACPI_DMT_UINT32, ACPI_CDAT_OFFSET (Length), "CDAT Table Length", DT_LENGTH},
+ {ACPI_DMT_UINT8, ACPI_CDAT_OFFSET (Revision), "Revision", 0},
+ {ACPI_DMT_UINT8, ACPI_CDAT_OFFSET (Checksum), "Checksum", 0},
+ {ACPI_DMT_UINT48, ACPI_CDAT_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_CDAT_OFFSET (Sequence), "Sequence", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Common subtable header */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdatHeader[] =
+{
+ {ACPI_DMT_CDAT, ACPI_CDATH_OFFSET (Type), "Subtable Type", 0},
+ {ACPI_DMT_UINT8, ACPI_CDATH_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_CDATH_OFFSET (Length), "Length", DT_LENGTH},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdat0[] =
+{
+ {ACPI_DMT_UINT8, ACPI_CDAT0_OFFSET (DsmadHandle), "DSMAD Handle", 0},
+ {ACPI_DMT_UINT8, ACPI_CDAT0_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT16, ACPI_CDAT0_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_CDAT0_OFFSET (DpaBaseAddress), "DPA Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_CDAT0_OFFSET (DpaLength), "DPA Length", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdat1[] =
+{
+ {ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Handle), "Handle", 0},
+ {ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (DataType), "Data Type", 0},
+ {ACPI_DMT_UINT8, ACPI_CDAT1_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_CDAT1_OFFSET (EntryBaseUnit), "Entry Base Unit", 0},
+ {ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[0]), "Entry0", 0},
+ {ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[1]), "Entry1", 0},
+ {ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Entry[2]), "Entry2", 0},
+ {ACPI_DMT_UINT16, ACPI_CDAT1_OFFSET (Reserved2), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Subtable 2: Device Scoped Memory Side Cache Information Structure (DSMSCIS) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdat2[] =
+{
+ {ACPI_DMT_UINT8, ACPI_CDAT2_OFFSET (DsmasHandle), "DSMAS Handle", 0},
+ {ACPI_DMT_UINT24, ACPI_CDAT2_OFFSET (Reserved[3]), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_CDAT2_OFFSET (SideCacheSize), "Side Cache Size", 0},
+ {ACPI_DMT_UINT32, ACPI_CDAT2_OFFSET (CacheAttributes), "Cache Attributes", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Subtable 3: Device Scoped Initiator Structure (DSIS) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdat3[] =
+{
+ {ACPI_DMT_UINT8, ACPI_CDAT3_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_CDAT3_OFFSET (Handle), "Handle", 0},
+ {ACPI_DMT_UINT16, ACPI_CDAT3_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Subtable 4: Device Scoped EFI Memory Type Structure (DSEMTS) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdat4[] =
+{
+ {ACPI_DMT_UINT8, ACPI_CDAT4_OFFSET (DsmasHandle), "DSMAS Handle", 0},
+ {ACPI_DMT_UINT8, ACPI_CDAT4_OFFSET (MemoryType), "Memory Type", 0},
+ {ACPI_DMT_UINT16, ACPI_CDAT4_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_CDAT4_OFFSET (DpaOffset), "DPA Offset", 0},
+ {ACPI_DMT_UINT64, ACPI_CDAT4_OFFSET (RangeLength), "DPA Range Length", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Subtable 5: Switch Scoped Latency and Bandwidth Information Structure (SSLBIS) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdat5[] =
+{
+ {ACPI_DMT_UINT8, ACPI_CDAT5_OFFSET (DataType), "Data Type", 0},
+ {ACPI_DMT_UINT24, ACPI_CDAT5_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_CDAT5_OFFSET (EntryBaseUnit), "Entry Base Unit", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* Switch Scoped Latency and Bandwidth Entry (SSLBE) (For subtable 5 above) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCdatEntries[] =
+{
+ {ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (PortxId), "Port X Id", 0},
+ {ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (PortyId), "Port Y Id", 0},
+ {ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (LatencyOrBandwidth), "Latency or Bandwidth", 0},
+ {ACPI_DMT_UINT16, ACPI_CDATE_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/*******************************************************************************
*
@@ -528,7 +792,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[] =
{ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (Reserved1), "Reserved", 0},
{ACPI_DMT_UINT64, ACPI_CEDT1_OFFSET (BaseHpa), "Window base address", 0},
{ACPI_DMT_UINT64, ACPI_CEDT1_OFFSET (WindowSize), "Window size", 0},
- {ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveWays), "Interleave Members (2^n)", 0},
+ {ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveWays), "Interleave Members", 0},
{ACPI_DMT_UINT8, ACPI_CEDT1_OFFSET (InterleaveArithmetic), "Interleave Arithmetic", 0},
{ACPI_DMT_UINT16, ACPI_CEDT1_OFFSET (Reserved2), "Reserved", 0},
{ACPI_DMT_UINT32, ACPI_CEDT1_OFFSET (Granularity), "Granularity", 0},
@@ -544,6 +808,23 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[] =
ACPI_DMT_TERMINATOR
};
+/* 2: CXL XOR Interleave Math Structure */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2[] =
+{
+ {ACPI_DMT_UINT16, ACPI_CEDT2_OFFSET (Reserved1), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_CEDT2_OFFSET (Hbig), "Interleave Granularity", 0},
+ {ACPI_DMT_UINT8, ACPI_CEDT2_OFFSET (NrXormaps), "Xormap List Count", 0},
+ {ACPI_DMT_UINT64, ACPI_CEDT2_OFFSET (XormapList), "First Xormap", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2_te[] =
+{
+ {ACPI_DMT_UINT64, ACPI_CEDT2_TE_OFFSET (Xormap), "Next Xormap", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/*******************************************************************************
*
* CPEP - Corrected Platform Error Polling table
@@ -730,7 +1011,8 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[] =
{
{ACPI_DMT_DMAR_SCOPE, ACPI_DMARS_OFFSET (EntryType), "Device Scope Type", 0},
{ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Length), "Entry Length", DT_LENGTH},
- {ACPI_DMT_UINT16, ACPI_DMARS_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Reserved), "Reserved", 0},
{ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (EnumerationId), "Enumeration ID", 0},
{ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Bus), "PCI Bus Number", 0},
ACPI_DMT_TERMINATOR
@@ -743,7 +1025,8 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[] =
ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[] =
{
{ACPI_DMT_UINT8, ACPI_DMAR0_OFFSET (Flags), "Flags", 0},
- {ACPI_DMT_UINT8, ACPI_DMAR0_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_DMAR0_OFFSET (Size), "Size (decoded below)", 0},
+ {ACPI_DMT_FLAGS4_0, ACPI_DMAR0_FLAG_OFFSET (Size,0), "Size (pages, log2)", 0},
{ACPI_DMT_UINT16, ACPI_DMAR0_OFFSET (Segment), "PCI Segment Number", 0},
{ACPI_DMT_UINT64, ACPI_DMAR0_OFFSET (Address), "Register Base Address", 0},
ACPI_DMT_TERMINATOR
@@ -790,7 +1073,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[] =
ACPI_DMT_TERMINATOR
};
-/* 5: Hardware Unit Definition */
+/* 5: SoC Integrated Address Translation Cache */
ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[] =
{
@@ -800,6 +1083,16 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[] =
ACPI_DMT_TERMINATOR
};
+/* 6: SoC Integrated Device Property */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoDmar6[] =
+{
+ {ACPI_DMT_UINT16, ACPI_DMAR6_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_DMAR6_OFFSET (Segment), "PCI Segment Number", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
/*******************************************************************************
*
* DRTM - Dynamic Root of Trust for Measurement table
@@ -909,6 +1202,276 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[] =
/*******************************************************************************
*
+ * ERDT - Enhanced Resource Director Technology table
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdt[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ERDT_OFFSET (MaxClos), "Maximum supported CLOSID", 0},
+ {ACPI_DMT_BUF24, ACPI_ERDT_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * ERDT - Common Subtable Header
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtHdr[] =
+{
+ {ACPI_DMT_ERDT, ACPI_ERDT_HDR_OFFSET (Type), "Type", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_HDR_OFFSET (Length), "Length", DT_LENGTH},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - ERDT Resource Management Domain Description subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtRmdd[] =
+{
+ {ACPI_DMT_UINT16, ACPI_ERDT_RMDD_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},
+ {ACPI_DMT_FLAG0, ACPI_ERDT_RMDD_FLAG_OFFSET (Flags,0), "L3 Domain", 0},
+ {ACPI_DMT_FLAG1, ACPI_ERDT_RMDD_FLAG_OFFSET (Flags,0), "I/O L3 Domain", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_RMDD_OFFSET (IO_l3_Slices), "I/O L3 Slices", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_RMDD_OFFSET (IO_l3_Sets), "I/O L3 Sets", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_RMDD_OFFSET (IO_l3_Ways), "I/O L3 Ways", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_RMDD_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_RMDD_OFFSET (DomainId), "Domain ID", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_RMDD_OFFSET (MaxRmid), "Maximum supported RMID", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_RMDD_OFFSET (CregBase), "Control Register Base Address", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_RMDD_OFFSET (CregSize), "Control Register Base Size", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - CACD CPU Agent Collection Description subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCacd[] =
+{
+ {ACPI_DMT_UINT16, ACPI_ERDT_CACD_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_CACD_OFFSET (DomainId), "Domain ID", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCacdX2apic[] =
+{
+ {ACPI_DMT_UINT32, 0, "X2ApicID", DT_OPTIONAL},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - DACD Device Agent Collection Description subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacd[] =
+{
+ {ACPI_DMT_UINT16, ACPI_ERDT_DACD_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_DACD_OFFSET (DomainId), "Domain ID", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacdScope[] =
+{
+ {ACPI_DMT_UINT8, ACPI_ERDT_DACD_PATH_OFFSET (Header.Type), "PCIType", DT_OPTIONAL},
+ {ACPI_DMT_UINT8, ACPI_ERDT_DACD_PATH_OFFSET (Header.Length), "Length", DT_OPTIONAL},
+ {ACPI_DMT_UINT16, ACPI_ERDT_DACD_PATH_OFFSET (Segment), "Segment", DT_OPTIONAL},
+ {ACPI_DMT_UINT8, ACPI_ERDT_DACD_PATH_OFFSET (Reserved), "Reserved", DT_OPTIONAL},
+ {ACPI_DMT_UINT8, ACPI_ERDT_DACD_PATH_OFFSET (StartBus), "StartBus", DT_OPTIONAL},
+ ACPI_DMT_TERMINATOR
+};
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacdPath[] =
+{
+ {ACPI_DMT_UINT8, 0, "Path", DT_OPTIONAL},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - Cache Monitoring Registers for CPU Agents subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCmrc[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ERDT_CMRC_OFFSET (Reserved1), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_CMRC_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_CMRC_OFFSET (IndexFn), "Register Index Function", 0},
+ {ACPI_DMT_BUF11, ACPI_ERDT_CMRC_OFFSET (Reserved2), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_CMRC_OFFSET (CmtRegBase), "CMT Register Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_CMRC_OFFSET (CmtRegSize), "CMT Register Size", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_CMRC_OFFSET (ClumpSize), "Clump Size", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_CMRC_OFFSET (ClumpStride), "Clump Stride", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_CMRC_OFFSET (UpScale), "Upscale factor", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - Memory-bandwidth Monitoring Registers for CPU agents subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMmrc[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ERDT_MMRC_OFFSET (Reserved1), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_MMRC_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_MMRC_OFFSET (IndexFn), "Register Index Function", 0},
+ {ACPI_DMT_BUF11, ACPI_ERDT_MMRC_OFFSET (Reserved2), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_MMRC_OFFSET (RegBase), "MBM Register Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_MMRC_OFFSET (RegSize), "MBM Register Size", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_MMRC_OFFSET (CounterWidth), "MBM Counter Width", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_MMRC_OFFSET (UpScale), "Upscale factor", 0},
+ {ACPI_DMT_UINT56, ACPI_ERDT_MMRC_OFFSET (Reserved3), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_MMRC_OFFSET (CorrFactorListLen), "Corr Factor List Length", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMmrcCorrFactor[] =
+{
+ {ACPI_DMT_UINT32, 0, "CorrFactor", DT_OPTIONAL},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - Memory-bandwidth Allocation Registers for CPU agents subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMarc[] =
+{
+ {ACPI_DMT_UINT16, ACPI_ERDT_MARC_OFFSET (Reserved1), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_MARC_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_MARC_OFFSET (IndexFn), "Register Index Function", 0},
+ {ACPI_DMT_UINT56, ACPI_ERDT_MARC_OFFSET (Reserved2), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_MARC_OFFSET (RegBaseOpt), "MBA Register Opt Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_MARC_OFFSET (RegBaseMin), "MBA Register Min Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_MARC_OFFSET (RegBaseMax), "MBA Register Max Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_MARC_OFFSET (MbaRegSize), "MBA Register Size", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_MARC_OFFSET (MbaCtrlRange), "MBA Control Range", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - Cache Allocation Registers for CPU Agents subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCarc[] =
+{
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - Cache Monitoring Registers for Device Agents subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCmrd[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ERDT_CMRD_OFFSET (Reserved1), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_CMRD_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_CMRD_OFFSET (IndexFn), "Register Index Function", 0},
+ {ACPI_DMT_BUF11, ACPI_ERDT_CMRD_OFFSET (Reserved2), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_CMRD_OFFSET (RegBase), "CMRD Register Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_CMRD_OFFSET (RegSize), "CMRD Register Size", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_CMRD_OFFSET (CmtRegOff), "Register Offset", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_CMRD_OFFSET (CmtClumpSize), "Clump Size", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_CMRD_OFFSET (UpScale), "Upscale factor", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - O Bandwidth Monitoring Registers for Device Agents subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbrd[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ERDT_IBRD_OFFSET (Reserved1), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_IBRD_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_IBRD_OFFSET (IndexFn), "Register Index Function", 0},
+ {ACPI_DMT_BUF11, ACPI_ERDT_IBRD_OFFSET (Reserved2), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_IBRD_OFFSET (RegBase), "IBRD Register Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_IBRD_OFFSET (RegSize), "IBRD Register Size", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_IBRD_OFFSET (TotalBwOffset), "TotalBw Offset", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_IBRD_OFFSET (IOMissBwOffset), "IO Miss Offset", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_IBRD_OFFSET (TotalBwClump), "TotalBw Clump", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_IBRD_OFFSET (IOMissBwClump), "IO Miss Clump", 0},
+ {ACPI_DMT_UINT56, ACPI_ERDT_IBRD_OFFSET (Reserved3), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_IBRD_OFFSET (CounterWidth), "Counter Width", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_IBRD_OFFSET (UpScale), "Upscale factor", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_IBRD_OFFSET (CorrFactorListLen), "Corr Factor List Length", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbrdCorrFactor[] =
+{
+ {ACPI_DMT_UINT32, 0, "CorrFactor", DT_OPTIONAL},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - O bandwidth Allocation Registers for Device Agents subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbad[] =
+{
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RMDD - Cache Allocation Registers for Device Agents subtable
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCard[] =
+{
+ {ACPI_DMT_UINT32, ACPI_ERDT_CARD_OFFSET (Reserved1), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_CARD_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_CARD_OFFSET (ContentionMask), "ContentionMask", 0},
+ {ACPI_DMT_UINT8, ACPI_ERDT_CARD_OFFSET (IndexFn), "Register Index Function", 0},
+ {ACPI_DMT_UINT56, ACPI_ERDT_CARD_OFFSET (Reserved2), "Register Index Function", 0},
+ {ACPI_DMT_UINT64, ACPI_ERDT_CARD_OFFSET (RegBase), "CARD Register Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_ERDT_CARD_OFFSET (RegSize), "CARD Register Size", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_CARD_OFFSET (CatRegOffset), "CARD Register Offset", 0},
+ {ACPI_DMT_UINT16, ACPI_ERDT_CARD_OFFSET (CatRegBlockSize), "CARD Register Block Size", 0},
+
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
* ERST - Error Record Serialization table
*
******************************************************************************/
@@ -1387,7 +1950,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoHmat2[] =
{ACPI_DMT_FLAGS4_8, ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Associativity", 0},
{ACPI_DMT_FLAGS4_12, ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Write Policy", 0},
{ACPI_DMT_FLAGS16_16, ACPI_HMAT2_FLAG_OFFSET (CacheAttributes,0), "Cache Line Size", 0},
- {ACPI_DMT_UINT16, ACPI_HMAT2_OFFSET (Reserved2), "Reserved2", 0},
+ {ACPI_DMT_UINT16, ACPI_HMAT2_OFFSET (AddressMode), "Address Mode", 0},
{ACPI_DMT_UINT16, ACPI_HMAT2_OFFSET (NumberOfSMBIOSHandles), "SMBIOS Handle #", 0},
ACPI_DMT_TERMINATOR
};
diff --git a/sys/contrib/dev/acpica/common/dmtbinfo2.c b/sys/contrib/dev/acpica/common/dmtbinfo2.c
index bac6a1d2a1d4..b7c6d3b8d536 100644
--- a/sys/contrib/dev/acpica/common/dmtbinfo2.c
+++ b/sys/contrib/dev/acpica/common/dmtbinfo2.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -313,6 +313,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[] =
{ACPI_DMT_UINT8, ACPI_IORTA_OFFSET (MemoryFlags), "Memory Flags (decoded below)", 0},
{ACPI_DMT_FLAG0, ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0), "Coherency", 0},
{ACPI_DMT_FLAG1, ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0), "Device Attribute", 0},
+ {ACPI_DMT_FLAG2, ACPI_IORTA_FLAG_OFFSET (MemoryFlags, 0), "Ensured Coherency of Accesses", 0},
ACPI_DMT_TERMINATOR
};
@@ -412,6 +413,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoIort4[] =
{ACPI_DMT_FLAG0, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "COHACC Override", 0},
{ACPI_DMT_FLAG1, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "HTTU Override", 0},
{ACPI_DMT_FLAG3, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "Proximity Domain Valid", 0},
+ {ACPI_DMT_FLAG4, ACPI_IORT4_FLAG_OFFSET (Flags, 0), "DeviceID Valid", 0},
{ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (Reserved), "Reserved", 0},
{ACPI_DMT_UINT64, ACPI_IORT4_OFFSET (VatosAddress), "VATOS Address", 0},
{ACPI_DMT_UINT32, ACPI_IORT4_OFFSET (Model), "Model", 0},
@@ -677,8 +679,6 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[] =
{ACPI_DMT_UINT64, ACPI_LPIT0_OFFSET (CounterFrequency), "Counter Frequency", 0},
ACPI_DMT_TERMINATOR
};
-
-
/*******************************************************************************
*
* MADT - Multiple APIC Description Table and subtables
@@ -863,6 +863,64 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[] =
{ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0},
{ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0},
{ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (TrbeInterrupt), "TRBE Interrupt", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 11: Generic Interrupt Controller (ACPI 5.0) - MADT revision 6 */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11a[] =
+{
+ {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (CpuInterfaceNumber), "CPU Interface Number", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Uid), "Processor UID", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},
+ {ACPI_DMT_FLAG0, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Processor Enabled", 0},
+ {ACPI_DMT_FLAG1, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Performance Interrupt Trigger Mode", 0},
+ {ACPI_DMT_FLAG2, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Virtual GIC Interrupt Trigger Mode", 0},
+ {ACPI_DMT_FLAG3, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Online Capable", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (ParkingVersion), "Parking Protocol Version", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (PerformanceInterrupt), "Performance Interrupt", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ParkedAddress), "Parked Address", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (BaseAddress), "Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicvBaseAddress), "Virtual GIC Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GichBaseAddress), "Hypervisor GIC Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (VgicInterrupt), "Virtual GIC Interrupt", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicrBaseAddress), "Redistributor Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ArmMpidr), "ARM MPIDR", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (TrbeInterrupt), "TRBE Interrupt", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 11: Generic Interrupt Controller (ACPI 5.0) - MADT revision 7 */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11b[] =
+{
+ {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (CpuInterfaceNumber), "CPU Interface Number", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Uid), "Processor UID", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},
+ {ACPI_DMT_FLAG0, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Processor Enabled", 0},
+ {ACPI_DMT_FLAG1, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Performance Interrupt Trigger Mode", 0},
+ {ACPI_DMT_FLAG2, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Virtual GIC Interrupt Trigger Mode", 0},
+ {ACPI_DMT_FLAG3, ACPI_MADT11_FLAG_OFFSET (Flags,0), "Online Capable", 0},
+ {ACPI_DMT_FLAG4, ACPI_MADT11_FLAG_OFFSET (Flags,0), "GICR non-coherent", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (ParkingVersion), "Parking Protocol Version", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (PerformanceInterrupt), "Performance Interrupt", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ParkedAddress), "Parked Address", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (BaseAddress), "Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicvBaseAddress), "Virtual GIC Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GichBaseAddress), "Hypervisor GIC Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT11_OFFSET (VgicInterrupt), "Virtual GIC Interrupt", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (GicrBaseAddress), "Redistributor Base Address", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT11_OFFSET (ArmMpidr), "ARM MPIDR", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (EfficiencyClass), "Efficiency Class", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT11_OFFSET (Reserved2[0]), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (SpeInterrupt), "SPE Overflow Interrupt", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT11_OFFSET (TrbeInterrupt), "TRBE Interrupt", 0},
ACPI_DMT_TERMINATOR
};
@@ -903,6 +961,18 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[] =
ACPI_DMT_TERMINATOR
};
+/* 14: Generic Redistributor (ACPI 5.1) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14a[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT14_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},
+ {ACPI_DMT_FLAG0, ACPI_MADT14_FLAG_OFFSET (Flags,0), "GICR non-coherent", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT14_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT14_OFFSET (BaseAddress), "Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT14_OFFSET (Length), "Length", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/* 15: Generic Translator (ACPI 6.0) */
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[] =
@@ -914,6 +984,17 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[] =
ACPI_DMT_TERMINATOR
};
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15a[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT15_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},
+ {ACPI_DMT_FLAG0, ACPI_MADT15_FLAG_OFFSET (Flags,0), "GIC ITS non-coherent", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT15_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT15_OFFSET (TranslationId), "Translation ID", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT15_OFFSET (BaseAddress), "Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT15_OFFSET (Reserved2), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/* 16: Multiprocessor wakeup structure (ACPI 6.4) */
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[] =
@@ -924,12 +1005,154 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[] =
ACPI_DMT_TERMINATOR
};
-/* 17: OEM data structure */
+/* 17: core interrupt controller */
ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[] =
{
+ {ACPI_DMT_UINT8, ACPI_MADT17_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (ProcessorId), "ProcessorId", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (CoreId), "CoreId", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT17_OFFSET (Flags), "Flags", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 18: Legacy I/O interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT18_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (Address), "Address", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Size), "Size", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT18_OFFSET (Cascade), "Cascade", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT18_OFFSET (CascadeMap), "CascadeMap", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 19: HT interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT19_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Address), "Address", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT19_OFFSET (Size), "Size", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT19_OFFSET (Cascade), "Cascade", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 20: Extend I/O interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Cascade), "Cascade", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT20_OFFSET (Node), "Node", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT20_OFFSET (NodeMap), "NodeMap", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 21: MSI controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT21_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT21_OFFSET (MsgAddress), "MsgAddress", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Start), "Start", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT21_OFFSET (Count), "Count", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 22: BIO interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT22_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT22_OFFSET (Address), "Address", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Size), "Size", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (Id), "Id", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT22_OFFSET (GsiBase), "GsiBase", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 23: LPC interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT23_OFFSET (Address), "Address", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT23_OFFSET (Size), "Size", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT23_OFFSET (Cascade), "Cascade", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 24: RINTC interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT24_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (HartId), "HartId", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (Uid), "Uid", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ExtIntcId), "ExtIntcId", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT24_OFFSET (ImsicAddr), "ImsicAddr", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT24_OFFSET (ImsicSize), "ImsicSize", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 25: RISC-V IMSIC interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT25_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumIds), "NumIds", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT25_OFFSET (NumGuestIds), "NumGuestIds", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GuestIndexBits), "GuestIndexBits", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (HartIndexBits), "HartIndexBits", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexBits), "GroupIndexBits", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT25_OFFSET (GroupIndexShift), "GroupIndexShift", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 26: RISC-V APLIC interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT26_OFFSET (Id), "Id", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (HwId), "HwId", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumIdcs), "NumIdcs", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT26_OFFSET (NumSources), "NumSources", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (GsiBase), "GsiBase", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT26_OFFSET (BaseAddr), "BaseAddr", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT26_OFFSET (Size), "Size", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 27: RISC-V PLIC interrupt controller */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Version), "Version", 0},
+ {ACPI_DMT_UINT8, ACPI_MADT27_OFFSET (Id), "Id", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (HwId), "HwId", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (NumIrqs), "NumIrqs", 0},
+ {ACPI_DMT_UINT16, ACPI_MADT27_OFFSET (MaxPrio), "MaxPrio", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (Size), "Size", 0},
+ {ACPI_DMT_UINT64, ACPI_MADT27_OFFSET (BaseAddr), "BaseAddr", 0},
+ {ACPI_DMT_UINT32, ACPI_MADT27_OFFSET (GsiBase), "GsiBase", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 128: OEM data structure */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[] =
+{
{ACPI_DMT_RAW_BUFFER, 0, "OEM Data", 0},
- ACPI_DMT_TERMINATOR
+ ACPI_DMT_TERMINATOR
};
/*******************************************************************************
@@ -978,6 +1201,141 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[] =
ACPI_DMT_TERMINATOR
};
+/*******************************************************************************
+ *
+ * MPAM - Memory System Resource Partitioning and Monitoring Tables
+ * Arm's DEN0065 MPAM ACPI 2.0. December 2022.
+ ******************************************************************************/
+
+/* MPAM subtables */
+
+/* 0: MPAM Resource Node Structure - A root MSC table.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 4: MPAM MSC node body.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam0[] =
+{
+ {ACPI_DMT_UINT16, ACPI_MPAM0_OFFSET (Length), "Length", 0},
+ {ACPI_DMT_UINT8, ACPI_MPAM0_OFFSET (InterfaceType), "Interface type", 0},
+ {ACPI_DMT_UINT8, ACPI_MPAM0_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Identifier), "Identifier", 0},
+ {ACPI_DMT_UINT64, ACPI_MPAM0_OFFSET (BaseAddress), "Base address", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (MMIOSize), "MMIO size", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterrupt), "Overflow interrupt", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterruptFlags), "Overflow interrupt flags", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Reserved1), "Reserved1", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (OverflowInterruptAffinity), "Overflow interrupt affinity", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterrupt), "Error interrupt", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterruptFlags), "Error interrupt flags", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (Reserved2), "Reserved2", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (ErrorInterruptAffinity), "Error interrupt affinity", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (MaxNrdyUsec), "MAX_NRDY_USEC", 0},
+ {ACPI_DMT_NAME8, ACPI_MPAM0_OFFSET (HardwareIdLinkedDevice), "Hardware ID of linked device", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (InstanceIdLinkedDevice), "Instance ID of linked device", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM0_OFFSET (NumResourceNodes), "Number of resource nodes", 0},
+
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1: MPAM Resource (RIS) Node Structure - A subtable of MSC Nodes.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 9: Resource node.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1[] =
+{
+ {ACPI_DMT_UINT32, ACPI_MPAM1_OFFSET (Identifier), "Identifier", 0},
+ {ACPI_DMT_UINT8, ACPI_MPAM1_OFFSET (RISIndex), "RIS Index", 0},
+ {ACPI_DMT_UINT16, ACPI_MPAM1_OFFSET (Reserved1), "Reserved1", 0},
+ {ACPI_DMT_MPAM_LOCATOR, ACPI_MPAM1_OFFSET (LocatorType), "Locator type", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* An RIS field part of the RIS subtable */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1Deps[] =
+{
+ {ACPI_DMT_UINT32, 0, "Number of functional dependencies", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1A: MPAM Processor cache locator descriptor. A subtable of RIS.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 13.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1A[] =
+{
+ {ACPI_DMT_UINT64, ACPI_MPAM1A_OFFSET (CacheReference), "Cache reference", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM1A_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1B: MPAM Memory locator descriptor. A subtable of RIS.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 14.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1B[] =
+{
+ {ACPI_DMT_UINT64, ACPI_MPAM1B_OFFSET (ProximityDomain), "Proximity domain", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM1B_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1C: MPAM SMMU locator descriptor. A subtable of RIS.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 15.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1C[] =
+{
+ {ACPI_DMT_UINT64, ACPI_MPAM1C_OFFSET (SmmuInterface), "SMMU Interface", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM1C_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1D: MPAM Memory-side cache locator descriptor. A subtable of RIS.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 16.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1D[] =
+{
+ {ACPI_DMT_UINT56, ACPI_MPAM1D_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_MPAM1D_OFFSET (Level), "Level", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM1D_OFFSET (Reference), "Reference", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1E: MPAM ACPI device locator descriptor. A subtable of RIS.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 17.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1E[] =
+{
+ {ACPI_DMT_UINT64, ACPI_MPAM1E_OFFSET (AcpiHwId), "ACPI Hardware ID", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM1E_OFFSET (AcpiUniqueId), "ACPI Unique ID", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1F: MPAM Interconnect locator descriptor. A subtable of RIS.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 18.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1F[] =
+{
+ {ACPI_DMT_UINT64, ACPI_MPAM1F_OFFSET (InterConnectDescTblOff), "Interconnect descriptor table offset", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM1F_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1G: MPAM Locator structure.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 12.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1G[] =
+{
+ {ACPI_DMT_UINT64, ACPI_MPAM1G_OFFSET (Descriptor1), "Descriptor1", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM1G_OFFSET (Descriptor2), "Descriptor2", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 2: MPAM Functional dependency descriptor.
+ * Arm's DEN0065 MPAM ACPI 2.0. Table 10.
+ */
+ACPI_DMTABLE_INFO AcpiDmTableInfoMpam2[] =
+{
+ {ACPI_DMT_UINT32, ACPI_MPAM2_OFFSET (Producer), "Producer", 0},
+ {ACPI_DMT_UINT32, ACPI_MPAM2_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/*******************************************************************************
*
@@ -1062,6 +1420,39 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[] =
/*******************************************************************************
*
+ * MRRM - Memory Range and Region Mapping Table
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMrrm[] =
+{
+ {ACPI_DMT_UINT8, ACPI_MRRM_OFFSET (MaxMemRegion), "Max Memory Regions", 0},
+ {ACPI_DMT_UINT8, ACPI_MRRM_OFFSET (Flags), "Region Assignment Type", 0},
+ {ACPI_DMT_BUF26, ACPI_MRRM_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* MRRM Subtable */
+
+/* 0: Memory Range entry */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoMrrm0[] =
+{
+ {ACPI_DMT_UINT16, ACPI_MRRM0_OFFSET (Header.Type), "Memory Range", 0},
+ {ACPI_DMT_UINT16, ACPI_MRRM0_OFFSET (Header.Length), "Length", DT_LENGTH},
+ {ACPI_DMT_UINT32, ACPI_MRRM0_OFFSET (Reserved0), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_MRRM0_OFFSET (AddrBase), "System Address Base", 0},
+ {ACPI_DMT_UINT64, ACPI_MRRM0_OFFSET (AddrLen), "System Address Length", 0},
+ {ACPI_DMT_UINT16, ACPI_MRRM0_OFFSET (RegionIdFlags), "Region Valid Flags", 0},
+ {ACPI_DMT_UINT8, ACPI_MRRM0_OFFSET (LocalRegionId), "Static Local Region ID", 0},
+ {ACPI_DMT_UINT8, ACPI_MRRM0_OFFSET (RemoteRegionId), "Static Remote Region ID", 0},
+ {ACPI_DMT_UINT32, ACPI_MRRM0_OFFSET (Reserved1), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
* MSCT - Maximum System Characteristics Table (ACPI 4.0)
*
******************************************************************************/
@@ -1259,206 +1650,6 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[] =
/*******************************************************************************
*
- * NHLT - Non HD Audio Link Table. Conforms to Intel Smart Sound Technology
- * NHLT Specification, January 2020 Revision 0.8.1
- *
- ******************************************************************************/
-
-/* Main table */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt[] =
-{
- {ACPI_DMT_UINT8, ACPI_NHLT_OFFSET (EndpointCount), "Endpoint Count", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Endpoint config */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[] =
-{
- {ACPI_DMT_UINT32, ACPI_NHLT0_OFFSET (DescriptorLength), "Descriptor Length", DT_LENGTH},
- {ACPI_DMT_NHLT1, ACPI_NHLT0_OFFSET (LinkType), "Link Type", 0},
- {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (InstanceId), "Instance Id", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (VendorId), "Vendor Id", 0},
- {ACPI_DMT_NHLT1e, ACPI_NHLT0_OFFSET (DeviceId), "Device Id", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT0_OFFSET (RevisionId), "Revision Id", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT0_OFFSET (SubsystemId), "Subsystem Id", 0},
- {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (DeviceType), "Device Type", 0},
- {ACPI_DMT_NHLT1a, ACPI_NHLT0_OFFSET (Direction), "Direction", 0},
- {ACPI_DMT_UINT8, ACPI_NHLT0_OFFSET (VirtualBusId), "Virtual Bus Id", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Device_Specific config */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[] =
-{
- {ACPI_DMT_UINT32, ACPI_NHLT1_OFFSET (CapabilitiesSize), "Capabilities Size", 0},
- {ACPI_DMT_UINT8, ACPI_NHLT1_OFFSET (VirtualSlot), "Virtual Slot", 0},
- {ACPI_DMT_NHLT1f, ACPI_NHLT1_OFFSET (ConfigType), "Config Type", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Wave Format Extensible */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[] =
-{
- {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (FormatTag), "Format Tag", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ChannelCount), "Channel Count", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (SamplesPerSec), "Samples Per Second", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (AvgBytesPerSec), "Average Bytes Per Second", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (BlockAlign), "Block Alignment", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (BitsPerSample), "Bits Per Sample", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ExtraFormatSize), "Extra Format Size", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT2_OFFSET (ValidBitsPerSample), "Valid Bits Per Sample", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT2_OFFSET (ChannelMask), "Channel Mask", 0},
- {ACPI_DMT_UUID, ACPI_NHLT2_OFFSET (SubFormatGuid), "SubFormat GUID", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Format Config (wave_format_extensible structure) */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[] =
-{
- {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.FormatTag), "Format Tag", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ChannelCount), "Channel Count", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.SamplesPerSec), "Samples Per Second", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.AvgBytesPerSec), "Average Bytes Per Second", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.BlockAlign), "Block Alignment", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.BitsPerSample), "Bits Per Sample", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ExtraFormatSize), "Extra Format Size", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT3_OFFSET (Format.ValidBitsPerSample), "Valid Bits Per Sample", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (Format.ChannelMask), "Channel Mask", 0},
- {ACPI_DMT_UUID, ACPI_NHLT3_OFFSET (Format.SubFormatGuid), "SubFormat GUID", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT3_OFFSET (CapabilitySize), "Capabilities Length", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/*
- * We treat the binary Capabilities field as its own subtable (to make
- * ACPI_DMT_RAW_BUFFER work properly).
- */
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[] =
-{
- {ACPI_DMT_RAW_BUFFER, 0, "Capabilities", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Formats Config */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[] =
-{
- {ACPI_DMT_UINT8, ACPI_NHLT4_OFFSET (FormatsCount), "Formats Count", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Specific Config, CapabilitiesSize == 2 */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[] =
-{
- {ACPI_DMT_UINT8, ACPI_NHLT5_OFFSET (VirtualSlot), "Virtual Slot", 0},
- {ACPI_DMT_NHLT1f, ACPI_NHLT5_OFFSET (ConfigType), "Config Type", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Specific Config, CapabilitiesSize == 3 */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[] =
-{
- {ACPI_DMT_UINT8, ACPI_NHLT5A_OFFSET (VirtualSlot), "Virtual Slot", 0},
- {ACPI_DMT_NHLT1f, ACPI_NHLT5A_OFFSET (ConfigType), "Config Type", 0},
- {ACPI_DMT_NHLT1d, ACPI_NHLT5A_OFFSET (ArrayType), "Array Type", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Specific Config, CapabilitiesSize == 0 */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[] =
-{
- {ACPI_DMT_UINT32, ACPI_NHLT5B_OFFSET (CapabilitiesSize), "Capabilities Size", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Specific Config, CapabilitiesSize == 1 */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[] =
-{
- {ACPI_DMT_UINT8, ACPI_NHLT5C_OFFSET (VirtualSlot), "Virtual Slot", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Microphone array Config */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6a[] =
-{
- {ACPI_DMT_UINT8, ACPI_NHLT6A_OFFSET (MicrophoneCount), "Microphone Count", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Render Feedback Device Config, CapabilitiesSize == 7 */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6b[] =
-{
- {ACPI_DMT_UINT8, ACPI_NHLT6B_OFFSET (FeedbackVirtualSlot), "Feedback Virtual Slot", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6B_OFFSET (FeedbackChannels), "Feedback Channels", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6B_OFFSET (FeedbackValidBitsPerSample),"Valid Bits Per Sample", 0},
- ACPI_DMT_TERMINATOR
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[] =
-{
- {ACPI_DMT_NHLT1b, ACPI_NHLT6_OFFSET (Type), "Type", 0},
- {ACPI_DMT_NHLT1c, ACPI_NHLT6_OFFSET (Panel), "Panel", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (SpeakerPositionDistance), "Speaker Position Distance", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (HorizontalOffset), "Horizontal Offset", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (VerticalOffset), "Vertical Offset", 0},
- {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (FrequencyLowBand), "Frequency Low Band", 0},
- {ACPI_DMT_UINT8, ACPI_NHLT6_OFFSET (FrequencyHighBand), "Frequency High Band", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (DirectionAngle), "Direction Angle", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (ElevationAngle), "Elevation Angle", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkVerticalAngleBegin), "Work Vertical Angle Begin", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkVerticalAngleEnd), "Work Vertical Angle End", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkHorizontalAngleBegin), "Work Horizontal Angle Begin", 0},
- {ACPI_DMT_UINT16, ACPI_NHLT6_OFFSET (WorkHorizontalAngleEnd), "Work Horizontal Angle End", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Number of DeviceInfo structures */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[] =
-{
- {ACPI_DMT_UINT8, ACPI_NHLT7_OFFSET (StructureCount), "Device Info struct count", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* The DeviceInfo structure */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[] =
-{
- {ACPI_DMT_UUID, ACPI_NHLT7A_OFFSET (DeviceId), "Device ID GUID", 0},
- {ACPI_DMT_UINT8, ACPI_NHLT7A_OFFSET (DeviceInstanceId), "Device Instance ID", 0},
- {ACPI_DMT_UINT8, ACPI_NHLT7A_OFFSET (DevicePortId), "Device Port ID", 0},
- ACPI_DMT_TERMINATOR
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7b[] =
-{
- {ACPI_DMT_RAW_BUFFER, 0, "Bytes", 0},
- ACPI_DMT_TERMINATOR
-};
-
-/* Sensitivity Extension */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt9[] =
-{
- {ACPI_DMT_UINT32, ACPI_NHLT9_OFFSET (SNR), "Signal-to-noise ratio", 0},
- {ACPI_DMT_UINT32, ACPI_NHLT9_OFFSET (Sensitivity), "Mic Sensitivity", 0},
- ACPI_DMT_TERMINATOR
-};
-
-
-/*******************************************************************************
- *
* PCCT - Platform Communications Channel Table (ACPI 5.0)
*
******************************************************************************/
@@ -1652,11 +1843,13 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[] =
*
******************************************************************************/
+/* Common subtable header */
+
ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[] =
{
- {ACPI_DMT_PHAT, ACPI_PHATH_OFFSET (Type), "Subtable Type", 0},
- {ACPI_DMT_UINT16, ACPI_PHATH_OFFSET (Length), "Length", 0},
- {ACPI_DMT_UINT8, ACPI_PHATH_OFFSET (Revision), "Revision", 0},
+ {ACPI_DMT_PHAT, ACPI_PHATH_OFFSET (Type), "Subtable Type", 0},
+ {ACPI_DMT_UINT16, ACPI_PHATH_OFFSET (Length), "Length", DT_LENGTH},
+ {ACPI_DMT_UINT8, ACPI_PHATH_OFFSET (Revision), "Revision", 0},
ACPI_DMT_TERMINATOR
};
@@ -1664,16 +1857,16 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[] =
ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[] =
{
- {ACPI_DMT_UINT24, ACPI_PHAT0_OFFSET (Reserved), "Reserved", 0},
- {ACPI_DMT_UINT32, ACPI_PHAT0_OFFSET (ElementCount), "Element Count", 0},
+ {ACPI_DMT_UINT24, ACPI_PHAT0_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_PHAT0_OFFSET (ElementCount), "Element Count", 0},
ACPI_DMT_TERMINATOR
};
ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[] =
{
- {ACPI_DMT_UUID, ACPI_PHAT0A_OFFSET (Guid), "GUID", 0},
- {ACPI_DMT_UINT64, ACPI_PHAT0A_OFFSET (VersionValue), "Version Value", 0},
- {ACPI_DMT_UINT32, ACPI_PHAT0A_OFFSET (ProducerId), "Producer ID", 0},
+ {ACPI_DMT_UUID, ACPI_PHAT0A_OFFSET (Guid), "GUID", 0},
+ {ACPI_DMT_UINT64, ACPI_PHAT0A_OFFSET (VersionValue), "Version Value", 0},
+ {ACPI_DMT_UINT32, ACPI_PHAT0A_OFFSET (ProducerId), "Producer ID", 0},
ACPI_DMT_TERMINATOR
};
@@ -1681,22 +1874,22 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[] =
ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1[] =
{
- {ACPI_DMT_UINT16, ACPI_PHAT1_OFFSET (Reserved), "Reserved", 0},
- {ACPI_DMT_UINT8, ACPI_PHAT1_OFFSET (Health), "Health", 0},
- {ACPI_DMT_UUID, ACPI_PHAT1_OFFSET (DeviceGuid), "Device GUID", 0},
- {ACPI_DMT_UINT32, ACPI_PHAT1_OFFSET (DeviceSpecificOffset), "Device specific offset", 0},
+ {ACPI_DMT_UINT16, ACPI_PHAT1_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_PHAT1_OFFSET (Health), "Health", 0},
+ {ACPI_DMT_UUID, ACPI_PHAT1_OFFSET (DeviceGuid), "Device GUID", 0},
+ {ACPI_DMT_UINT32, ACPI_PHAT1_OFFSET (DeviceSpecificOffset), "Device-Specific Offset", 0},
ACPI_DMT_TERMINATOR
};
ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1a[] =
{
- {ACPI_DMT_STRING, 0, "Namepath", 0},
+ {ACPI_DMT_UNICODE, 0, "Device Path", 0},
ACPI_DMT_TERMINATOR
};
ACPI_DMTABLE_INFO AcpiDmTableInfoPhat1b[] =
{
- {ACPI_DMT_RAW_BUFFER, 0, "Vendor Data", 0},
+ {ACPI_DMT_RAW_BUFFER, 0, "Device-Specific Data", DT_OPTIONAL},
ACPI_DMT_TERMINATOR
};
@@ -1895,7 +2088,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[] =
{ACPI_DMT_UINT16, ACPI_PRMT1_OFFSET (Length), "Length", 0},
{ACPI_DMT_UUID, ACPI_PRMT1_OFFSET (HandlerGuid[0]), "Handler GUID", 0},
{ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (HandlerAddress), "Handler address", 0},
- {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (StaticDataBufferAddress),"Satic Data Address", 0},
+ {ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (StaticDataBufferAddress),"Static Data Address", 0},
{ACPI_DMT_UINT64, ACPI_PRMT1_OFFSET (AcpiParamBufferAddress), "ACPI Parameter Address", 0},
ACPI_DMT_NEW_LINE,
ACPI_DMT_TERMINATOR
@@ -1918,6 +2111,31 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[] =
/*******************************************************************************
*
+ * RAS2 - RAS2 Feature table (ACPI 6.5)
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRas2[] =
+{
+ {ACPI_DMT_UINT16, ACPI_RAS2_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_RAS2_OFFSET (NumPccDescs), "Number of PCC Descriptors", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* RAS2 PCC Descriptor */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRas2PccDesc[] =
+{
+ {ACPI_DMT_UINT8, ACPI_RAS2_PCC_DESC_OFFSET (ChannelId), "Channel ID", 0},
+ {ACPI_DMT_UINT16, ACPI_RAS2_PCC_DESC_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_RAS2_PCC_DESC_OFFSET (FeatureType), "Feature Type", 0},
+ {ACPI_DMT_UINT32, ACPI_RAS2_PCC_DESC_OFFSET (Instance), "Instance", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
* RGRT - Regulatory Graphics Resource Table
*
******************************************************************************/
@@ -1943,6 +2161,178 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[] =
/*******************************************************************************
*
+ * RHCT - RISC-V Hart Capabilities Table
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[] =
+{
+ {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT64, ACPI_RHCT_OFFSET (TimeBaseFreq), "Timer Base Frequency", 0},
+ {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeCount), "Number of nodes", 0},
+ {ACPI_DMT_UINT32, ACPI_RHCT_OFFSET (NodeOffset), "Offset to the node array", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/* Common Subtable header (one per Subtable) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[] =
+{
+ {ACPI_DMT_RHCT, ACPI_RHCTH_OFFSET (Type), "Subtable Type", 0},
+ {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Length), "Length", DT_LENGTH},
+ {ACPI_DMT_UINT16, ACPI_RHCTH_OFFSET (Revision), "Revision", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 0: ISA string type */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[] =
+{
+ {ACPI_DMT_UINT16, ACPI_RHCT0_OFFSET (IsaLength), "ISA string length", 0},
+ {ACPI_DMT_STRING, ACPI_RHCT0_OFFSET (Isa[0]), "ISA string", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/* Optional padding field */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[] =
+{
+ {ACPI_DMT_RAW_BUFFER, 0, "Optional Padding", DT_OPTIONAL},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1: CMO node type */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[] =
+{
+ {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbomSize), "CBOM Block Size", 0},
+ {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbopSize), "CBOP Block Size", 0},
+ {ACPI_DMT_UINT8, ACPI_RHCT1_OFFSET (CbozSize), "CBOZ Block Size", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 2: MMU node type */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[] =
+{
+ {ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_RHCT2_OFFSET (MmuType), "MMU Type", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 0xFFFF: Hart Info type */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[] =
+{
+ {ACPI_DMT_UINT16, ACPI_RHCTFFFF_OFFSET (NumOffsets), "Number of offsets", 0},
+ {ACPI_DMT_UINT32, ACPI_RHCTFFFF_OFFSET (Uid), "Processor UID", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[] =
+{
+ {ACPI_DMT_UINT32, 0, "Nodes", DT_OPTIONAL},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
+ * RIMT - RISC-V IO Mapping Table
+ *
+ * https://github.com/riscv-non-isa/riscv-acpi-rimt
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRimt[] =
+{
+ {ACPI_DMT_UINT32, ACPI_RIMT_OFFSET (NumNodes), "Number of RIMT Nodes", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMT_OFFSET (NodeOffset), "Offset to RIMT Node Array", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMT_OFFSET (Reserved), "Reserved", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/* Common Subtable header (one per Subtable) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRimtNodeHdr[] =
+{
+ {ACPI_DMT_UINT8, ACPI_RIMTH_OFFSET (Type), "Type", 0},
+ {ACPI_DMT_UINT8, ACPI_RIMTH_OFFSET (Revision), "Revision", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTH_OFFSET (Length), "Length", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTH_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTH_OFFSET (Id), "ID", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 0: IOMMU Node type */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRimtIommu[] =
+{
+ {ACPI_DMT_NAME8, ACPI_RIMTI_OFFSET (HardwareId), "Hardware ID", 0},
+ {ACPI_DMT_UINT64, ACPI_RIMTI_OFFSET (BaseAddress), "Base Address", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMTI_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMTI_OFFSET (ProximityDomain), "Proximity Domain", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTI_OFFSET (PcieSegmentNumber), "PCIe Segment number", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTI_OFFSET (PcieBdf), "PCIe B/D/F", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTI_OFFSET (NumInterruptWires), "Number of interrupt wires", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTI_OFFSET (InterruptWireOffset), "Interrupt wire array offset", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRimtIommuWire[] =
+{
+ {ACPI_DMT_UINT32, ACPI_RIMTW_OFFSET (IrqNum), "Interrupt Number", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMTW_OFFSET (Flags), "Flags", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 1: PCIE Root Complex Node type */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRimtPcieRc[] =
+{
+ {ACPI_DMT_UINT32, ACPI_RIMTP_OFFSET (Flags), "Flags", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTP_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTP_OFFSET (PcieSegmentNumber), "PCIe Segment number", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTP_OFFSET (IdMappingOffset), "ID mapping array offset", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTP_OFFSET (NumIdMappings), "Number of ID mappings", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRimtIdMapping[] =
+{
+ {ACPI_DMT_UINT32, ACPI_RIMTM_OFFSET (SourceIdBase), "Source ID Base", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMTM_OFFSET (NumIds), "Number of IDs", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMTM_OFFSET (DestIdBase), "Destination Device ID Base", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMTM_OFFSET (DestOffset), "Destination IOMMU Offset", 0},
+ {ACPI_DMT_UINT32, ACPI_RIMTM_OFFSET (Flags), "Flags", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+/* 2: Platform Device Node type */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRimtPlatDev[] =
+{
+ {ACPI_DMT_UINT16, ACPI_RIMTN_OFFSET (IdMappingOffset), "ID mapping array offset", 0},
+ {ACPI_DMT_UINT16, ACPI_RIMTN_OFFSET (NumIdMappings), "Number of ID mappings", 0},
+ {ACPI_DMT_STRING, ACPI_RIMTN_OFFSET (DeviceName[0]), "Device Object Name", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoRimtPlatDevPad[] =
+{
+ {ACPI_DMT_RAW_BUFFER, 0, "Padding", DT_OPTIONAL},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
* S3PT - S3 Performance Table
*
******************************************************************************/
diff --git a/sys/contrib/dev/acpica/common/dmtbinfo3.c b/sys/contrib/dev/acpica/common/dmtbinfo3.c
index 38fe8f9d23ac..0935fc86aff9 100644
--- a/sys/contrib/dev/acpica/common/dmtbinfo3.c
+++ b/sys/contrib/dev/acpica/common/dmtbinfo3.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -192,6 +192,23 @@
/*******************************************************************************
*
+ * CCEL - CC-Event Log Table
+ *
+ ******************************************************************************/
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoCcel[] =
+{
+ {ACPI_DMT_UINT8, ACPI_CCEL_OFFSET (CCType), "CC Type", 0},
+ {ACPI_DMT_UINT8, ACPI_CCEL_OFFSET (CCSubType), "CC Sub Type", 0},
+ {ACPI_DMT_UINT16, ACPI_CCEL_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT64, ACPI_CCEL_OFFSET (LogAreaMinimumLength), "Log Area Minimum Length", 0},
+ {ACPI_DMT_UINT64, ACPI_CCEL_OFFSET (LogAreaStartAddress), "Log Area Start Address", 0},
+ ACPI_DMT_TERMINATOR
+};
+
+
+/*******************************************************************************
+ *
* SLIC - Software Licensing Description Table. This table contains the standard
* ACPI header followed by proprietary data structures
*
@@ -238,7 +255,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[] =
{ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (StopBits), "Stop Bits", 0},
{ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (FlowControl), "Flow Control", 0},
{ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (TerminalType), "Terminal Type", 0},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (Reserved2), "Reserved", 0},
+ {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (Language), "Language", 0},
{ACPI_DMT_UINT16, ACPI_SPCR_OFFSET (PciDeviceId), "PCI Device ID", 0},
{ACPI_DMT_UINT16, ACPI_SPCR_OFFSET (PciVendorId), "PCI Vendor ID", 0},
{ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciBus), "PCI Bus", 0},
@@ -246,7 +263,11 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[] =
{ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciFunction), "PCI Function", 0},
{ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (PciFlags), "PCI Flags", 0},
{ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciSegment), "PCI Segment", 0},
- {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (Reserved2), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (UartClkFreq), "Uart Clock Freq", 0},
+ {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (PreciseBaudrate), "Precise Baud rate", 0},
+ {ACPI_DMT_UINT16, ACPI_SPCR_OFFSET (NameSpaceStringLength), "NameSpaceStringLength", 0},
+ {ACPI_DMT_UINT16, ACPI_SPCR_OFFSET (NameSpaceStringOffset), "NameSpaceStringOffset", 0},
+ {ACPI_DMT_STRING, ACPI_SPCR_OFFSET (NameSpaceString), "NamespaceString", 0},
ACPI_DMT_TERMINATOR
};
@@ -358,7 +379,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[] =
ACPI_DMT_TERMINATOR
};
-/* 4: GCC ITS Affinity (ACPI 6.2) */
+/* 4: GIC ITS Affinity (ACPI 6.2) */
ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[] =
{
@@ -396,6 +417,19 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoSrat6[] =
ACPI_DMT_TERMINATOR
};
+/* 7: RINTC Affinity Structure (ACPI 6.6) */
+
+ACPI_DMTABLE_INFO AcpiDmTableInfoSrat7[] =
+{
+ {ACPI_DMT_UINT16, ACPI_SRAT7_OFFSET (Reserved), "Reserved", 0},
+ {ACPI_DMT_UINT32, ACPI_SRAT7_OFFSET (ProximityDomain), "Proximity Domain", 0},
+ {ACPI_DMT_UINT32, ACPI_SRAT7_OFFSET (AcpiProcessorUid), "Acpi Processor UID", 0},
+ {ACPI_DMT_UINT32, ACPI_SRAT7_OFFSET (Flags), "Flags (decoded below)", DT_FLAG},
+ {ACPI_DMT_FLAG0, ACPI_SRAT7_FLAG_OFFSET (Flags,0), "Enabled", 0},
+ {ACPI_DMT_UINT32, ACPI_SRAT7_OFFSET (ClockDomain), "Clock Domain", 0},
+ ACPI_DMT_TERMINATOR
+};
+
/*******************************************************************************
*
* STAO - Status Override Table (_STA override) - ACPI 6.0
diff --git a/sys/contrib/dev/acpica/common/getopt.c b/sys/contrib/dev/acpica/common/getopt.c
index 15576d4f2db5..535e7a00bc8f 100644
--- a/sys/contrib/dev/acpica/common/getopt.c
+++ b/sys/contrib/dev/acpica/common/getopt.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslallocate.c b/sys/contrib/dev/acpica/compiler/aslallocate.c
index 9e1478eb50f0..57e538b534e5 100644
--- a/sys/contrib/dev/acpica/compiler/aslallocate.c
+++ b/sys/contrib/dev/acpica/compiler/aslallocate.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -295,9 +295,13 @@ void
UtFreeLineBuffers (
void)
{
-
free (AslGbl_CurrentLineBuffer);
+
free (AslGbl_MainTokenBuffer);
+
free (AslGbl_MacroTokenBuffer);
+
+ free (AslGbl_MacroTokenReplaceBuffer);
+
free (AslGbl_ExpressionTokenBuffer);
}
diff --git a/sys/contrib/dev/acpica/compiler/aslanalyze.c b/sys/contrib/dev/acpica/compiler/aslanalyze.c
index 4e319ef2c792..625611a630de 100644
--- a/sys/contrib/dev/acpica/compiler/aslanalyze.c
+++ b/sys/contrib/dev/acpica/compiler/aslanalyze.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -572,10 +572,22 @@ ApCheckForGpeNameConflict (
ACPI_PARSE_OBJECT *NextOp;
UINT32 GpeNumber;
char Name[ACPI_NAMESEG_SIZE + 1];
- char Target[ACPI_NAMESEG_SIZE];
+ char Target[ACPI_NAMESEG_SIZE] ACPI_NONSTRING;
- /* Need a null-terminated string version of NameSeg */
+ /**
+ * Need a null-terminated string version of NameSeg
+ *
+ * NOTE: during a review on Name[ACPI_NAMESEG_SIZE + 1] having an extra
+ * byte[1], compiler testing exhibited a difference in behavior between
+ * GCC and Clang[2] (at least; MSVC may also exhibit the same) in
+ * how optimization is done. The extra byte is needed to ensure
+ * the signature does not get mangled, subsequently avoiding
+ * GpeNumber being a completely different return value from strtoul.
+ *
+ * [1] https://github.com/acpica/acpica/pull/1019#discussion_r2058687704
+ * [2] https://github.com/acpica/acpica/pull/1019#discussion_r2061953039
+ */
ACPI_MOVE_32_TO_32 (Name, Op->Asl.NameSeg);
Name[ACPI_NAMESEG_SIZE] = 0;
diff --git a/sys/contrib/dev/acpica/compiler/aslascii.c b/sys/contrib/dev/acpica/compiler/aslascii.c
index daddc70f8972..1de3d763c765 100644
--- a/sys/contrib/dev/acpica/compiler/aslascii.c
+++ b/sys/contrib/dev/acpica/compiler/aslascii.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslbtypes.c b/sys/contrib/dev/acpica/compiler/aslbtypes.c
index 3b4424b58cda..539cd7977b4e 100644
--- a/sys/contrib/dev/acpica/compiler/aslbtypes.c
+++ b/sys/contrib/dev/acpica/compiler/aslbtypes.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -501,10 +501,11 @@ AnGetBtype (
ACPI_PARSE_OBJECT *ReferencedNode;
UINT32 ThisNodeBtype = 0;
+ ACPI_FUNCTION_NAME (AnGetBtype);
if (!Op)
{
- AcpiOsPrintf ("Null Op in AnGetBtype\n");
+ AcpiOsPrintf ("Null Op in %s\n", ACPI_GET_FUNCTION_NAME);
return (ACPI_UINT32_MAX);
}
diff --git a/sys/contrib/dev/acpica/compiler/aslcache.c b/sys/contrib/dev/acpica/compiler/aslcache.c
index cf9775f8ccfd..9f917ff32945 100644
--- a/sys/contrib/dev/acpica/compiler/aslcache.c
+++ b/sys/contrib/dev/acpica/compiler/aslcache.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -210,7 +210,8 @@ UtLocalCacheCalloc (
}
}
- if ((AslGbl_StringCacheNext + Length) >= AslGbl_StringCacheLast)
+ if ((!AslGbl_StringCacheNext) ||
+ ((AslGbl_StringCacheNext + Length) >= AslGbl_StringCacheLast))
{
/* Allocate a new buffer */
diff --git a/sys/contrib/dev/acpica/compiler/aslcodegen.c b/sys/contrib/dev/acpica/compiler/aslcodegen.c
index ca2d5a727972..684c59f802e9 100644
--- a/sys/contrib/dev/acpica/compiler/aslcodegen.c
+++ b/sys/contrib/dev/acpica/compiler/aslcodegen.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -153,6 +153,7 @@
#include "aslcompiler.y.h"
#include <contrib/dev/acpica/include/amlcode.h>
#include <contrib/dev/acpica/include/acconvert.h>
+#include <contrib/dev/acpica/include/actbinfo.h>
#define _COMPONENT ACPI_COMPILER
ACPI_MODULE_NAME ("aslcodegen")
@@ -181,6 +182,10 @@ static void
CgUpdateHeader (
ACPI_PARSE_OBJECT *Op);
+static void
+CgUpdateCdatHeader (
+ ACPI_PARSE_OBJECT *Op);
+
/*******************************************************************************
*
@@ -207,7 +212,14 @@ CgGenerateAmlOutput (
CgAmlWriteWalk, NULL, NULL);
DbgPrint (ASL_TREE_OUTPUT, ASL_PARSE_TREE_HEADER2);
- CgUpdateHeader (AslGbl_CurrentDB);
+ if (AcpiGbl_CDAT)
+ {
+ CgUpdateCdatHeader (AslGbl_CurrentDB);
+ }
+ else
+ {
+ CgUpdateHeader (AslGbl_CurrentDB);
+ }
}
@@ -658,6 +670,67 @@ CgWriteTableHeader (
/*******************************************************************************
*
+ * FUNCTION: CgUpdateCdatHeader
+ *
+ * PARAMETERS: Op - Op for the Definition Block
+ *
+ * RETURN: None.
+ *
+ * DESCRIPTION: Complete the ACPI table by calculating the checksum and
+ * re-writing the header for the input definition block
+ *
+ ******************************************************************************/
+
+static void
+CgUpdateCdatHeader (
+ ACPI_PARSE_OBJECT *Op)
+{
+ signed char Sum;
+ UINT32 i;
+ UINT32 Length;
+ UINT8 FileByte;
+ UINT8 Checksum;
+
+
+ /* Calculate the checksum over the entire definition block */
+
+ Sum = 0;
+ Length = sizeof (ACPI_TABLE_CDAT) + Op->Asl.AmlSubtreeLength;
+ FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset);
+
+ for (i = 0; i < Length; i++)
+ {
+ if (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1) != AE_OK)
+ {
+ AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, NULL,
+ "Table length is greater than size of the input file");
+ return;
+ }
+
+ Sum = (signed char) (Sum + FileByte);
+ }
+
+ Checksum = (UINT8) (0 - Sum);
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "Computed checksum = %X\n", Checksum);
+
+ /* Re-write the checksum byte */
+
+ FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset +
+ ACPI_CDAT_OFFSET (Checksum));
+
+ FlWriteFile (ASL_FILE_AML_OUTPUT, &Checksum, 1);
+
+ /*
+ * Seek to the end of the file. This is done to support multiple file
+ * compilation. Doing this simplifies other parts of the codebase because
+ * it eliminates the need to seek for a different starting place.
+ */
+ FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset + Length);
+}
+
+/*******************************************************************************
+ *
* FUNCTION: CgUpdateHeader
*
* PARAMETERS: Op - Op for the Definition Block
diff --git a/sys/contrib/dev/acpica/compiler/aslcompile.c b/sys/contrib/dev/acpica/compiler/aslcompile.c
index 5c1b40a1bc69..6e8ce6aae2c9 100644
--- a/sys/contrib/dev/acpica/compiler/aslcompile.c
+++ b/sys/contrib/dev/acpica/compiler/aslcompile.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -241,7 +241,7 @@ CmDoCompile (
if (AslGbl_SyntaxError)
{
- fprintf (stderr,
+ AslError (ASL_ERROR, ASL_MSG_SYNTAX, NULL,
"Compiler aborting due to parser-detected syntax error(s)\n");
/* Flag this error in the FileNode for compilation summary */
@@ -250,6 +250,8 @@ CmDoCompile (
FileNode->ParserErrorDetected = TRUE;
AslGbl_ParserErrorDetected = TRUE;
LsDumpParseTree ();
+ AePrintErrorLog(ASL_FILE_STDERR);
+
goto ErrorExit;
}
@@ -267,6 +269,8 @@ CmDoCompile (
goto ErrorExit;
}
+ AePrintErrorLog(ASL_FILE_STDERR);
+
/* Flush out any remaining source after parse tree is complete */
Event = UtBeginEvent ("Flush source input");
@@ -283,10 +287,13 @@ CmDoCompile (
LsDumpParseTree ();
+ AslGbl_ParserErrorDetected = FALSE;
+ AslGbl_SyntaxError = FALSE;
UtEndEvent (Event);
UtEndEvent (FullCompile);
- return (AE_OK);
+ AslGbl_ParserErrorDetected = FALSE;
+ AslGbl_SyntaxError = FALSE;
ErrorExit:
UtEndEvent (FullCompile);
return (AE_ERROR);
@@ -690,18 +697,24 @@ AslCompilerFileHeader (
break;
}
- /* Compilation header with timestamp */
-
- Aclock = time (NULL);
- NewTime = ctime (&Aclock);
+ /* Compilation header (with timestamp) */
FlPrintFile (FileId,
- "%sCompilation of \"%s\" -",
+ "%sCompilation of \"%s\"",
Prefix, AslGbl_Files[ASL_FILE_INPUT].Filename);
- if (NewTime)
+ if (!AslGbl_Deterministic)
+ {
+ Aclock = time (NULL);
+ NewTime = ctime (&Aclock);
+ if (NewTime)
+ {
+ FlPrintFile (FileId, " - %s%s\n", NewTime, Prefix);
+ }
+ }
+ else
{
- FlPrintFile (FileId, " %s%s\n", NewTime, Prefix);
+ FlPrintFile (FileId, "\n");
}
switch (FileId)
@@ -919,7 +932,6 @@ CmCleanupAndExit (
ASL_MAX_ERROR_COUNT);
}
- AslGbl_ExceptionCount[ASL_ERROR] = 0;
UtDisplaySummary (ASL_FILE_STDOUT);
/*
diff --git a/sys/contrib/dev/acpica/compiler/aslcompiler.h b/sys/contrib/dev/acpica/compiler/aslcompiler.h
index 9a30a7e04bb3..d131b949252a 100644
--- a/sys/contrib/dev/acpica/compiler/aslcompiler.h
+++ b/sys/contrib/dev/acpica/compiler/aslcompiler.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -1566,6 +1566,9 @@ ASL_RESOURCE_NODE *
RsDoPinGroupConfigDescriptor (
ASL_RESOURCE_INFO *Info);
+ASL_RESOURCE_NODE *
+RsDoClockInputDescriptor (
+ ASL_RESOURCE_INFO *Info);
/*
* aslrestype2d - DWord address descriptors
@@ -1579,9 +1582,12 @@ RsDoDwordMemoryDescriptor (
ASL_RESOURCE_INFO *Info);
ASL_RESOURCE_NODE *
-RsDoDwordSpaceDescriptor (
+RsDoDwordPccDescriptor (
ASL_RESOURCE_INFO *Info);
+ASL_RESOURCE_NODE *
+RsDoDwordSpaceDescriptor (
+ ASL_RESOURCE_INFO *Info);
/*
* aslrestype2e - Extended address descriptors
@@ -1611,6 +1617,10 @@ RsDoQwordMemoryDescriptor (
ASL_RESOURCE_INFO *Info);
ASL_RESOURCE_NODE *
+RsDoQwordPccDescriptor (
+ ASL_RESOURCE_INFO *Info);
+
+ASL_RESOURCE_NODE *
RsDoQwordSpaceDescriptor (
ASL_RESOURCE_INFO *Info);
@@ -1623,6 +1633,10 @@ RsDoWordIoDescriptor (
ASL_RESOURCE_INFO *Info);
ASL_RESOURCE_NODE *
+RsDoWordPccDescriptor (
+ ASL_RESOURCE_INFO *Info);
+
+ASL_RESOURCE_NODE *
RsDoWordSpaceDescriptor (
ASL_RESOURCE_INFO *Info);
diff --git a/sys/contrib/dev/acpica/compiler/aslcompiler.l b/sys/contrib/dev/acpica/compiler/aslcompiler.l
index 423f201dc765..5e94f9626018 100644
--- a/sys/contrib/dev/acpica/compiler/aslcompiler.l
+++ b/sys/contrib/dev/acpica/compiler/aslcompiler.l
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -438,6 +438,7 @@ NamePathTail [.]{NameSeg}
"DMA" { count (1); return (PARSEOP_DMA); }
"DWordIO" { count (1); return (PARSEOP_DWORDIO); }
"DWordMemory" { count (1); return (PARSEOP_DWORDMEMORY); }
+"DWordPcc" { count (1); return (PARSEOP_DWORDPCC); }
"DWordSpace" { count (1); return (PARSEOP_DWORDSPACE); }
"EndDependentFn" { count (1); return (PARSEOP_ENDDEPENDENTFN); }
"ExtendedIO" { count (1); return (PARSEOP_EXTENDEDIO); }
@@ -461,8 +462,10 @@ NamePathTail [.]{NameSeg}
"PinGroup" { count (1); return (PARSEOP_PINGROUP); }
"PinGroupConfig" { count (1); return (PARSEOP_PINGROUPCONFIG); }
"PinGroupFunction" { count (1); return (PARSEOP_PINGROUPFUNCTION); }
+"ClockInput" { count (1); return (PARSEOP_CLOCKINPUT); }
"QWordIO" { count (1); return (PARSEOP_QWORDIO); }
"QWordMemory" { count (1); return (PARSEOP_QWORDMEMORY); }
+"QWordPcc" { count (1); return (PARSEOP_DWORDPCC); }
"QWordSpace" { count (1); return (PARSEOP_QWORDSPACE); }
"Register" { count (1); return (PARSEOP_REGISTER); }
"SpiSerialBus" { count (1); return (PARSEOP_SPI_SERIALBUS); }
@@ -475,6 +478,7 @@ NamePathTail [.]{NameSeg}
"VendorShort" { count (1); return (PARSEOP_VENDORSHORT); }
"WordBusNumber" { count (1); return (PARSEOP_WORDBUSNUMBER); }
"WordIO" { count (1); return (PARSEOP_WORDIO); }
+"WordPcc" { count (1); return (PARSEOP_DWORDPCC); }
"WordSpace" { count (1); return (PARSEOP_WORDSPACE); }
@@ -665,6 +669,17 @@ NamePathTail [.]{NameSeg}
"PullDown" { count (0); return (PARSEOP_PIN_PULLDOWN); }
"PullNone" { count (0); return (PARSEOP_PIN_NOPULL); }
+ /* ClockScaleKeyword: Resource Descriptors (ACPI 6.5) */
+
+"Hz" { count (0); return (PARSEOP_CLOCK_HZ); }
+"KHz" { count (0); return (PARSEOP_CLOCK_KHZ); }
+"MHz" { count (0); return (PARSEOP_CLOCK_MHZ); }
+
+ /* ClockModeKeyword: Resource Descriptors (ACPI 6.5) */
+
+"Fixed" { count (0); return (PARSEOP_CLOCK_FIXED); }
+"Variable" { count (0); return (PARSEOP_CLOCK_VARIABLE); }
+
/* PolarityKeyword: Resource Descriptors (ACPI 5.0) */
"PolarityLow" { count (0); return (PARSEOP_DEVICEPOLARITY_LOW); }
diff --git a/sys/contrib/dev/acpica/compiler/aslcstyle.y b/sys/contrib/dev/acpica/compiler/aslcstyle.y
index b4e9065fee0f..59a1abea1bee 100644
--- a/sys/contrib/dev/acpica/compiler/aslcstyle.y
+++ b/sys/contrib/dev/acpica/compiler/aslcstyle.y
@@ -9,7 +9,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asldebug.c b/sys/contrib/dev/acpica/compiler/asldebug.c
index ed4554af3d1e..18b68dea6de0 100644
--- a/sys/contrib/dev/acpica/compiler/asldebug.c
+++ b/sys/contrib/dev/acpica/compiler/asldebug.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asldefine.h b/sys/contrib/dev/acpica/compiler/asldefine.h
index 12b2899e4062..89b6b8a69956 100644
--- a/sys/contrib/dev/acpica/compiler/asldefine.h
+++ b/sys/contrib/dev/acpica/compiler/asldefine.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -162,7 +162,7 @@
#define ASL_CREATOR_ID "INTL"
#define ASL_DEFINE "__IASL__"
#define ASL_PREFIX "iASL: "
-#define ASL_COMPLIANCE "Supports ACPI Specification Revision 6.3"
+#define ASL_COMPLIANCE "Supports ACPI Specification Revision 6.5"
/* Configuration constants */
diff --git a/sys/contrib/dev/acpica/compiler/aslerror.c b/sys/contrib/dev/acpica/compiler/aslerror.c
index 2e0d15e8cb76..ff01bef7b4b7 100644
--- a/sys/contrib/dev/acpica/compiler/aslerror.c
+++ b/sys/contrib/dev/acpica/compiler/aslerror.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -1033,7 +1033,6 @@ AslLogNewError (
exit(1);
}
- AslGbl_ExceptionCount[ASL_ERROR] = 0;
return;
}
diff --git a/sys/contrib/dev/acpica/compiler/aslexternal.c b/sys/contrib/dev/acpica/compiler/aslexternal.c
index 861bc72ba561..e2f082593c5d 100644
--- a/sys/contrib/dev/acpica/compiler/aslexternal.c
+++ b/sys/contrib/dev/acpica/compiler/aslexternal.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslfileio.c b/sys/contrib/dev/acpica/compiler/aslfileio.c
index 9cecfaead4d8..4bf18404b1f5 100644
--- a/sys/contrib/dev/acpica/compiler/aslfileio.c
+++ b/sys/contrib/dev/acpica/compiler/aslfileio.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslfiles.c b/sys/contrib/dev/acpica/compiler/aslfiles.c
index cc7486382800..0cad8eff47e8 100644
--- a/sys/contrib/dev/acpica/compiler/aslfiles.c
+++ b/sys/contrib/dev/acpica/compiler/aslfiles.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -346,7 +346,9 @@ FlGetFileHandle (
while (Current)
{
- if (!strcmp (Current->Files[InFileId].Filename, Filename))
+ if (!((Current->FileType == ASL_INPUT_TYPE_ASCII_DATA) &&
+ (InFileId == ASL_FILE_SOURCE_OUTPUT)) &&
+ !strcmp (Current->Files[InFileId].Filename, Filename))
{
return (Current->Files[OutFileId].Handle);
}
diff --git a/sys/contrib/dev/acpica/compiler/aslfold.c b/sys/contrib/dev/acpica/compiler/aslfold.c
index 3b889e3bd68c..89107297588b 100644
--- a/sys/contrib/dev/acpica/compiler/aslfold.c
+++ b/sys/contrib/dev/acpica/compiler/aslfold.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslglobal.h b/sys/contrib/dev/acpica/compiler/aslglobal.h
index ff00b92ef1ea..c79758919f6f 100644
--- a/sys/contrib/dev/acpica/compiler/aslglobal.h
+++ b/sys/contrib/dev/acpica/compiler/aslglobal.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -325,6 +325,7 @@ ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_ReferenceOptimizatio
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DisplayRemarks, TRUE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DisplayWarnings, TRUE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_DisplayOptimizations, FALSE);
+ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_Deterministic, TRUE);
ASL_EXTERN UINT8 ASL_INIT_GLOBAL (AslGbl_WarningLevel, ASL_WARNING);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_UseOriginalCompilerId, FALSE);
ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (AslGbl_VerboseTemplates, FALSE);
diff --git a/sys/contrib/dev/acpica/compiler/aslhelp.c b/sys/contrib/dev/acpica/compiler/aslhelp.c
index 4b995101310e..fcec07e67e70 100644
--- a/sys/contrib/dev/acpica/compiler/aslhelp.c
+++ b/sys/contrib/dev/acpica/compiler/aslhelp.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -184,6 +184,7 @@ Usage (
ACPI_OPTION ("-v", "Display compiler version");
ACPI_OPTION ("-vo", "Enable optimization comments");
ACPI_OPTION ("-vs", "Disable signon");
+ ACPI_OPTION ("-ld", "Disable deterministic output");
printf ("\nHelp:\n");
ACPI_OPTION ("-h", "This message");
@@ -261,6 +262,7 @@ Usage (
ACPI_OPTION ("", " (Obtain DSDT from current system if no input file)");
ACPI_OPTION ("-df", "Force disassembler to assume table contains valid AML");
ACPI_OPTION ("-dl", "Emit legacy ASL code only (no C-style operators)");
+ ACPI_OPTION ("-ds <signature(4)>", "Specify a table signature(4) (CDAT table only)");
ACPI_OPTION ("-e <f1 f2 ...>", "Include ACPI table(s) for external symbol resolution");
ACPI_OPTION ("-fe <file>", "Specify external symbol declaration file");
ACPI_OPTION ("-in", "Ignore NoOp opcodes");
diff --git a/sys/contrib/dev/acpica/compiler/aslhelpers.y b/sys/contrib/dev/acpica/compiler/aslhelpers.y
index 2764bf65b9f7..cb13d1ebcfe7 100644
--- a/sys/contrib/dev/acpica/compiler/aslhelpers.y
+++ b/sys/contrib/dev/acpica/compiler/aslhelpers.y
@@ -9,7 +9,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslhex.c b/sys/contrib/dev/acpica/compiler/aslhex.c
index 694a39833492..927e50f24c1d 100644
--- a/sys/contrib/dev/acpica/compiler/aslhex.c
+++ b/sys/contrib/dev/acpica/compiler/aslhex.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslkeywords.y b/sys/contrib/dev/acpica/compiler/aslkeywords.y
index 661cfc9397b0..7cb670e61bfb 100644
--- a/sys/contrib/dev/acpica/compiler/aslkeywords.y
+++ b/sys/contrib/dev/acpica/compiler/aslkeywords.y
@@ -9,7 +9,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -462,3 +462,14 @@ XferTypeKeyword
| PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafOp (PARSEOP_XFERTYPE_8_16);}
| PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafOp (PARSEOP_XFERTYPE_16);}
;
+
+ClockScaleKeyword
+ : PARSEOP_CLOCK_HZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_HZ);}
+ | PARSEOP_CLOCK_KHZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_KHZ);}
+ | PARSEOP_CLOCK_MHZ {$$ = TrCreateLeafOp (PARSEOP_CLOCK_MHZ);}
+ ;
+
+ClockModeKeyword
+ : PARSEOP_CLOCK_FIXED {$$ = TrCreateLeafOp (PARSEOP_CLOCK_FIXED);}
+ | PARSEOP_CLOCK_VARIABLE {$$ = TrCreateLeafOp (PARSEOP_CLOCK_VARIABLE);}
+ ;
diff --git a/sys/contrib/dev/acpica/compiler/asllength.c b/sys/contrib/dev/acpica/compiler/asllength.c
index 3aa0c4f3acd1..136ca5823001 100644
--- a/sys/contrib/dev/acpica/compiler/asllength.c
+++ b/sys/contrib/dev/acpica/compiler/asllength.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asllisting.c b/sys/contrib/dev/acpica/compiler/asllisting.c
index 05c8ed0be4a7..2a6341bb59e1 100644
--- a/sys/contrib/dev/acpica/compiler/asllisting.c
+++ b/sys/contrib/dev/acpica/compiler/asllisting.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asllistsup.c b/sys/contrib/dev/acpica/compiler/asllistsup.c
index 25b5fe0f1a63..3458e28062de 100644
--- a/sys/contrib/dev/acpica/compiler/asllistsup.c
+++ b/sys/contrib/dev/acpica/compiler/asllistsup.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslload.c b/sys/contrib/dev/acpica/compiler/aslload.c
index 924b0fb976f0..c88fb13aba78 100644
--- a/sys/contrib/dev/acpica/compiler/aslload.c
+++ b/sys/contrib/dev/acpica/compiler/aslload.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asllookup.c b/sys/contrib/dev/acpica/compiler/asllookup.c
index 054926eb7a63..3dfdb1fce21e 100644
--- a/sys/contrib/dev/acpica/compiler/asllookup.c
+++ b/sys/contrib/dev/acpica/compiler/asllookup.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslmain.c b/sys/contrib/dev/acpica/compiler/aslmain.c
index a59f15409622..ff22dec73369 100644
--- a/sys/contrib/dev/acpica/compiler/aslmain.c
+++ b/sys/contrib/dev/acpica/compiler/aslmain.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslmap.c b/sys/contrib/dev/acpica/compiler/aslmap.c
index 89581f534ca4..4711b884a57c 100644
--- a/sys/contrib/dev/acpica/compiler/aslmap.c
+++ b/sys/contrib/dev/acpica/compiler/aslmap.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -319,6 +319,7 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] =
/* DWORDCONST */ OP_TABLE_ENTRY (AML_RAW_DATA_DWORD, 0, 0, ACPI_BTYPE_INTEGER),
/* DWORDIO */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
/* DWORDMEMORY */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
+/* DWORDPCC */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
/* DWORDSPACE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
/* EISAID */ OP_TABLE_ENTRY (AML_DWORD_OP, 0, 0, ACPI_BTYPE_INTEGER),
/* ELSE */ OP_TABLE_ENTRY (AML_ELSE_OP, 0, OP_AML_PACKAGE, 0),
@@ -462,11 +463,18 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] =
/* PIN_PULLDEFAULT */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
/* PIN_PULLDOWN */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
/* PIN_PULLUP */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
+/* CLOCKINPUT */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
+/* CLOCK_HZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
+/* CLOCK_KHZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
+/* CLOCK_MHZ */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
+/* CLOCK_FIXED */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
+/* CLOCK_VARIABLE */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
/* POWERRESOURCE */ OP_TABLE_ENTRY (AML_POWER_RESOURCE_OP, 0, OP_AML_PACKAGE, 0),
/* PROCESSOR */ OP_TABLE_ENTRY (AML_PROCESSOR_OP, 0, OP_AML_PACKAGE, 0),
/* QWORDCONST */ OP_TABLE_ENTRY (AML_RAW_DATA_QWORD, 0, 0, ACPI_BTYPE_INTEGER),
/* QWORDIO */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
/* QWORDMEMORY */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
+/* QWORDPCC */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
/* QWORDSPACE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
/* RANGE_TYPE_ENTIRE */ OP_TABLE_ENTRY (AML_BYTE_OP, 3, 0, 0),
/* RANGE_TYPE_ISAONLY */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
@@ -554,6 +562,7 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] =
/* WORDBUSNUMBER */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
/* WORDCONST */ OP_TABLE_ENTRY (AML_RAW_DATA_WORD, 0, 0, ACPI_BTYPE_INTEGER),
/* WORDIO */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
+/* WORDPCC */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
/* WORDSPACE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
/* XFERSIZE_8 */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
/* XFERSIZE_16 */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
diff --git a/sys/contrib/dev/acpica/compiler/aslmapenter.c b/sys/contrib/dev/acpica/compiler/aslmapenter.c
index 4c725413c0d5..81b57cb3f13d 100644
--- a/sys/contrib/dev/acpica/compiler/aslmapenter.c
+++ b/sys/contrib/dev/acpica/compiler/aslmapenter.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslmapoutput.c b/sys/contrib/dev/acpica/compiler/aslmapoutput.c
index 8be3a3436881..a009f64bc98d 100644
--- a/sys/contrib/dev/acpica/compiler/aslmapoutput.c
+++ b/sys/contrib/dev/acpica/compiler/aslmapoutput.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslmaputils.c b/sys/contrib/dev/acpica/compiler/aslmaputils.c
index 6fe90db59358..f978e6a940b3 100644
--- a/sys/contrib/dev/acpica/compiler/aslmaputils.c
+++ b/sys/contrib/dev/acpica/compiler/aslmaputils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslmessages.c b/sys/contrib/dev/acpica/compiler/aslmessages.c
index 6318cff50fe7..1e363236a149 100644
--- a/sys/contrib/dev/acpica/compiler/aslmessages.c
+++ b/sys/contrib/dev/acpica/compiler/aslmessages.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslmessages.h b/sys/contrib/dev/acpica/compiler/aslmessages.h
index 197e9e2276c0..dc0bbe10bd0d 100644
--- a/sys/contrib/dev/acpica/compiler/aslmessages.h
+++ b/sys/contrib/dev/acpica/compiler/aslmessages.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslmethod.c b/sys/contrib/dev/acpica/compiler/aslmethod.c
index 61fd7b6681db..75096d38999e 100644
--- a/sys/contrib/dev/acpica/compiler/aslmethod.c
+++ b/sys/contrib/dev/acpica/compiler/aslmethod.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -546,9 +546,9 @@ MtMethodAnalysisWalkBegin (
else if (HidExists && AdrExists)
{
/*
- * According to the ACPI spec, "A device object must contain
- * either an _HID object or an _ADR object, but should not contain
- * both".
+ * "A device object must contain either an _HID object or
+ * an _ADR object, but must not contain both".
+ * (ACPI spec 6.3, Errata A Section 6.1, page 327)
*/
AslError (ASL_WARNING, ASL_MSG_MULTIPLE_TYPES, Op,
"Device object requires either a _HID or _ADR, but not both");
diff --git a/sys/contrib/dev/acpica/compiler/aslnamesp.c b/sys/contrib/dev/acpica/compiler/aslnamesp.c
index 3114fc6ba86f..9388d7428db6 100644
--- a/sys/contrib/dev/acpica/compiler/aslnamesp.c
+++ b/sys/contrib/dev/acpica/compiler/aslnamesp.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asloffset.c b/sys/contrib/dev/acpica/compiler/asloffset.c
index 527f63b6f8cf..d60c4c4ec367 100644
--- a/sys/contrib/dev/acpica/compiler/asloffset.c
+++ b/sys/contrib/dev/acpica/compiler/asloffset.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslopcodes.c b/sys/contrib/dev/acpica/compiler/aslopcodes.c
index 0f9075c9b609..8bef46b0d7ae 100644
--- a/sys/contrib/dev/acpica/compiler/aslopcodes.c
+++ b/sys/contrib/dev/acpica/compiler/aslopcodes.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asloperands.c b/sys/contrib/dev/acpica/compiler/asloperands.c
index 7325bbe6d845..1978b38b1cff 100644
--- a/sys/contrib/dev/acpica/compiler/asloperands.c
+++ b/sys/contrib/dev/acpica/compiler/asloperands.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslopt.c b/sys/contrib/dev/acpica/compiler/aslopt.c
index 07541a97706c..02d46458d6ac 100644
--- a/sys/contrib/dev/acpica/compiler/aslopt.c
+++ b/sys/contrib/dev/acpica/compiler/aslopt.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asloptions.c b/sys/contrib/dev/acpica/compiler/asloptions.c
index 27308a1dc36c..a46ce96f5dbd 100644
--- a/sys/contrib/dev/acpica/compiler/asloptions.c
+++ b/sys/contrib/dev/acpica/compiler/asloptions.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -152,6 +152,7 @@
#include <contrib/dev/acpica/compiler/aslcompiler.h>
#include <contrib/dev/acpica/include/acapps.h>
#include <contrib/dev/acpica/include/acdisasm.h>
+#include <contrib/dev/acpica/include/acglobal.h>
#define _COMPONENT ACPI_COMPILER
ACPI_MODULE_NAME ("asloption")
@@ -176,7 +177,7 @@ AslDoResponseFile (
#define ASL_TOKEN_SEPARATORS " \t\n"
-#define ASL_SUPPORTED_OPTIONS "@:a:b|c|d^D:e:f^gh^i|I:l^m:no|p:P^q^r:s|t|T+G^v^w|x:z"
+#define ASL_SUPPORTED_OPTIONS "@:a:b|c|d^D:e:f^gh^i|I:l^m:no|p:P^q^r:s|:t|T+G^v^w|x:z"
/*******************************************************************************
@@ -270,7 +271,7 @@ AslDoOptions (
BOOLEAN IsResponseFile)
{
ACPI_STATUS Status;
- UINT32 j;
+ INT32 j;
/* Get the command line options */
@@ -366,7 +367,6 @@ AslDoOptions (
{
return (-1);
}
-
AslGbl_PruneType = (UINT8) strtoul (AcpiGbl_Optarg, NULL, 0);
break;
@@ -445,6 +445,28 @@ AslDoOptions (
AcpiGbl_CstyleDisassembly = FALSE;
break;
+ case 's': /* Specify table signature (Only supported for CDAT table) */
+
+ /* Get the required argument */
+
+ if (AcpiGetoptArgument (argc, argv))
+ {
+ return (-1);
+ }
+
+ /* Check for exact string "CDAT" (upper or lower case) */
+
+ AcpiGbl_CDAT = ACPI_CAST_PTR (char, &AcpiGbl_Optarg);
+ if (AcpiUtStricmp (AcpiGbl_Optarg, ACPI_SIG_CDAT))
+ {
+ printf ("\nUnknown table signature: %s\n", AcpiGbl_Optarg);
+ return (-1);
+ }
+
+ AcpiGbl_CDAT = malloc (5);
+ AcpiUtSafeStrncpy ((char *) AcpiGbl_CDAT, ACPI_SIG_CDAT, 5);
+ break;
+
default:
printf ("Unknown option: -d%s\n", AcpiGbl_Optarg);
@@ -608,6 +630,13 @@ AslDoOptions (
AcpiGbl_DmOpt_Listing = TRUE;
break;
+ case 'd':
+
+ /* Disable deterministic output, enabling timestamp */
+
+ AslGbl_Deterministic = FALSE;
+ break;
+
case 'i':
/* Produce preprocessor output file */
@@ -837,7 +866,7 @@ AslDoOptions (
AslGbl_HexOutputFlag = HEX_OUTPUT_C;
break;
- case 'p': /* data table flex/bison prototype */
+ case 'p': /* data table flex/bison prototype */
AslGbl_DtLexBisonPrototype = TRUE;
break;
diff --git a/sys/contrib/dev/acpica/compiler/aslparseop.c b/sys/contrib/dev/acpica/compiler/aslparseop.c
index a8dd04c86020..65e5b5b3ea59 100644
--- a/sys/contrib/dev/acpica/compiler/aslparseop.c
+++ b/sys/contrib/dev/acpica/compiler/aslparseop.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -790,7 +790,7 @@ TrCreateConstantLeafOp (
DbgPrint (ASL_PARSE_OUTPUT,
"\nCreateConstantLeafOp Ln/Col %u/%u NewOp %p "
- "Op %s Value %8.8X%8.8X \n",
+ "Op %s Value %8.8X%8.8X\n",
Op->Asl.LineNumber, Op->Asl.Column, Op, UtGetOpName (ParseOpcode),
ACPI_FORMAT_UINT64 (Op->Asl.Value.Integer));
@@ -817,6 +817,8 @@ TrAllocateOp (
ACPI_PARSE_OBJECT *Op;
ACPI_PARSE_OBJECT *LatestOp;
+ ACPI_FUNCTION_NAME (TrAllocateOp);
+
Op = UtParseOpCacheCalloc ();
@@ -861,7 +863,7 @@ TrAllocateOp (
}
AslGbl_CommentState.LatestParseOp = Op;
- CvDbgPrint ("TrAllocateOp=Set latest parse op to this op.\n");
+ CvDbgPrint ("%s=Set latest parse op to this op.\n", ACPI_GET_FUNCTION_NAME);
CvDbgPrint (" Op->Asl.ParseOpName = %s\n",
AslGbl_CommentState.LatestParseOp->Asl.ParseOpName);
CvDbgPrint (" Op->Asl.ParseOpcode = 0x%x\n", ParseOpcode);
diff --git a/sys/contrib/dev/acpica/compiler/aslparser.y b/sys/contrib/dev/acpica/compiler/aslparser.y
index 1517033a5be1..65a75af9763c 100644
--- a/sys/contrib/dev/acpica/compiler/aslparser.y
+++ b/sys/contrib/dev/acpica/compiler/aslparser.y
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -208,7 +208,7 @@ AslLocalAllocate (
* These shift/reduce conflicts are expected. There should be zero
* reduce/reduce conflicts.
*/
-%expect 127
+%expect 134
/*! [Begin] no source code translation */
diff --git a/sys/contrib/dev/acpica/compiler/aslpld.c b/sys/contrib/dev/acpica/compiler/aslpld.c
index b9ef660f5d85..b1d9a05a7bdc 100644
--- a/sys/contrib/dev/acpica/compiler/aslpld.c
+++ b/sys/contrib/dev/acpica/compiler/aslpld.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslpredef.c b/sys/contrib/dev/acpica/compiler/aslpredef.c
index cad967d4ffab..4125c51c6895 100644
--- a/sys/contrib/dev/acpica/compiler/aslpredef.c
+++ b/sys/contrib/dev/acpica/compiler/aslpredef.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -563,7 +563,7 @@ ApCheckForPredefinedName (
if (Name[0] == 0)
{
AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, Op,
- "zero length name found");
+ "Zero length name found");
}
/* All reserved names are prefixed with a single underscore */
diff --git a/sys/contrib/dev/acpica/compiler/aslprepkg.c b/sys/contrib/dev/acpica/compiler/aslprepkg.c
index 4acd2ce35aea..9d0e861a0ff9 100644
--- a/sys/contrib/dev/acpica/compiler/aslprepkg.c
+++ b/sys/contrib/dev/acpica/compiler/aslprepkg.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslprimaries.y b/sys/contrib/dev/acpica/compiler/aslprimaries.y
index 69565defe405..608009d30da3 100644
--- a/sys/contrib/dev/acpica/compiler/aslprimaries.y
+++ b/sys/contrib/dev/acpica/compiler/aslprimaries.y
@@ -11,7 +11,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslprintf.c b/sys/contrib/dev/acpica/compiler/aslprintf.c
index e0db152521d5..819a498f2b7d 100644
--- a/sys/contrib/dev/acpica/compiler/aslprintf.c
+++ b/sys/contrib/dev/acpica/compiler/aslprintf.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -294,7 +294,7 @@ OpcParsePrintf (
if (StringToProcess)
{
NewString = UtLocalCacheCalloc (StringLength + 1);
- strncpy (NewString, StartPosition, StringLength);
+ memcpy (NewString, StartPosition, StringLength);
NewOp = TrAllocateOp (PARSEOP_STRING_LITERAL);
NewOp->Asl.Value.String = NewString;
@@ -383,7 +383,7 @@ OpcParsePrintf (
if (StringToProcess)
{
NewString = UtLocalCacheCalloc (StringLength + 1);
- strncpy (NewString, StartPosition, StringLength);
+ memcpy (NewString, StartPosition, StringLength);
NewOp = TrAllocateOp (PARSEOP_STRING_LITERAL);
NewOp->Asl.Value.String = NewString;
diff --git a/sys/contrib/dev/acpica/compiler/aslprune.c b/sys/contrib/dev/acpica/compiler/aslprune.c
index 646aab2918e5..4fc3c063f1d6 100644
--- a/sys/contrib/dev/acpica/compiler/aslprune.c
+++ b/sys/contrib/dev/acpica/compiler/aslprune.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslresource.c b/sys/contrib/dev/acpica/compiler/aslresource.c
index 1cf4822ae6b5..8250e84fd783 100644
--- a/sys/contrib/dev/acpica/compiler/aslresource.c
+++ b/sys/contrib/dev/acpica/compiler/aslresource.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -762,6 +762,12 @@ RsDoOneResourceDescriptor (
switch (Info->DescriptorTypeOp->Asl.ParseOpcode)
{
+
+ case PARSEOP_CLOCKINPUT:
+
+ Rnode = RsDoClockInputDescriptor(Info);
+ break;
+
case PARSEOP_DMA:
Rnode = RsDoDmaDescriptor (Info);
@@ -782,6 +788,11 @@ RsDoOneResourceDescriptor (
Rnode = RsDoDwordMemoryDescriptor (Info);
break;
+ case PARSEOP_DWORDPCC:
+
+ Rnode = RsDoDwordPccDescriptor (Info);
+ break;
+
case PARSEOP_DWORDSPACE:
Rnode = RsDoDwordSpaceDescriptor (Info);
@@ -883,6 +894,11 @@ RsDoOneResourceDescriptor (
Rnode = RsDoQwordMemoryDescriptor (Info);
break;
+ case PARSEOP_QWORDPCC:
+
+ Rnode = RsDoQwordPccDescriptor (Info);
+ break;
+
case PARSEOP_QWORDSPACE:
Rnode = RsDoQwordSpaceDescriptor (Info);
@@ -957,6 +973,11 @@ RsDoOneResourceDescriptor (
Rnode = RsDoWordIoDescriptor (Info);
break;
+ case PARSEOP_WORDPCC:
+
+ Rnode = RsDoWordPccDescriptor (Info);
+ break;
+
case PARSEOP_WORDSPACE:
Rnode = RsDoWordSpaceDescriptor (Info);
diff --git a/sys/contrib/dev/acpica/compiler/aslresources.y b/sys/contrib/dev/acpica/compiler/aslresources.y
index a5752b01c04f..fd8a33d3c0d6 100644
--- a/sys/contrib/dev/acpica/compiler/aslresources.y
+++ b/sys/contrib/dev/acpica/compiler/aslresources.y
@@ -11,7 +11,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -194,6 +194,7 @@ ResourceMacroTerm
| DMATerm {}
| DWordIOTerm {}
| DWordMemoryTerm {}
+ | DWordPccTerm {}
| DWordSpaceTerm {}
| EndDependentFnTerm {}
| ExtendedIOTerm {}
@@ -214,11 +215,13 @@ ResourceMacroTerm
| Memory32Term {}
| PinConfigTerm {}
| PinFunctionTerm {}
+ | ClockInputTerm {}
| PinGroupTerm {}
| PinGroupConfigTerm {}
| PinGroupFunctionTerm {}
| QWordIOTerm {}
| QWordMemoryTerm {}
+ | QWordPccTerm {}
| QWordSpaceTerm {}
| RegisterTerm {}
| SpiSerialBusTerm {}
@@ -231,6 +234,7 @@ ResourceMacroTerm
| VendorShortTerm {}
| WordBusNumberTerm {}
| WordIOTerm {}
+ | WordPccTerm {}
| WordSpaceTerm {}
;
@@ -316,6 +320,20 @@ DWordMemoryTerm
error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
;
+DWordPccTerm
+ : PARSEOP_DWORDPCC
+ PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDPCC);}
+ ByteConstExpr
+ OptionalByteConstExpr
+ OptionalStringData
+ OptionalNameString_Last
+ PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
+ $4,$5,$6,$7);}
+ | PARSEOP_DWORDPCC
+ PARSEOP_OPEN_PAREN
+ error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
+ ;
+
DWordSpaceTerm
: PARSEOP_DWORDSPACE
PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDSPACE);}
@@ -666,6 +684,21 @@ PinFunctionTerm
error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
;
+ClockInputTerm
+ : PARSEOP_CLOCKINPUT
+ PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);}
+ DWordConstExpr /* 04: FrequencyNumerator */
+ ',' WordConstExpr /* 06: FrequencyDivisor */
+ ',' ClockScaleKeyword /* 08: Scale */
+ ',' ClockModeKeyword /* 10: Mode*/
+ OptionalStringData /* 11: ResourceSource */
+ OptionalByteConstExpr /* 12: ResourceSourceIndex */
+ PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
+ | PARSEOP_CLOCKINPUT
+ PARSEOP_OPEN_PAREN
+ error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
+ ;
+
PinGroupTerm
: PARSEOP_PINGROUP
PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUP);}
@@ -768,6 +801,20 @@ QWordMemoryTerm
error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
;
+QWordPccTerm
+ : PARSEOP_QWORDPCC
+ PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDPCC);}
+ ByteConstExpr
+ OptionalByteConstExpr
+ OptionalStringData
+ OptionalNameString_Last
+ PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
+ $4,$5,$6,$7);}
+ | PARSEOP_QWORDPCC
+ PARSEOP_OPEN_PAREN
+ error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
+ ;
+
QWordSpaceTerm
: PARSEOP_QWORDSPACE
PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDSPACE);}
@@ -996,6 +1043,20 @@ WordIOTerm
error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
;
+WordPccTerm
+ : PARSEOP_WORDPCC
+ PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDPCC);}
+ ByteConstExpr
+ OptionalByteConstExpr
+ OptionalStringData
+ OptionalNameString_Last
+ PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
+ $4,$5,$6,$7);}
+ | PARSEOP_WORDPCC
+ PARSEOP_OPEN_PAREN
+ error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
+ ;
+
WordSpaceTerm
: PARSEOP_WORDSPACE
PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDSPACE);}
diff --git a/sys/contrib/dev/acpica/compiler/aslrestype1.c b/sys/contrib/dev/acpica/compiler/aslrestype1.c
index 0bf8d87d6e35..3f873da0e703 100644
--- a/sys/contrib/dev/acpica/compiler/aslrestype1.c
+++ b/sys/contrib/dev/acpica/compiler/aslrestype1.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslrestype1i.c b/sys/contrib/dev/acpica/compiler/aslrestype1i.c
index 4dd5402e9dd9..02f4958d6d51 100644
--- a/sys/contrib/dev/acpica/compiler/aslrestype1i.c
+++ b/sys/contrib/dev/acpica/compiler/aslrestype1i.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslrestype2.c b/sys/contrib/dev/acpica/compiler/aslrestype2.c
index e5771e059cc9..6fb613370691 100644
--- a/sys/contrib/dev/acpica/compiler/aslrestype2.c
+++ b/sys/contrib/dev/acpica/compiler/aslrestype2.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslrestype2d.c b/sys/contrib/dev/acpica/compiler/aslrestype2d.c
index e34f2bee1034..3a7ca9189aff 100644
--- a/sys/contrib/dev/acpica/compiler/aslrestype2d.c
+++ b/sys/contrib/dev/acpica/compiler/aslrestype2d.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -158,11 +158,168 @@
/*
* This module contains the Dword (32-bit) address space descriptors:
*
+ * DWordPcc
* DwordIO
* DwordMemory
* DwordSpace
*/
+
+/*******************************************************************************
+ *
+ * FUNCTION: RsDoDwordPccDescriptor
+ *
+ * PARAMETERS: Info - Parse Op and resource template offset
+ *
+ * RETURN: Completed resource node
+ *
+ * DESCRIPTION: Construct a long "DWordPcc" descriptor
+ *
+ ******************************************************************************/
+
+ASL_RESOURCE_NODE *
+RsDoDwordPccDescriptor (
+ ASL_RESOURCE_INFO *Info)
+{
+ AML_RESOURCE *Descriptor;
+ ACPI_PARSE_OBJECT *InitializerOp;
+ ACPI_PARSE_OBJECT *MinOp = NULL;
+ ACPI_PARSE_OBJECT *MaxOp = NULL;
+ ACPI_PARSE_OBJECT *LengthOp = NULL;
+ ACPI_PARSE_OBJECT *GranOp = NULL;
+ ASL_RESOURCE_NODE *Rnode;
+ UINT16 StringLength = 0;
+ UINT32 OptionIndex = 0;
+ UINT8 *OptionalFields;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ StringLength = RsGetStringDataLength (InitializerOp);
+
+ Rnode = RsAllocateResourceNode (
+ sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength);
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32;
+ Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_PCC_NUMBER;
+
+ /*
+ * Initial descriptor length -- may be enlarged if there are
+ * optional fields present
+ */
+ OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
+ Descriptor->Address32.ResourceLength = (UINT16)
+ (sizeof (AML_RESOURCE_ADDRESS32) -
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+
+ /*
+ * Bit [3] Max Address Fixed, _MAF: 1 (max address is fixed)
+ * Bit [2] Min Address Fixed,_MIF: 1 (min address is fixed)
+ * Bit [1] Decode Type, _DEC: 0 (do not care)
+ * BIT [0] Ignored (must be zero)
+ */
+ Descriptor->Address32.Flags = 0b1100;
+
+ // No type specific flags. Set to 0.
+ Descriptor->Address32.SpecificFlags = 0;
+
+ // must be set to zero if _MAX == _MIN.
+ Descriptor->Address32.Granularity = 0x0;
+ /* Process all child initialization nodes */
+
+ // No translation offset.
+ Descriptor->Address32.TranslationOffset = 0;
+
+ // Pcc is unique address.
+ Descriptor->Address32.AddressLength = 1;
+
+ for (i = 0; InitializerOp; i++)
+ {
+ switch (i)
+ {
+
+ case 0: /* Address Min = Max */
+
+ Descriptor->Address32.Minimum =
+ (UINT32) InitializerOp->Asl.Value.Integer;
+ Descriptor->Address32.Maximum =
+ (UINT32) InitializerOp->Asl.Value.Integer;
+
+ break;
+
+ case 1: /* ResSourceIndex [Optional Field - BYTE] */
+
+ if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
+ {
+ /* Found a valid ResourceSourceIndex */
+
+ OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
+ OptionIndex++;
+ Descriptor->Address32.ResourceLength++;
+ ResSourceIndex = TRUE;
+ }
+ break;
+
+ case 2: /* ResSource [Optional Field - STRING] */
+
+ if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
+ (InitializerOp->Asl.Value.String))
+ {
+ if (StringLength)
+ {
+ /* Found a valid ResourceSource */
+
+ Descriptor->Address32.ResourceLength = (UINT16)
+ (Descriptor->Address32.ResourceLength + StringLength);
+
+ strcpy ((char *)
+ &OptionalFields[OptionIndex],
+ InitializerOp->Asl.Value.String);
+
+ /* ResourceSourceIndex must also be valid */
+
+ if (!ResSourceIndex)
+ {
+ AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
+ InitializerOp, NULL);
+ }
+ }
+ }
+
+ break;
+
+ case 3: // DescriptorName
+ UtAttachNamepathToOwner (Info->DescriptorTypeOp, InitializerOp);
+ break;
+
+ default:
+
+ AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
+ break;
+ }
+
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
+ /* Validate the Min/Max/Len/Gran values */
+
+ RsLargeAddressCheck (
+ (UINT64) Descriptor->Address32.Minimum,
+ (UINT64) Descriptor->Address32.Maximum,
+ (UINT64) Descriptor->Address32.AddressLength,
+ (UINT64) Descriptor->Address32.Granularity,
+ Descriptor->Address32.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+ Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
+ OptionIndex + StringLength;
+ return (Rnode);
+}
+
+
/*******************************************************************************
*
* FUNCTION: RsDoDwordIoDescriptor
diff --git a/sys/contrib/dev/acpica/compiler/aslrestype2e.c b/sys/contrib/dev/acpica/compiler/aslrestype2e.c
index 91e25e7880a1..4e6293617b94 100644
--- a/sys/contrib/dev/acpica/compiler/aslrestype2e.c
+++ b/sys/contrib/dev/acpica/compiler/aslrestype2e.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslrestype2q.c b/sys/contrib/dev/acpica/compiler/aslrestype2q.c
index 862979011f79..6ebe149a3c14 100644
--- a/sys/contrib/dev/acpica/compiler/aslrestype2q.c
+++ b/sys/contrib/dev/acpica/compiler/aslrestype2q.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -160,6 +160,7 @@
*
* QWordIO
* QWordMemory
+ * QwordPcc
* QWordSpace
*/
@@ -615,6 +616,161 @@ RsDoQwordMemoryDescriptor (
/*******************************************************************************
*
+ * FUNCTION: RsDoQwordPccDescriptor
+ *
+ * PARAMETERS: Info - Parse Op and resource template offset
+ *
+ * RETURN: Completed resource node
+ *
+ * DESCRIPTION: Construct a long "QWordPcc" descriptor
+ *
+ ******************************************************************************/
+
+ASL_RESOURCE_NODE *
+RsDoQwordPccDescriptor (
+ ASL_RESOURCE_INFO *Info)
+{
+ AML_RESOURCE *Descriptor;
+ ACPI_PARSE_OBJECT *InitializerOp;
+ ACPI_PARSE_OBJECT *MinOp = NULL;
+ ACPI_PARSE_OBJECT *MaxOp = NULL;
+ ACPI_PARSE_OBJECT *LengthOp = NULL;
+ ACPI_PARSE_OBJECT *GranOp = NULL;
+ ASL_RESOURCE_NODE *Rnode;
+ UINT16 StringLength = 0;
+ UINT32 OptionIndex = 0;
+ UINT8 *OptionalFields;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ StringLength = RsGetStringDataLength (InitializerOp);
+
+ Rnode = RsAllocateResourceNode (
+ sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength);
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32;
+ Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_PCC_NUMBER;
+
+ /*
+ * Initial descriptor length -- may be enlarged if there are
+ * optional fields present
+ */
+ OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
+ Descriptor->Address32.ResourceLength = (UINT16)
+ (sizeof (AML_RESOURCE_ADDRESS32) -
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+
+ /*
+ * Bit [3] Max Address Fixed, _MAF: 1 (max address is fixed)
+ * Bit [2] Min Address Fixed,_MIF: 1 (min address is fixed)
+ * Bit [1] Decode Type, _DEC: 0 (do not care)
+ * BIT [0] Ignored (must be zero)
+ */
+ Descriptor->Address32.Flags = 0b1100;
+
+ // No type specific flags. Set to 0.
+ Descriptor->Address32.SpecificFlags = 0;
+
+ // must be set to zero if _MAX == _MIN.
+ Descriptor->Address32.Granularity = 0x0;
+ /* Process all child initialization nodes */
+
+ // No translation offset.
+ Descriptor->Address32.TranslationOffset = 0;
+
+ // Pcc is unique address.
+ Descriptor->Address32.AddressLength = 1;
+
+ for (i = 0; InitializerOp; i++)
+ {
+ switch (i)
+ {
+
+ case 0: /* Address Min = Max */
+
+ Descriptor->Address32.Minimum =
+ (UINT32) InitializerOp->Asl.Value.Integer;
+ Descriptor->Address32.Maximum =
+ (UINT32) InitializerOp->Asl.Value.Integer;
+
+ break;
+
+ case 1: /* ResSourceIndex [Optional Field - BYTE] */
+
+ if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
+ {
+ /* Found a valid ResourceSourceIndex */
+
+ OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
+ OptionIndex++;
+ Descriptor->Address32.ResourceLength++;
+ ResSourceIndex = TRUE;
+ }
+ break;
+
+ case 2: /* ResSource [Optional Field - STRING] */
+
+ if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
+ (InitializerOp->Asl.Value.String))
+ {
+ if (StringLength)
+ {
+ /* Found a valid ResourceSource */
+
+ Descriptor->Address32.ResourceLength = (UINT16)
+ (Descriptor->Address32.ResourceLength + StringLength);
+
+ strcpy ((char *)
+ &OptionalFields[OptionIndex],
+ InitializerOp->Asl.Value.String);
+
+ /* ResourceSourceIndex must also be valid */
+
+ if (!ResSourceIndex)
+ {
+ AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
+ InitializerOp, NULL);
+ }
+ }
+ }
+
+ break;
+
+ case 3: // DescriptorName
+ UtAttachNamepathToOwner (Info->DescriptorTypeOp, InitializerOp);
+ break;
+
+ default:
+
+ AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
+ break;
+ }
+
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
+ /* Validate the Min/Max/Len/Gran values */
+
+ RsLargeAddressCheck (
+ (UINT64) Descriptor->Address32.Minimum,
+ (UINT64) Descriptor->Address32.Maximum,
+ (UINT64) Descriptor->Address32.AddressLength,
+ (UINT64) Descriptor->Address32.Granularity,
+ Descriptor->Address32.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+ Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
+ OptionIndex + StringLength;
+ return (Rnode);
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: RsDoQwordSpaceDescriptor
*
* PARAMETERS: Info - Parse Op and resource template offset
diff --git a/sys/contrib/dev/acpica/compiler/aslrestype2s.c b/sys/contrib/dev/acpica/compiler/aslrestype2s.c
index 7a25e9b367cc..f47402d4e025 100644
--- a/sys/contrib/dev/acpica/compiler/aslrestype2s.c
+++ b/sys/contrib/dev/acpica/compiler/aslrestype2s.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -1469,7 +1469,7 @@ RsDoCsi2SerialBusDescriptor (
case 2: /* Local Port Instance [Integer] (_PRT) */
- RsSetFlagBits16 ((UINT16 *) &Descriptor->Csi2SerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
+ RsSetFlagBits16 ((UINT16 *) &Descriptor->Csi2SerialBus.TypeSpecificFlags, InitializerOp, 2, 0);
RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_LOCALPORT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Csi2SerialBus.TypeSpecificFlags), 2, 6);
break;
@@ -1550,7 +1550,6 @@ RsDoPinFunctionDescriptor (
UINT16 PinListLength;
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
- UINT32 PinCount = 0;
UINT32 i;
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
@@ -1668,15 +1667,10 @@ RsDoPinFunctionDescriptor (
default:
/*
* PINs come through here, repeatedly. Each PIN must be a WORD.
- * NOTE: there is no "length" field for this, so from ACPI spec:
- * The number of pins in the table can be calculated from:
- * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2
- * (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
*PinList = (UINT16) InitializerOp->Asl.Value.Integer;
PinList++;
- PinCount++;
/* Case 8: First pin number in list */
@@ -1708,6 +1702,115 @@ RsDoPinFunctionDescriptor (
return (Rnode);
}
+/*******************************************************************************
+ *
+ * FUNCTION: RsDoClockInputDescriptor
+ *
+ * PARAMETERS: Info - Parse Op and resource template offset
+ *
+ * RETURN: Completed resource node
+ *
+ * DESCRIPTION: Construct a long "ClockInput" descriptor
+ *
+ ******************************************************************************/
+
+ASL_RESOURCE_NODE *
+RsDoClockInputDescriptor (
+ ASL_RESOURCE_INFO *Info)
+{
+ AML_RESOURCE *Descriptor;
+ ACPI_PARSE_OBJECT *InitializerOp;
+ ASL_RESOURCE_NODE *Rnode;
+ char *ResourceSourceString = NULL;
+ UINT8 *ResourceSourceIndex = NULL;
+ UINT16 ResSourceLength;
+ UINT16 DescriptorSize;
+ UINT32 i;
+ UINT32 CurrentByteOffset;
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ CurrentByteOffset = Info->CurrentByteOffset;
+
+ /*
+ * Calculate lengths for fields that have variable length:
+ * 1) Resource Source string
+ */
+ ResSourceLength = RsGetStringDataLength (InitializerOp);
+
+ DescriptorSize = ACPI_AML_SIZE_LARGE (AML_RESOURCE_CLOCK_INPUT) + ResSourceLength + 1;
+
+ /* Allocate the local resource node and initialize */
+
+ Rnode = RsAllocateResourceNode (DescriptorSize +
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->ClockInput.ResourceLength = DescriptorSize;
+ Descriptor->ClockInput.DescriptorType = ACPI_RESOURCE_NAME_CLOCK_INPUT;
+ Descriptor->ClockInput.RevisionId = AML_RESOURCE_CLOCK_INPUT_REVISION;
+
+ /* Build pointers to optional areas */
+
+ if (ResSourceLength){
+ ResourceSourceIndex = ACPI_ADD_PTR (UINT8, Descriptor, sizeof (AML_RESOURCE_CLOCK_INPUT));
+ ResourceSourceString = ACPI_ADD_PTR (char, Descriptor, sizeof (AML_RESOURCE_CLOCK_INPUT) + 1);
+ }
+
+ /* Process all child initialization nodes */
+
+ for (i = 0; InitializerOp; i++)
+ {
+ switch (i)
+ {
+ case 0:
+ Descriptor->ClockInput.FrequencyNumerator = (UINT32)InitializerOp->Asl.Value.Integer;
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_FQN,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ClockInput.FrequencyNumerator));
+
+ break;
+
+ case 1:
+ Descriptor->ClockInput.FrequencyDivisor = (UINT16)InitializerOp->Asl.Value.Integer;
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_FQD,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ClockInput.FrequencyDivisor));
+
+ break;
+
+ case 2:
+ RsSetFlagBits16 (&Descriptor->ClockInput.Flags, InitializerOp, 1, 0);
+ break;
+
+ case 3:
+ RsSetFlagBits16 (&Descriptor->ClockInput.Flags, InitializerOp, 0, 0);
+ break;
+
+ case 4: /* ResSource String [Optional Field] */
+
+ if (ResourceSourceString)
+ {
+ /* Copy string to the descriptor */
+
+ strcpy (ResourceSourceString, InitializerOp->Asl.Value.String);
+ }
+ break;
+
+ case 5: /* ResSource Index [Optional Field] */
+ if (ResourceSourceIndex)
+ {
+ *ResourceSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
+ return (Rnode);
+}
+
/*******************************************************************************
*
@@ -1736,7 +1839,6 @@ RsDoPinConfigDescriptor (
UINT16 PinListLength;
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
- UINT32 PinCount = 0;
UINT32 i;
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
@@ -1868,15 +1970,10 @@ RsDoPinConfigDescriptor (
default:
/*
* PINs come through here, repeatedly. Each PIN must be a WORD.
- * NOTE: there is no "length" field for this, so from ACPI spec:
- * The number of pins in the table can be calculated from:
- * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2
- * (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
*PinList = (UINT16) InitializerOp->Asl.Value.Integer;
PinList++;
- PinCount++;
/* Case 8: First pin number in list */
@@ -1936,7 +2033,6 @@ RsDoPinGroupDescriptor (
UINT16 PinListLength;
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
- UINT32 PinCount = 0;
UINT32 i;
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
@@ -2022,15 +2118,10 @@ RsDoPinGroupDescriptor (
default:
/*
* PINs come through here, repeatedly. Each PIN must be a WORD.
- * NOTE: there is no "length" field for this, so from ACPI spec:
- * The number of pins in the table can be calculated from:
- * PinCount = (Resource Source Name Offset - Pin Table Offset) / 2
- * (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
*PinList = (UINT16) InitializerOp->Asl.Value.Integer;
PinList++;
- PinCount++;
/* Case 3: First pin number in list */
diff --git a/sys/contrib/dev/acpica/compiler/aslrestype2w.c b/sys/contrib/dev/acpica/compiler/aslrestype2w.c
index d3b069fea207..cc8a31804977 100644
--- a/sys/contrib/dev/acpica/compiler/aslrestype2w.c
+++ b/sys/contrib/dev/acpica/compiler/aslrestype2w.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -160,6 +160,7 @@
*
* WordIO
* WordMemory
+ * WordPcc
* WordSpace
*/
@@ -591,6 +592,161 @@ RsDoWordBusNumberDescriptor (
/*******************************************************************************
*
+ * FUNCTION: RsDoWordPccDescriptor
+ *
+ * PARAMETERS: Info - Parse Op and resource template offset
+ *
+ * RETURN: Completed resource node
+ *
+ * DESCRIPTION: Construct a long "WordPcc" descriptor
+ *
+ ******************************************************************************/
+
+ASL_RESOURCE_NODE *
+RsDoWordPccDescriptor (
+ ASL_RESOURCE_INFO *Info)
+{
+ AML_RESOURCE *Descriptor;
+ ACPI_PARSE_OBJECT *InitializerOp;
+ ACPI_PARSE_OBJECT *MinOp = NULL;
+ ACPI_PARSE_OBJECT *MaxOp = NULL;
+ ACPI_PARSE_OBJECT *LengthOp = NULL;
+ ACPI_PARSE_OBJECT *GranOp = NULL;
+ ASL_RESOURCE_NODE *Rnode;
+ UINT16 StringLength = 0;
+ UINT32 OptionIndex = 0;
+ UINT8 *OptionalFields;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ StringLength = RsGetStringDataLength (InitializerOp);
+
+ Rnode = RsAllocateResourceNode (
+ sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength);
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32;
+ Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_PCC_NUMBER;
+
+ /*
+ * Initial descriptor length -- may be enlarged if there are
+ * optional fields present
+ */
+ OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
+ Descriptor->Address32.ResourceLength = (UINT16)
+ (sizeof (AML_RESOURCE_ADDRESS32) -
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+
+ /*
+ * Bit [3] Max Address Fixed, _MAF: 1 (max address is fixed)
+ * Bit [2] Min Address Fixed,_MIF: 1 (min address is fixed)
+ * Bit [1] Decode Type, _DEC: 0 (do not care)
+ * BIT [0] Ignored (must be zero)
+ */
+ Descriptor->Address32.Flags = 0b1100;
+
+ // No type specific flags. Set to 0.
+ Descriptor->Address32.SpecificFlags = 0;
+
+ // must be set to zero if _MAX == _MIN.
+ Descriptor->Address32.Granularity = 0x0;
+ /* Process all child initialization nodes */
+
+ // No translation offset.
+ Descriptor->Address32.TranslationOffset = 0;
+
+ // Pcc is unique address.
+ Descriptor->Address32.AddressLength = 1;
+
+ for (i = 0; InitializerOp; i++)
+ {
+ switch (i)
+ {
+
+ case 0: /* Address Min = Max */
+
+ Descriptor->Address32.Minimum =
+ (UINT32) InitializerOp->Asl.Value.Integer;
+ Descriptor->Address32.Maximum =
+ (UINT32) InitializerOp->Asl.Value.Integer;
+
+ break;
+
+ case 1: /* ResSourceIndex [Optional Field - BYTE] */
+
+ if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
+ {
+ /* Found a valid ResourceSourceIndex */
+
+ OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
+ OptionIndex++;
+ Descriptor->Address32.ResourceLength++;
+ ResSourceIndex = TRUE;
+ }
+ break;
+
+ case 2: /* ResSource [Optional Field - STRING] */
+
+ if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
+ (InitializerOp->Asl.Value.String))
+ {
+ if (StringLength)
+ {
+ /* Found a valid ResourceSource */
+
+ Descriptor->Address32.ResourceLength = (UINT16)
+ (Descriptor->Address32.ResourceLength + StringLength);
+
+ strcpy ((char *)
+ &OptionalFields[OptionIndex],
+ InitializerOp->Asl.Value.String);
+
+ /* ResourceSourceIndex must also be valid */
+
+ if (!ResSourceIndex)
+ {
+ AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
+ InitializerOp, NULL);
+ }
+ }
+ }
+
+ break;
+
+ case 3: // DescriptorName
+ UtAttachNamepathToOwner (Info->DescriptorTypeOp, InitializerOp);
+ break;
+
+ default:
+
+ AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
+ break;
+ }
+
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
+ /* Validate the Min/Max/Len/Gran values */
+
+ RsLargeAddressCheck (
+ (UINT64) Descriptor->Address32.Minimum,
+ (UINT64) Descriptor->Address32.Maximum,
+ (UINT64) Descriptor->Address32.AddressLength,
+ (UINT64) Descriptor->Address32.Granularity,
+ Descriptor->Address32.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+ Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
+ OptionIndex + StringLength;
+ return (Rnode);
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: RsDoWordSpaceDescriptor
*
* PARAMETERS: Info - Parse Op and resource template offset
diff --git a/sys/contrib/dev/acpica/compiler/aslrules.y b/sys/contrib/dev/acpica/compiler/aslrules.y
index 79aa2210abb8..c96d4cc75db6 100644
--- a/sys/contrib/dev/acpica/compiler/aslrules.y
+++ b/sys/contrib/dev/acpica/compiler/aslrules.y
@@ -11,7 +11,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslstartup.c b/sys/contrib/dev/acpica/compiler/aslstartup.c
index ea3075bc309a..628a5c1ada2d 100644
--- a/sys/contrib/dev/acpica/compiler/aslstartup.c
+++ b/sys/contrib/dev/acpica/compiler/aslstartup.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -317,7 +317,7 @@ AslDetectSourceFileType (
else
{
fprintf (stderr,
- "Binary file does not contain a valid ACPI table\n");
+ "Binary file does not contain a valid standard ACPI table\n");
}
Type = ASL_INPUT_TYPE_BINARY;
diff --git a/sys/contrib/dev/acpica/compiler/aslstubs.c b/sys/contrib/dev/acpica/compiler/aslstubs.c
index f49fb41410d4..50bda4b83fe1 100644
--- a/sys/contrib/dev/acpica/compiler/aslstubs.c
+++ b/sys/contrib/dev/acpica/compiler/aslstubs.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslsupport.l b/sys/contrib/dev/acpica/compiler/aslsupport.l
index 0daec602e148..74ac78d8c4ef 100644
--- a/sys/contrib/dev/acpica/compiler/aslsupport.l
+++ b/sys/contrib/dev/acpica/compiler/aslsupport.l
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -195,7 +195,7 @@ AslParserCleanup (
*
* DESCRIPTION: Handle #line directives emitted by the preprocessor.
*
- * The #line directive is emitted by the preprocesser, and is used to
+ * The #line directive is emitted by the preprocessor, and is used to
* pass through line numbers from the original source code file to the
* preprocessor output file (.i). This allows any compiler-generated
* error messages to be displayed with the correct line number.
diff --git a/sys/contrib/dev/acpica/compiler/aslsupport.y b/sys/contrib/dev/acpica/compiler/aslsupport.y
index 3f19af2f48b1..3bd09a55e704 100644
--- a/sys/contrib/dev/acpica/compiler/aslsupport.y
+++ b/sys/contrib/dev/acpica/compiler/aslsupport.y
@@ -9,7 +9,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asltokens.y b/sys/contrib/dev/acpica/compiler/asltokens.y
index c43561e7a4a3..50d6031e5ed0 100644
--- a/sys/contrib/dev/acpica/compiler/asltokens.y
+++ b/sys/contrib/dev/acpica/compiler/asltokens.y
@@ -9,7 +9,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -256,6 +256,7 @@ NoEcho('
%token <i> PARSEOP_DWORDCONST
%token <i> PARSEOP_DWORDIO
%token <i> PARSEOP_DWORDMEMORY
+%token <i> PARSEOP_DWORDPCC
%token <i> PARSEOP_DWORDSPACE
%token <i> PARSEOP_EISAID
%token <i> PARSEOP_ELSE
@@ -399,11 +400,18 @@ NoEcho('
%token <i> PARSEOP_PIN_PULLDEFAULT
%token <i> PARSEOP_PIN_PULLDOWN
%token <i> PARSEOP_PIN_PULLUP
+%token <i> PARSEOP_CLOCKINPUT
+%token <i> PARSEOP_CLOCK_HZ
+%token <i> PARSEOP_CLOCK_KHZ
+%token <i> PARSEOP_CLOCK_MHZ
+%token <i> PARSEOP_CLOCK_FIXED
+%token <i> PARSEOP_CLOCK_VARIABLE
%token <i> PARSEOP_POWERRESOURCE
%token <i> PARSEOP_PROCESSOR
%token <i> PARSEOP_QWORDCONST
%token <i> PARSEOP_QWORDIO
%token <i> PARSEOP_QWORDMEMORY
+%token <i> PARSEOP_QWORDPCC
%token <i> PARSEOP_QWORDSPACE
%token <i> PARSEOP_RANGETYPE_ENTIRE
%token <i> PARSEOP_RANGETYPE_ISAONLY
@@ -491,6 +499,7 @@ NoEcho('
%token <i> PARSEOP_WORDBUSNUMBER
%token <i> PARSEOP_WORDCONST
%token <i> PARSEOP_WORDIO
+%token <i> PARSEOP_WORDPCC
%token <i> PARSEOP_WORDSPACE
%token <i> PARSEOP_XFERSIZE_8
%token <i> PARSEOP_XFERSIZE_16
diff --git a/sys/contrib/dev/acpica/compiler/asltransform.c b/sys/contrib/dev/acpica/compiler/asltransform.c
index 54f44363302b..c58f771354f1 100644
--- a/sys/contrib/dev/acpica/compiler/asltransform.c
+++ b/sys/contrib/dev/acpica/compiler/asltransform.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/asltree.c b/sys/contrib/dev/acpica/compiler/asltree.c
index 0454225d694c..9237176c94b5 100644
--- a/sys/contrib/dev/acpica/compiler/asltree.c
+++ b/sys/contrib/dev/acpica/compiler/asltree.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -467,6 +467,7 @@ TrLinkOpChildren (
UINT32 i;
BOOLEAN FirstChild;
+ ACPI_FUNCTION_NAME (TrLinkOpChildren);
va_start (ap, NumChildren);
@@ -624,7 +625,7 @@ TrLinkOpChildren (
if (AcpiGbl_CaptureComments)
{
AslGbl_CommentState.LatestParseOp = Op;
- CvDbgPrint ("TrLinkOpChildren=====Set latest parse op to this op.\n");
+ CvDbgPrint ("%s=====Set latest parse op to this op.\n", ACPI_GET_FUNCTION_NAME);
}
return (Op);
diff --git a/sys/contrib/dev/acpica/compiler/asltypes.h b/sys/contrib/dev/acpica/compiler/asltypes.h
index d5689dea58b0..50234d71f0a7 100644
--- a/sys/contrib/dev/acpica/compiler/asltypes.h
+++ b/sys/contrib/dev/acpica/compiler/asltypes.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -336,7 +336,7 @@ typedef struct asl_file_desc
typedef struct asl_cache_info
{
void *Next;
- char Buffer[1];
+ char Buffer[];
} ASL_CACHE_INFO;
diff --git a/sys/contrib/dev/acpica/compiler/asltypes.y b/sys/contrib/dev/acpica/compiler/asltypes.y
index ba98362cd323..2c2669559585 100644
--- a/sys/contrib/dev/acpica/compiler/asltypes.y
+++ b/sys/contrib/dev/acpica/compiler/asltypes.y
@@ -9,7 +9,7 @@ NoEcho('
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -359,6 +359,8 @@ NoEcho('
%type <n> WireModeKeyword
%type <n> XferSizeKeyword
%type <n> XferTypeKeyword
+%type <n> ClockScaleKeyword
+%type <n> ClockModeKeyword
/* Types */
@@ -411,11 +413,13 @@ NoEcho('
/* Resource Descriptors */
+%type <n> ClockInputTerm
%type <n> ConnectionTerm
%type <n> Csi2SerialBusTerm
%type <n> DMATerm
%type <n> DWordIOTerm
%type <n> DWordMemoryTerm
+%type <n> DWordPccTerm
%type <n> DWordSpaceTerm
%type <n> EndDependentFnTerm
%type <n> ExtendedIOTerm
@@ -443,6 +447,7 @@ NoEcho('
%type <n> PinGroupFunctionTerm
%type <n> QWordIOTerm
%type <n> QWordMemoryTerm
+%type <n> QWordPccTerm
%type <n> QWordSpaceTerm
%type <n> RegisterTerm
%type <n> SpiSerialBusTerm
@@ -455,6 +460,7 @@ NoEcho('
%type <n> VendorShortTerm
%type <n> WordBusNumberTerm
%type <n> WordIOTerm
+%type <n> WordPccTerm
%type <n> WordSpaceTerm
/* Local types that help construct the AML, not in ACPI spec */
diff --git a/sys/contrib/dev/acpica/compiler/aslutils.c b/sys/contrib/dev/acpica/compiler/aslutils.c
index 089101b1a995..267ad8b77e13 100644
--- a/sys/contrib/dev/acpica/compiler/aslutils.c
+++ b/sys/contrib/dev/acpica/compiler/aslutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -610,7 +610,7 @@ UtSetParseOpName (
*
* FUNCTION: UtDisplayOneSummary
*
- * PARAMETERS: FileID - ID of outpout file
+ * PARAMETERS: FileID - ID of output file
*
* RETURN: None
*
@@ -733,7 +733,7 @@ UtDisplayOneSummary (
*
* FUNCTION: UtDisplayErrorSummary
*
- * PARAMETERS: FileID - ID of outpout file
+ * PARAMETERS: FileID - ID of output file
*
* RETURN: None
*
@@ -800,7 +800,7 @@ UtDisplayErrorSummary (
*
* FUNCTION: UtDisplaySummary
*
- * PARAMETERS: FileID - ID of outpout file
+ * PARAMETERS: FileID - ID of output file
*
* RETURN: None
*
diff --git a/sys/contrib/dev/acpica/compiler/asluuid.c b/sys/contrib/dev/acpica/compiler/asluuid.c
index 3512a962962b..712a06fda951 100644
--- a/sys/contrib/dev/acpica/compiler/asluuid.c
+++ b/sys/contrib/dev/acpica/compiler/asluuid.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslwalks.c b/sys/contrib/dev/acpica/compiler/aslwalks.c
index 16c7526aaa52..db2c9daa455e 100644
--- a/sys/contrib/dev/acpica/compiler/aslwalks.c
+++ b/sys/contrib/dev/acpica/compiler/aslwalks.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslxref.c b/sys/contrib/dev/acpica/compiler/aslxref.c
index 7cc72513077e..eb61b1d461cd 100644
--- a/sys/contrib/dev/acpica/compiler/aslxref.c
+++ b/sys/contrib/dev/acpica/compiler/aslxref.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/aslxrefout.c b/sys/contrib/dev/acpica/compiler/aslxrefout.c
index 1ba6f396985a..67e26b3e69de 100644
--- a/sys/contrib/dev/acpica/compiler/aslxrefout.c
+++ b/sys/contrib/dev/acpica/compiler/aslxrefout.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/cvcompiler.c b/sys/contrib/dev/acpica/compiler/cvcompiler.c
index 28fe35bbaa9c..e42dfa8066ac 100644
--- a/sys/contrib/dev/acpica/compiler/cvcompiler.c
+++ b/sys/contrib/dev/acpica/compiler/cvcompiler.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/cvdisasm.c b/sys/contrib/dev/acpica/compiler/cvdisasm.c
index 62feb7b1f33c..ebc93a0bd194 100644
--- a/sys/contrib/dev/acpica/compiler/cvdisasm.c
+++ b/sys/contrib/dev/acpica/compiler/cvdisasm.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/cvparser.c b/sys/contrib/dev/acpica/compiler/cvparser.c
index 978fa2b0536d..724daa0dea67 100644
--- a/sys/contrib/dev/acpica/compiler/cvparser.c
+++ b/sys/contrib/dev/acpica/compiler/cvparser.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/dtcompile.c b/sys/contrib/dev/acpica/compiler/dtcompile.c
index 7899a54b1eb0..873baf397e47 100644
--- a/sys/contrib/dev/acpica/compiler/dtcompile.c
+++ b/sys/contrib/dev/acpica/compiler/dtcompile.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -452,6 +452,48 @@ DtCompileDataTable (
}
/*
+ * If the first field is named "CDAT Table Length" (not "Signature"),
+ * assume that we have a CDAT table (whose table header does not have
+ * a signature). Instead, the TableLength field is where the
+ * signature would (normally) be.
+ */
+ else if (!strcmp ((*FieldList)->Name, "CDAT Table Length"))
+ {
+ /* No longer true: (However, use this technique in the disassembler)
+ * We are assuming that there
+ * should be at least one non-ASCII byte in the 4-character
+ * Signature field, (At least the high-order byte should be zero).
+ */
+ Status = DtCompileTable (FieldList, AcpiDmTableInfoCdatTableHdr,
+ &AslGbl_RootTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ /* Compile the CDAT */
+
+ DtPushSubtable (AslGbl_RootTable);
+ Status = DtCompileCdat ((void **) FieldList);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ /*
+ * Set the overall table length and the table checksum.
+ * The entire compiled table (including the CDAT table header with
+ * the table length and checksum) is in AslGbl_RootTable->Buffer.
+ */
+ DtSetTableLength ();
+ DtSetTableChecksum (&ACPI_CAST_PTR (ACPI_TABLE_CDAT, AslGbl_RootTable->Buffer)->Checksum);
+
+ DtDumpFieldList (RootField);
+ DtDumpSubtableList ();
+ return (AE_OK);
+ }
+
+ /*
* All other tables must use the common ACPI table header. Insert the
* current iASL IDs (name, version), and compile the header now.
*/
diff --git a/sys/contrib/dev/acpica/compiler/dtcompiler.h b/sys/contrib/dev/acpica/compiler/dtcompiler.h
index e99b5c71b00b..2a066936b41e 100644
--- a/sys/contrib/dev/acpica/compiler/dtcompiler.h
+++ b/sys/contrib/dev/acpica/compiler/dtcompiler.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -578,7 +578,11 @@ DtCompileAsf (
void **PFieldList);
ACPI_STATUS
-DtCompileCpep (
+DtCompileAspt (
+ void **PFieldList);
+
+ACPI_STATUS
+DtCompileCdat (
void **PFieldList);
ACPI_STATUS
@@ -586,6 +590,10 @@ DtCompileCedt (
void **PFieldList);
ACPI_STATUS
+DtCompileCpep (
+ void **PFieldList);
+
+ACPI_STATUS
DtCompileCsrt (
void **PFieldList);
@@ -606,6 +614,10 @@ DtCompileEinj (
void **PFieldList);
ACPI_STATUS
+DtCompileErdt (
+ void **PFieldList);
+
+ACPI_STATUS
DtCompileErst (
void **PFieldList);
@@ -650,19 +662,23 @@ DtCompileMcfg (
void **PFieldList);
ACPI_STATUS
+DtCompileMpam (
+ void **PFieldList);
+
+ACPI_STATUS
DtCompileMpst (
void **PFieldList);
ACPI_STATUS
-DtCompileMsct (
+DtCompileMrrm (
void **PFieldList);
ACPI_STATUS
-DtCompileNfit (
+DtCompileMsct (
void **PFieldList);
ACPI_STATUS
-DtCompileNhlt (
+DtCompileNfit (
void **PFieldList);
ACPI_STATUS
@@ -690,10 +706,22 @@ DtCompilePrmt (
void **PFieldList);
ACPI_STATUS
+DtCompileRas2 (
+ void **PFieldList);
+
+ACPI_STATUS
DtCompileRgrt (
void **PFieldList);
ACPI_STATUS
+DtCompileRhct (
+ void **PFieldList);
+
+ACPI_STATUS
+DtCompileRimt (
+ void **PFieldList);
+
+ACPI_STATUS
DtCompileRsdt (
void **PFieldList);
@@ -769,10 +797,13 @@ extern const unsigned char TemplateAest[];
extern const unsigned char TemplateAgdi[];
extern const unsigned char TemplateApmt[];
extern const unsigned char TemplateAsf[];
+extern const unsigned char TemplateAspt[];
extern const unsigned char TemplateBoot[];
extern const unsigned char TemplateBdat[];
extern const unsigned char TemplateBert[];
extern const unsigned char TemplateBgrt[];
+extern const unsigned char TemplateCcel[];
+extern const unsigned char TemplateCdat[];
extern const unsigned char TemplateCedt[];
extern const unsigned char TemplateCpep[];
extern const unsigned char TemplateCsrt[];
@@ -782,6 +813,7 @@ extern const unsigned char TemplateDmar[];
extern const unsigned char TemplateDrtm[];
extern const unsigned char TemplateEcdt[];
extern const unsigned char TemplateEinj[];
+extern const unsigned char TemplateErdt[];
extern const unsigned char TemplateErst[];
extern const unsigned char TemplateFadt[];
extern const unsigned char TemplateFpdt[];
@@ -795,11 +827,12 @@ extern const unsigned char TemplateLpit[];
extern const unsigned char TemplateMadt[];
extern const unsigned char TemplateMcfg[];
extern const unsigned char TemplateMchi[];
+extern const unsigned char TemplateMpam[];
extern const unsigned char TemplateMpst[];
+extern const unsigned char TemplateMrrm[];
extern const unsigned char TemplateMsct[];
extern const unsigned char TemplateMsdm[];
extern const unsigned char TemplateNfit[];
-extern const unsigned char TemplateNhlt[];
extern const unsigned char TemplatePcct[];
extern const unsigned char TemplatePdtt[];
extern const unsigned char TemplatePhat[];
@@ -807,7 +840,10 @@ extern const unsigned char TemplatePmtt[];
extern const unsigned char TemplatePptt[];
extern const unsigned char TemplatePrmt[];
extern const unsigned char TemplateRasf[];
+extern const unsigned char TemplateRas2[];
extern const unsigned char TemplateRgrt[];
+extern const unsigned char TemplateRhct[];
+extern const unsigned char TemplateRimt[];
extern const unsigned char TemplateRsdt[];
extern const unsigned char TemplateS3pt[];
extern const unsigned char TemplateSbst[];
diff --git a/sys/contrib/dev/acpica/compiler/dtcompilerparser.l b/sys/contrib/dev/acpica/compiler/dtcompilerparser.l
index c0e6728a3882..322ee225a60d 100644
--- a/sys/contrib/dev/acpica/compiler/dtcompilerparser.l
+++ b/sys/contrib/dev/acpica/compiler/dtcompilerparser.l
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/dtcompilerparser.y b/sys/contrib/dev/acpica/compiler/dtcompilerparser.y
index 57b7d5979959..f160434e0959 100644
--- a/sys/contrib/dev/acpica/compiler/dtcompilerparser.y
+++ b/sys/contrib/dev/acpica/compiler/dtcompilerparser.y
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/dtexpress.c b/sys/contrib/dev/acpica/compiler/dtexpress.c
index eb44abcba7c1..65f10aac9f00 100644
--- a/sys/contrib/dev/acpica/compiler/dtexpress.c
+++ b/sys/contrib/dev/acpica/compiler/dtexpress.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -480,10 +480,11 @@ static void
DtInsertLabelField (
DT_FIELD *Field)
{
+ ACPI_FUNCTION_NAME (DtInsertLabelField);
DbgPrint (ASL_DEBUG_OUTPUT,
- "DtInsertLabelField: Found Label : %s at output table offset %X\n",
- Field->Value, Field->TableOffset);
+ "%s: Found Label : %s at output table offset %X\n",
+ ACPI_GET_FUNCTION_NAME, Field->Value, Field->TableOffset);
Field->NextLabel = AslGbl_LabelList;
AslGbl_LabelList = Field;
diff --git a/sys/contrib/dev/acpica/compiler/dtfield.c b/sys/contrib/dev/acpica/compiler/dtfield.c
index a2051bcb2a37..ded7315aaa3f 100644
--- a/sys/contrib/dev/acpica/compiler/dtfield.c
+++ b/sys/contrib/dev/acpica/compiler/dtfield.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -281,8 +281,8 @@ DtCompileString (
if (Length > ByteLength)
{
sprintf (AslGbl_MsgBuffer,
- "Maximum %u characters, found %u characters [%s]",
- ByteLength, Length, Field->Value);
+ "Maximum %u characters, found %u characters [%.*s]",
+ ByteLength, Length, (ASL_MSG_BUFFER_SIZE / 2), Field->Value);
DtError (ASL_ERROR, ASL_MSG_STRING_LENGTH, Field, AslGbl_MsgBuffer);
Length = ByteLength;
}
@@ -678,7 +678,7 @@ DtCompileFlag (
case ACPI_DMT_FLAGS8_2:
- BitPosition = 2;
+ BitPosition = 2;
BitLength = 8;
break;
diff --git a/sys/contrib/dev/acpica/compiler/dtio.c b/sys/contrib/dev/acpica/compiler/dtio.c
index d24001689a8a..7bcf16b8f9d1 100644
--- a/sys/contrib/dev/acpica/compiler/dtio.c
+++ b/sys/contrib/dev/acpica/compiler/dtio.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -285,7 +285,7 @@ DtTrim (
ReturnString = UtLocalCacheCalloc (Length + 1);
if (strlen (Start))
{
- strncpy (ReturnString, Start, Length);
+ memcpy (ReturnString, Start, Length);
}
ReturnString[Length] = 0;
@@ -377,7 +377,7 @@ DtParseLine (
Length = ACPI_PTR_DIFF (End, Start);
TmpName = UtLocalCalloc (Length + 1);
- strncpy (TmpName, Start, Length);
+ memcpy (TmpName, Start, Length);
Name = DtTrim (TmpName);
ACPI_FREE (TmpName);
@@ -425,7 +425,7 @@ DtParseLine (
Length = ACPI_PTR_DIFF (End, Start);
TmpValue = UtLocalCalloc (Length + 1);
- strncpy (TmpValue, Start, Length);
+ memcpy (TmpValue, Start, Length);
Value = DtTrim (TmpValue);
ACPI_FREE (TmpValue);
@@ -952,7 +952,7 @@ DtDumpBuffer (
UINT8 BufChar;
- FlPrintFile (FileId, "Output: [%3.3Xh %4.4d %3d] ",
+ FlPrintFile (FileId, "Output: [%3.3Xh %4.4d %3.3Xh] ",
Offset, Offset, Length);
i = 0;
diff --git a/sys/contrib/dev/acpica/compiler/dtparser.l b/sys/contrib/dev/acpica/compiler/dtparser.l
index 6ecfed267c76..90fc39d8c66a 100644
--- a/sys/contrib/dev/acpica/compiler/dtparser.l
+++ b/sys/contrib/dev/acpica/compiler/dtparser.l
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/dtparser.y b/sys/contrib/dev/acpica/compiler/dtparser.y
index ccf9eb5d3c00..d6d584b2c6e9 100644
--- a/sys/contrib/dev/acpica/compiler/dtparser.y
+++ b/sys/contrib/dev/acpica/compiler/dtparser.y
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/dtsubtable.c b/sys/contrib/dev/acpica/compiler/dtsubtable.c
index 2865e0b39036..0c660b7ab8bb 100644
--- a/sys/contrib/dev/acpica/compiler/dtsubtable.c
+++ b/sys/contrib/dev/acpica/compiler/dtsubtable.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/dttable.c b/sys/contrib/dev/acpica/compiler/dttable.c
index 86156ba25042..effcf6d65e1c 100644
--- a/sys/contrib/dev/acpica/compiler/dttable.c
+++ b/sys/contrib/dev/acpica/compiler/dttable.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/dttable1.c b/sys/contrib/dev/acpica/compiler/dttable1.c
index 0fab7d880724..391bff98210d 100644
--- a/sys/contrib/dev/acpica/compiler/dttable1.c
+++ b/sys/contrib/dev/acpica/compiler/dttable1.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -206,7 +206,14 @@ DtCompileAest (
UINT32 i;
UINT32 Offset;
DT_FIELD **PFieldList = (DT_FIELD **) List;
+ ACPI_AEST_NODE_INTERFACE_HEADER *AestNodeHeader;
+ UINT8 Revision;
+ ACPI_TABLE_HEADER *Header;
+ ParentTable = DtPeekSubtable ();
+
+ Header = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer);
+ Revision = Header->Revision;
while (*PFieldList)
{
@@ -257,8 +264,21 @@ DtCompileAest (
break;
case ACPI_AEST_VENDOR_ERROR_NODE:
+ switch (Revision)
+ {
+ case 1:
+ InfoTable = AcpiDmTableInfoAestVendorError;
+ break;
- InfoTable = AcpiDmTableInfoAestVendorError;
+ case 2:
+ InfoTable = AcpiDmTableInfoAestVendorV2Error;
+ break;
+
+ default:
+ AcpiOsPrintf ("Unknown AEST Vendor Error Revision: %X\n",
+ Revision);
+ return (AE_ERROR);
+ }
break;
case ACPI_AEST_GIC_ERROR_NODE:
@@ -266,6 +286,16 @@ DtCompileAest (
InfoTable = AcpiDmTableInfoAestGicError;
break;
+ case ACPI_AEST_PCIE_ERROR_NODE:
+
+ InfoTable = AcpiDmTableInfoAestPCIeError;
+ break;
+
+ case ACPI_AEST_PROXY_ERROR_NODE:
+
+ InfoTable = AcpiDmTableInfoAestProxyError;
+ break;
+
/* Error case below */
default:
AcpiOsPrintf ("Unknown AEST Subtable Type: %X\n",
@@ -341,9 +371,57 @@ DtCompileAest (
}
/* Compile the (required) node interface structure */
+ if (Revision == 1)
+ {
+ InfoTable = AcpiDmTableInfoAestXface;
+ }
+ else if (Revision == 2)
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoAestXfaceHeader,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoAestXface,
- &Subtable);
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ Offset += Subtable->Length;
+
+ AestNodeHeader = ACPI_CAST_PTR (ACPI_AEST_NODE_INTERFACE_HEADER,
+ Subtable->Buffer);
+
+ switch (AestNodeHeader->GroupFormat)
+ {
+ case ACPI_AEST_NODE_GROUP_FORMAT_4K:
+
+ InfoTable = AcpiDmTableInfoAestXface4k;
+ break;
+
+ case ACPI_AEST_NODE_GROUP_FORMAT_16K:
+
+ InfoTable = AcpiDmTableInfoAestXface16k;
+ break;
+
+ case ACPI_AEST_NODE_GROUP_FORMAT_64K:
+
+ InfoTable = AcpiDmTableInfoAestXface64k;
+ break;
+
+ /* Error case below */
+ default:
+ AcpiOsPrintf ("Unknown AEST Interface Group Format: %X\n",
+ AestNodeHeader->GroupFormat);
+ return (AE_ERROR);
+ }
+ }
+ else
+ {
+ AcpiOsPrintf ("Unknown AEST Revision: %X\n", Revision);
+ }
+
+ Status = DtCompileTable (PFieldList, InfoTable, &Subtable);
if (ACPI_FAILURE (Status))
{
return (Status);
@@ -367,8 +445,22 @@ DtCompileAest (
for (i = 0; i < ErrorNodeHeader->NodeInterruptCount; i++)
{
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoAestXrupt,
- &Subtable);
+ switch (Revision) {
+ case 1:
+
+ InfoTable = AcpiDmTableInfoAestXrupt;
+ break;
+
+ case 2:
+
+ InfoTable = AcpiDmTableInfoAestXruptV2;
+ break;
+
+ default:
+ AcpiOsPrintf ("Unknown AEST Revision: %X\n", Revision);
+ return (AE_ERROR);
+ }
+ Status = DtCompileTable (PFieldList, InfoTable, &Subtable);
if (ACPI_FAILURE (Status))
{
return (Status);
@@ -654,6 +746,218 @@ DtCompileAsf (
return (AE_OK);
}
+/******************************************************************************
+ *
+ * FUNCTION: DtCompileAspt
+ *
+ * PARAMETERS: List - Current field list pointer
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Compile ASPT.
+ *
+ *****************************************************************************/
+
+ACPI_STATUS
+DtCompileAspt (
+ void **List)
+{
+ ACPI_ASPT_HEADER *AsptTable;
+ DT_SUBTABLE *Subtable;
+ DT_SUBTABLE *ParentTable;
+ ACPI_DMTABLE_INFO *InfoTable;
+ ACPI_STATUS Status;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ DT_FIELD *SubtableStart;
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoAspt, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ while (*PFieldList)
+ {
+ SubtableStart = *PFieldList;
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoAsptHdr,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ DtPushSubtable (Subtable);
+
+ AsptTable = ACPI_CAST_PTR (ACPI_ASPT_HEADER, Subtable->Buffer);
+
+ switch (AsptTable->Type) /* Mask off top bit */
+ {
+ case ACPI_ASPT_TYPE_GLOBAL_REGS:
+
+ InfoTable = AcpiDmTableInfoAspt0;
+ break;
+
+ case ACPI_ASPT_TYPE_SEV_MBOX_REGS:
+
+ InfoTable = AcpiDmTableInfoAspt1;
+ break;
+
+ case ACPI_ASPT_TYPE_ACPI_MBOX_REGS:
+
+ InfoTable = AcpiDmTableInfoAspt2;
+ break;
+
+ default:
+
+ DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASPT");
+ return (AE_ERROR);
+ }
+
+ Status = DtCompileTable (PFieldList, InfoTable, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ DtPopSubtable ();
+ }
+
+ return (AE_OK);
+}
+
+
+/******************************************************************************
+ *
+ * FUNCTION: DtCompileCdat
+ *
+ * PARAMETERS: List - Current field list pointer
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Compile CDAT.
+ *
+ *****************************************************************************/
+
+ACPI_STATUS
+DtCompileCdat (
+ void **List)
+{
+ ACPI_STATUS Status = AE_OK;
+ DT_SUBTABLE *Subtable;
+ DT_SUBTABLE *ParentTable;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ ACPI_CDAT_HEADER *CdatHeader;
+ ACPI_DMTABLE_INFO *InfoTable = NULL;
+ DT_FIELD *SubtableStart;
+
+
+ /* Walk the parse tree.
+ *
+ * Note: Main table consists of only the CDAT table header
+ * (This is not the standard ACPI table header, however)--
+ * Followed by some number of subtables.
+ */
+ while (*PFieldList)
+ {
+ SubtableStart = *PFieldList;
+
+ /* Compile the expected CDAT Subtable header */
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoCdatHeader,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ DtPushSubtable (Subtable);
+
+ CdatHeader = ACPI_CAST_PTR (ACPI_CDAT_HEADER, Subtable->Buffer);
+
+ /* Decode the subtable by type */
+
+ switch (CdatHeader->Type)
+ {
+ case ACPI_CDAT_TYPE_DSMAS:
+ InfoTable = AcpiDmTableInfoCdat0;
+ break;
+
+ case ACPI_CDAT_TYPE_DSLBIS:
+ InfoTable = AcpiDmTableInfoCdat1;
+ break;
+
+ case ACPI_CDAT_TYPE_DSMSCIS:
+ InfoTable = AcpiDmTableInfoCdat2;
+ break;
+
+ case ACPI_CDAT_TYPE_DSIS:
+ InfoTable = AcpiDmTableInfoCdat3;
+ break;
+
+ case ACPI_CDAT_TYPE_DSEMTS:
+ InfoTable = AcpiDmTableInfoCdat4;
+ break;
+
+ case ACPI_CDAT_TYPE_SSLBIS:
+ InfoTable = AcpiDmTableInfoCdat5;
+ break;
+
+ default:
+ DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "CDAT");
+ }
+
+ /* Compile the CDAT subtable */
+
+ Status = DtCompileTable (PFieldList, InfoTable, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ switch (CdatHeader->Type)
+ {
+ /* Multiple entries supported for this type */
+
+ case ACPI_CDAT_TYPE_SSLBIS:
+
+ /*
+ * Check for multiple SSLBEs
+ */
+ while (*PFieldList && !AcpiUtStricmp ((*PFieldList)->Name, "Port X ID"))
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoCdatEntries, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ /* Pop off the CDAT Subtable header subtree */
+
+ DtPopSubtable ();
+ }
+
+ return (AE_OK);
+}
+
/******************************************************************************
*
@@ -727,7 +1031,7 @@ DtCompileCedt (
/* Look in buffer for the number of targets */
offset = (unsigned int) ACPI_OFFSET (ACPI_CEDT_CFMWS, InterleaveWays);
dump = (unsigned char *) Subtable->Buffer - 4; /* place at beginning of cedt1 */
- max = 0x01 << dump[offset]; /* 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX */
+ max = 0x01 << dump[offset]; /* 2^max, so 0=1, 1=2, 2=4, 3=8. 8 is MAX */
if (max > 8) max=1; /* Error in encoding Interleaving Ways. */
if (max == 1) /* if only one target, then break here. */
break; /* break if only one target. */
@@ -762,6 +1066,53 @@ DtCompileCedt (
ParentTable = DtPeekSubtable ();
break;
}
+ case ACPI_CEDT_TYPE_CXIMS: {
+ unsigned char *dump;
+ unsigned int idx, offset, max = 0;
+
+ /* Compile table with first "Xor map" */
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt2, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ /* Look in buffer for the number of Xor maps */
+ offset = (unsigned int) ACPI_OFFSET (ACPI_CEDT_CXIMS, NrXormaps);
+ dump = (unsigned char *) Subtable->Buffer - 4; /* place at beginning of cedt2 */
+ max = dump[offset];
+
+ /* We need to add more XOR maps, so write the current Subtable. */
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable); /* Insert AcpiDmTableInfoCedt2 table so we can put in */
+ DtPushSubtable (Subtable);
+
+ /* Now, find out all Xor maps beyond the first. */
+
+ for (idx = 1; idx < max; idx++) {
+ ParentTable = DtPeekSubtable ();
+
+ if (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoCedt2_te, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (Subtable)
+ {
+ DtInsertSubtable (ParentTable, Subtable); /* got an Xor map, so insert table. */
+ InsertFlag = 0;
+ }
+ }
+ }
+
+ DtPopSubtable ();
+ ParentTable = DtPeekSubtable ();
+ break;
+ }
default:
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "CEDT");
@@ -1156,6 +1507,11 @@ DtCompileDmar (
InfoTable = AcpiDmTableInfoDmar5;
break;
+ case ACPI_DMAR_TYPE_SIDP:
+
+ InfoTable = AcpiDmTableInfoDmar6;
+ break;
+
default:
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "DMAR");
@@ -1397,6 +1753,265 @@ DtCompileEinj (
/******************************************************************************
*
+ * FUNCTION: DtCompileErdt
+ *
+ * PARAMETERS: List - Current field list pointer
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Compile ERST. Complex table with subtables and subsubtables.
+ *
+ *****************************************************************************/
+
+ACPI_STATUS
+DtCompileErdt (
+ void **List)
+{
+ ACPI_STATUS Status;
+ DT_SUBTABLE *Subtable, *RmddSubtable = NULL, *Subsubtable;
+ DT_SUBTABLE *ParentTable;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ DT_FIELD *SubtableStart;
+ ACPI_SUBTBL_HDR_16 *ErdtHeader;
+ ACPI_DMTABLE_INFO *InfoTable;
+ ACPI_ERDT_MMRC *Mmrc;
+ ACPI_ERDT_IBRD *Ibrd;
+ UINT32 NumEntries;
+ BOOLEAN SeenRmdd = FALSE;
+ BOOLEAN SeenSubtable = FALSE;
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoErdt,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ while (*PFieldList)
+ {
+ SubtableStart = *PFieldList;
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoErdtHdr,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ErdtHeader = ACPI_CAST_PTR (ACPI_SUBTBL_HDR_16, Subtable->Buffer);
+
+ /* RMDD tables at top level. All others are subtables of preceeding RMDD */
+ if (ErdtHeader->Type == ACPI_ERDT_TYPE_RMDD)
+ {
+ if (SeenRmdd && SeenSubtable)
+ DtPopSubtable ();
+ SeenRmdd = TRUE;
+ SeenSubtable = FALSE;
+ RmddSubtable = Subtable;
+ }
+ else
+ {
+ if (!SeenSubtable)
+ {
+ DtPushSubtable (RmddSubtable);
+ SeenSubtable = TRUE;
+ }
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ DtPushSubtable (Subtable);
+
+ switch (ErdtHeader->Type)
+ {
+ case ACPI_ERDT_TYPE_RMDD:
+ InfoTable = AcpiDmTableInfoErdtRmdd;
+ break;
+
+ case ACPI_ERDT_TYPE_CACD:
+ InfoTable = AcpiDmTableInfoErdtCacd;
+ break;
+
+ case ACPI_ERDT_TYPE_DACD:
+ InfoTable = AcpiDmTableInfoErdtDacd;
+ break;
+
+ case ACPI_ERDT_TYPE_CMRC:
+ InfoTable = AcpiDmTableInfoErdtCmrc;
+ break;
+
+ case ACPI_ERDT_TYPE_MMRC:
+ InfoTable = AcpiDmTableInfoErdtMmrc;
+ 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;
+ break;
+
+ case ACPI_ERDT_TYPE_IBAD:
+ InfoTable = AcpiDmTableInfoErdtIbad;
+ break;
+
+ case ACPI_ERDT_TYPE_CARD:
+ InfoTable = AcpiDmTableInfoErdtCard;
+ break;
+
+ default:
+ DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ERDT");
+ return (AE_ERROR);
+ }
+
+ Status = DtCompileTable (PFieldList, InfoTable, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ /* Some subtable types end with flex arrays */
+
+ switch (ErdtHeader->Type)
+ {
+ case ACPI_ERDT_TYPE_CACD:
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoErdtCacdX2apic, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (!Subtable)
+ {
+ break;
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ }
+ break;
+
+ case ACPI_ERDT_TYPE_DACD:
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoErdtDacdScope, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (!Subtable)
+ {
+ break;
+ }
+
+ DtPushSubtable (Subtable);
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoErdtDacdPath, &Subsubtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (!Subsubtable)
+ {
+ break;
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subsubtable);
+ }
+ DtPopSubtable ();
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ }
+ break;
+
+ case ACPI_ERDT_TYPE_MMRC:
+ Mmrc = ACPI_SUB_PTR (ACPI_ERDT_MMRC, Subtable->Buffer,
+ sizeof(ACPI_SUBTBL_HDR_16));
+ NumEntries = 0;
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoErdtMmrcCorrFactor, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (!Subtable)
+ {
+ break;
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ NumEntries++;
+ }
+ Mmrc->CorrFactorListLen = NumEntries;
+ break;
+
+ case ACPI_ERDT_TYPE_IBRD:
+ Ibrd = ACPI_SUB_PTR (ACPI_ERDT_IBRD, Subtable->Buffer,
+ sizeof(ACPI_SUBTBL_HDR_16));
+ NumEntries = 0;
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoErdtIbrdCorrFactor, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (!Subtable)
+ {
+ break;
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ NumEntries++;
+ }
+ Ibrd->CorrFactorListLen = NumEntries;
+ break;
+
+ default:
+ /* Already checked for valid subtable type above */
+
+ break;
+ }
+ DtPopSubtable ();
+ }
+
+ if (SeenSubtable)
+ {
+ DtPopSubtable ();
+ }
+
+ return (AE_OK);
+}
+
+
+/******************************************************************************
+ *
* FUNCTION: DtCompileErst
*
* PARAMETERS: List - Current field list pointer
@@ -1882,7 +2497,7 @@ DtCompileHmat (
DtInsertSubtable (ParentTable, Subtable);
HmatStruct->Length += Subtable->Length;
- /* Compile HMAT structure additionals */
+ /* Compile HMAT structure additional */
switch (HmatStruct->Type)
{
@@ -2592,7 +3207,6 @@ DtCompileIvrs (
DtInsertSubtable (MainSubtable, Subtable);
DtPushSubtable (Subtable);
- ParentTable = MainSubtable;
break;
case ACPI_IVRS_TYPE_HID:
@@ -2729,3 +3343,254 @@ DtCompileIvrs (
return (AE_OK);
}
+
+
+/******************************************************************************
+ *
+ * FUNCTION: DtCompileRimt
+ *
+ * PARAMETERS: List - Current field list pointer
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Compile RIMT.
+ *
+ *****************************************************************************/
+
+ACPI_STATUS
+DtCompileRimt (
+ void **List)
+{
+ ACPI_RIMT_PLATFORM_DEVICE *PlatDevNode;
+ ACPI_RIMT_PCIE_RC *PcieRcNode;
+ ACPI_TABLE_RIMT *Rimt;
+ ACPI_RIMT_IOMMU *IommuNode;
+ ACPI_RIMT_NODE *RimtNode;
+ ACPI_STATUS Status;
+ DT_SUBTABLE *Subtable;
+ DT_SUBTABLE *ParentTable;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ DT_FIELD *SubtableStart;
+ UINT32 NodeNumber;
+ UINT32 NodeLength;
+ UINT16 IdMappingNumber;
+ UINT32 i;
+
+
+ ParentTable = DtPeekSubtable ();
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRimt, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+
+ /*
+ * Using ACPI_SUB_PTR, We needn't define a separate structure. Care
+ * should be taken to avoid accessing ACPI_TABLE_HEADER fields.
+ */
+ Rimt = ACPI_SUB_PTR (ACPI_TABLE_RIMT, Subtable->Buffer,
+ sizeof (ACPI_TABLE_HEADER));
+
+ NodeNumber = 0;
+ while (*PFieldList)
+ {
+ SubtableStart = *PFieldList;
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRimtNodeHdr, &Subtable);
+
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ RimtNode = ACPI_CAST_PTR (ACPI_RIMT_NODE, Subtable->Buffer);
+ NodeLength = ACPI_OFFSET (ACPI_RIMT_NODE, NodeData);
+
+ DtPushSubtable (Subtable);
+ ParentTable = DtPeekSubtable ();
+
+ switch (RimtNode->Type)
+ {
+ case ACPI_RIMT_NODE_TYPE_IOMMU:
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRimtIommu,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ IommuNode = ACPI_CAST_PTR (ACPI_RIMT_IOMMU, Subtable->Buffer);
+ DtInsertSubtable (ParentTable, Subtable);
+ NodeLength += Subtable->Length;
+
+ for (i = 0; i < IommuNode->NumInterruptWires; i++)
+ {
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoRimtIommuWire,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (!Subtable)
+ {
+ break;
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ NodeLength += Subtable->Length;
+ }
+ }
+
+ break;
+
+ case ACPI_RIMT_NODE_TYPE_PCIE_ROOT_COMPLEX:
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRimtPcieRc,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ PcieRcNode = ACPI_CAST_PTR (ACPI_RIMT_PCIE_RC, Subtable->Buffer);
+ NodeLength += Subtable->Length;
+
+ /* Compile Array of ID mappings */
+
+ PcieRcNode->IdMappingOffset = (UINT16) NodeLength;
+ IdMappingNumber = 0;
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoRimtIdMapping,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ if (!Subtable)
+ {
+ break;
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ NodeLength += sizeof (ACPI_RIMT_ID_MAPPING);
+ IdMappingNumber++;
+ }
+
+ PcieRcNode->NumIdMappings = IdMappingNumber;
+ if (!IdMappingNumber)
+ {
+ PcieRcNode->IdMappingOffset = 0;
+ }
+
+ break;
+
+ case ACPI_RIMT_NODE_TYPE_PLAT_DEVICE:
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRimtPlatDev,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ PlatDevNode = ACPI_CAST_PTR (ACPI_RIMT_PLATFORM_DEVICE, Subtable->Buffer);
+ NodeLength += Subtable->Length;
+
+ /*
+ * Padding - Variable-length data
+ * Optionally allows the offset of the ID mappings to be used
+ * for filling this field.
+ */
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRimtPlatDevPad,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ if (Subtable)
+ {
+ DtInsertSubtable (ParentTable, Subtable);
+ NodeLength += Subtable->Length;
+ }
+ else
+ {
+ if (NodeLength > PlatDevNode->IdMappingOffset)
+ {
+ return (AE_BAD_DATA);
+ }
+
+ if (NodeLength < PlatDevNode->IdMappingOffset)
+ {
+ Status = DtCompilePadding (
+ PlatDevNode->IdMappingOffset - (UINT16) NodeLength,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ NodeLength = PlatDevNode->IdMappingOffset;
+ }
+ }
+
+ /* Compile Array of ID mappings */
+
+ PlatDevNode->IdMappingOffset = (UINT16) NodeLength;
+ IdMappingNumber = 0;
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoRimtIdMapping,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ if (!Subtable)
+ {
+ break;
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ NodeLength += sizeof (ACPI_RIMT_ID_MAPPING);
+ IdMappingNumber++;
+ }
+
+ PlatDevNode->NumIdMappings = IdMappingNumber;
+ if (!IdMappingNumber)
+ {
+ PlatDevNode->IdMappingOffset = 0;
+ }
+
+ break;
+
+
+ default:
+
+ DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "RIMT");
+ return (AE_ERROR);
+ }
+
+ DtPopSubtable ();
+ ParentTable = DtPeekSubtable ();
+ NodeNumber++;
+ }
+
+ Rimt->NumNodes = NodeNumber;
+ return (AE_OK);
+}
diff --git a/sys/contrib/dev/acpica/compiler/dttable2.c b/sys/contrib/dev/acpica/compiler/dttable2.c
index 73c369c12948..754880346299 100644
--- a/sys/contrib/dev/acpica/compiler/dttable2.c
+++ b/sys/contrib/dev/acpica/compiler/dttable2.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -254,8 +254,10 @@ DtCompileMadt (
DT_SUBTABLE *ParentTable;
DT_FIELD **PFieldList = (DT_FIELD **) List;
DT_FIELD *SubtableStart;
+ ACPI_TABLE_HEADER *Table;
ACPI_SUBTABLE_HEADER *MadtHeader;
ACPI_DMTABLE_INFO *InfoTable;
+ UINT8 Revision;
Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadt,
@@ -268,6 +270,9 @@ DtCompileMadt (
ParentTable = DtPeekSubtable ();
DtInsertSubtable (ParentTable, Subtable);
+ Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer);
+ Revision = Table->Revision;
+
while (*PFieldList)
{
SubtableStart = *PFieldList;
@@ -343,7 +348,12 @@ DtCompileMadt (
case ACPI_MADT_TYPE_GENERIC_INTERRUPT:
- InfoTable = AcpiDmTableInfoMadt11;
+ if (Revision > 6)
+ InfoTable = AcpiDmTableInfoMadt11b;
+ else if (Revision == 6)
+ InfoTable = AcpiDmTableInfoMadt11a;
+ else
+ InfoTable = AcpiDmTableInfoMadt11;
break;
case ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR:
@@ -358,12 +368,15 @@ DtCompileMadt (
case ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR:
- InfoTable = AcpiDmTableInfoMadt14;
+ InfoTable = Revision > 6 ? AcpiDmTableInfoMadt14a
+ : AcpiDmTableInfoMadt14;
break;
case ACPI_MADT_TYPE_GENERIC_TRANSLATOR:
- InfoTable = AcpiDmTableInfoMadt15;
+ InfoTable = Revision > 6 ? AcpiDmTableInfoMadt15a
+ : AcpiDmTableInfoMadt15;
+
break;
case ACPI_MADT_TYPE_MULTIPROC_WAKEUP:
@@ -371,11 +384,66 @@ DtCompileMadt (
InfoTable = AcpiDmTableInfoMadt16;
break;
+ case ACPI_MADT_TYPE_CORE_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt17;
+ break;
+
+ case ACPI_MADT_TYPE_LIO_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt18;
+ break;
+
+ case ACPI_MADT_TYPE_HT_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt19;
+ break;
+
+ case ACPI_MADT_TYPE_EIO_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt20;
+ break;
+
+ case ACPI_MADT_TYPE_MSI_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt21;
+ break;
+
+ case ACPI_MADT_TYPE_BIO_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt22;
+ break;
+
+ case ACPI_MADT_TYPE_LPC_PIC:
+
+ InfoTable = AcpiDmTableInfoMadt23;
+ break;
+
+ case ACPI_MADT_TYPE_RINTC:
+
+ InfoTable = AcpiDmTableInfoMadt24;
+ break;
+
+ case ACPI_MADT_TYPE_IMSIC:
+
+ InfoTable = AcpiDmTableInfoMadt25;
+ break;
+
+ case ACPI_MADT_TYPE_APLIC:
+
+ InfoTable = AcpiDmTableInfoMadt26;
+ break;
+
+ case ACPI_MADT_TYPE_PLIC:
+
+ InfoTable = AcpiDmTableInfoMadt27;
+ break;
+
default:
if (MadtHeader->Type >= ACPI_MADT_TYPE_OEM_RESERVED)
{
- InfoTable = AcpiDmTableInfoMadt17;
+ InfoTable = AcpiDmTableInfoMadt128;
}
else
{
@@ -425,6 +493,163 @@ DtCompileMcfg (
return (Status);
}
+/******************************************************************************
+ *
+ * FUNCTION: DtCompileMpam
+ *
+ * PARAMETERS: List - Current field list pointer
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Compile MPAM.
+ *
+ *****************************************************************************/
+
+ACPI_STATUS
+DtCompileMpam (
+ void **List)
+{
+ ACPI_STATUS Status;
+ DT_SUBTABLE *ParentTable;
+ DT_SUBTABLE *Subtable;
+ DT_FIELD *SubtableStart;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ ACPI_MPAM_MSC_NODE *MpamMscNode;
+ ACPI_MPAM_RESOURCE_NODE *MpamResourceNode;
+ UINT32 FuncDepsCount;
+ UINT32 RisLength;
+ ACPI_DMTABLE_INFO *InfoTable;
+
+ ParentTable = DtPeekSubtable ();
+
+ while (*PFieldList)
+ {
+ SubtableStart = *PFieldList;
+
+ /* Main MSC Node table */
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam0,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ MpamMscNode = ACPI_CAST_PTR (ACPI_MPAM_MSC_NODE, Subtable->Buffer);
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+ DtPushSubtable (Subtable);
+
+ ParentTable = DtPeekSubtable ();
+
+ /*
+ * RIS(es) per MSC node have variable lengths depending on how many RISes there and
+ * any how many functional dependencies per RIS. Calculate it in order
+ * to properly set the overall MSC length.
+ */
+ RisLength = 0;
+
+ /* Iterate over RIS subtables per MSC node */
+ for (UINT32 ris = 0; ris < MpamMscNode->NumResourceNodes; ris++)
+ {
+ /* Compile RIS subtable */
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam1,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ MpamResourceNode = ACPI_CAST_PTR (ACPI_MPAM_RESOURCE_NODE, Subtable->Buffer);
+ DtInsertSubtable (ParentTable, Subtable);
+ DtPushSubtable (Subtable);
+
+ ParentTable = DtPeekSubtable ();
+
+ switch (MpamResourceNode->LocatorType)
+ {
+ case ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE:
+ InfoTable = AcpiDmTableInfoMpam1A;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_MEMORY:
+ InfoTable = AcpiDmTableInfoMpam1B;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_SMMU:
+ InfoTable = AcpiDmTableInfoMpam1C;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE:
+ InfoTable = AcpiDmTableInfoMpam1D;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE:
+ InfoTable = AcpiDmTableInfoMpam1E;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_INTERCONNECT:
+ InfoTable = AcpiDmTableInfoMpam1F;
+ break;
+ case ACPI_MPAM_LOCATION_TYPE_UNKNOWN:
+ InfoTable = AcpiDmTableInfoMpam1G;
+ default:
+ DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "Resource Locator Type");
+ return (AE_ERROR);
+ }
+
+ /* Compile Resource Locator Table */
+ Status = DtCompileTable (PFieldList, InfoTable,
+ &Subtable);
+
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+
+ /* Compile the number of functional dependencies per RIS */
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam1Deps,
+ &Subtable);
+
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ FuncDepsCount = *ACPI_CAST_PTR (UINT32, Subtable->Buffer);
+
+ RisLength += sizeof(ACPI_MPAM_RESOURCE_NODE) +
+ FuncDepsCount * sizeof(ACPI_MPAM_FUNC_DEPS);
+
+ /* Iterate over functional dependencies per RIS */
+ for (UINT32 funcDep = 0; funcDep < FuncDepsCount; funcDep++)
+ {
+ /* Compiler functional dependencies table */
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpam2,
+ &Subtable);
+
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ }
+
+ DtPopSubtable ();
+ }
+
+ /* Check if the length of the MSC is correct and override with the correct length */
+ if (MpamMscNode->Length != sizeof(ACPI_MPAM_MSC_NODE) + RisLength)
+ {
+ MpamMscNode->Length = (UINT16) (sizeof(ACPI_MPAM_MSC_NODE) + RisLength);
+ DbgPrint (ASL_DEBUG_OUTPUT, "Overriding MSC->Length: %X\n", MpamMscNode->Length);
+ }
+
+ DtPopSubtable ();
+ }
+
+ return (AE_OK);
+}
+
/******************************************************************************
*
@@ -565,6 +790,57 @@ DtCompileMpst (
/******************************************************************************
*
+ * FUNCTION: DtCompileMrrm
+ *
+ * PARAMETERS: List - Current field list pointer
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Compile MRRM.
+ *
+ *****************************************************************************/
+
+ACPI_STATUS
+DtCompileMrrm (
+ void **List)
+{
+ ACPI_STATUS Status;
+ DT_SUBTABLE *Subtable;
+ DT_SUBTABLE *ParentTable;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+
+ /* Main table */
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoMrrm,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ /* Subtables (all are same type) */
+
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoMrrm0,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ }
+
+ return (AE_OK);
+}
+
+
+/******************************************************************************
+ *
* FUNCTION: DtCompileMsct
*
* PARAMETERS: List - Current field list pointer
@@ -792,394 +1068,6 @@ DtCompileNfit (
/******************************************************************************
*
- * FUNCTION: DtCompileNhlt
- *
- * PARAMETERS: List - Current field list pointer
- *
- * RETURN: Status
- *
- * DESCRIPTION: Compile NHLT.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-DtCompileNhlt (
- void **List)
-{
- ACPI_STATUS Status;
- UINT32 EndpointCount;
- UINT32 MicrophoneCount;
- UINT32 FormatsCount;
- DT_SUBTABLE *Subtable;
- DT_SUBTABLE *ParentTable;
- DT_FIELD **PFieldList = (DT_FIELD **) List;
- UINT32 CapabilitiesSize;
- UINT8 ArrayType;
- UINT8 ConfigType;
- UINT8 DeviceInfoCount;
- UINT32 i;
- UINT32 j;
- ACPI_TABLE_NHLT_ENDPOINT_COUNT *MainTable;
- ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A *DevSpecific;
- ACPI_NHLT_VENDOR_MIC_COUNT *MicCount;
- ACPI_NHLT_FORMATS_CONFIG *FormatsConfig;
- ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D *ConfigSpecific;
- ACPI_NHLT_DEVICE_INFO_COUNT *DeviceInfo;
-
-
- /* Main table */
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Get the Endpoint Descriptor count */
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- DtPushSubtable (Subtable);
-
- MainTable = ACPI_CAST_PTR (ACPI_TABLE_NHLT_ENDPOINT_COUNT, Subtable->Buffer);
- EndpointCount = MainTable->EndpointCount;
-
- /* Subtables */
-
- while (*PFieldList)
- {
- /* Variable number of Endpoint descriptors */
-
- for (i = 0; i < EndpointCount; i++)
- {
- /* Do the Endpoint Descriptor */
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt0,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- DtPushSubtable (Subtable);
-
- /* Do the Device Specific table */
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5b,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- DtPushSubtable (Subtable);
-
- DevSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A, Subtable->Buffer);
- CapabilitiesSize = DevSpecific->CapabilitiesSize;
-
- ArrayType = 0;
- ConfigType = 0;
-
- switch (CapabilitiesSize)
- {
- case 0:
- break;
-
- case 1:
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5c,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- break;
-
- case 2:
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- break;
-
- case 3:
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5a,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- ConfigSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D, Subtable->Buffer);
- ArrayType = ConfigSpecific->ArrayType;
- ConfigType = ConfigSpecific->ConfigType;
- break;
-
- case 7:
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt6b,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- ConfigSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D, Subtable->Buffer);
- ArrayType = ConfigSpecific->ArrayType;
- ConfigType = ConfigSpecific->ConfigType;
- break;
-
- default:
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5a,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- ConfigSpecific = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D, Subtable->Buffer);
- ArrayType = ConfigSpecific->ArrayType;
- ConfigType = ConfigSpecific->ConfigType;
- break;
-
- } /* switch (CapabilitiesSize) */
-
- if (CapabilitiesSize >= 3)
- {
- /* Check for a vendor-defined mic array */
-
- if (ConfigType == ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY)
- {
- if ((ArrayType & ACPI_NHLT_ARRAY_TYPE_MASK) == ACPI_NHLT_VENDOR_DEFINED)
- {
- /* Get the microphone count */
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt6a,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- MicCount = ACPI_CAST_PTR (ACPI_NHLT_VENDOR_MIC_COUNT, Subtable->Buffer);
- MicrophoneCount = MicCount->MicrophoneCount;
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- /* Variable number of microphones */
-
- for (j = 0; j < MicrophoneCount; j++)
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt6,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- }
-
- /* Do the MIC_SNR_SENSITIVITY_EXTENSION, if present */
-
- if (ArrayType & ACPI_NHLT_ARRAY_TYPE_EXT_MASK)
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt9,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- }
- }
- }
- }
-
- /* Get the formats count */
-
- DtPopSubtable ();
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt4,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- FormatsConfig = ACPI_CAST_PTR (ACPI_NHLT_FORMATS_CONFIG, Subtable->Buffer);
- FormatsCount = FormatsConfig->FormatsCount;
-
- /* Variable number of wave_format_extensible structs */
-
- for (j = 0; j < FormatsCount; j++)
- {
- /* Do the main wave_format_extensible structure */
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- DtPushSubtable (Subtable);
-
- /* Do the capabilities list */
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3a,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- DtPopSubtable ();
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- } /* for (j = 0; j < FormatsCount; j++) */
-
- /*
- * If we are not done with the current Endpoint yet, then there must be
- * some non documeneted structure(s) yet to be processed. First, get
- * the count of such structure(s).
- */
- if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length")))
- {
- /* Get the count of non documented structures */
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt7,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- DeviceInfo = ACPI_CAST_PTR (ACPI_NHLT_DEVICE_INFO_COUNT, Subtable->Buffer);
- DeviceInfoCount = DeviceInfo->StructureCount;
-
- for (j = 0; j < DeviceInfoCount; j++)
- {
- /*
- * Compile the following Device Info fields:
- * 1) Device ID
- * 2) Device Instance ID
- * 3) Device Port ID
- */
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt7a,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- } /* for (j = 0; j < LinuxSpecificCount; j++) */
-
-
- /* Undocumented data at the end of endpoint */
- if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length")))
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt7b,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- }
- }
-
- DtPopSubtable ();
-
- } /* for (i = 0; i < EndpointCount; i++) */
-
- /*
- * All Endpoint Descriptors are completed.
- * Do the table terminator specific config (not in NHLT spec, optional)
- */
- if (*PFieldList && (strcmp ((const char *) (*PFieldList)->Name, "Descriptor Length")))
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt5b,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoNhlt3a,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- }
-
- return (AE_OK);
- }
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
* FUNCTION: DtCompilePcct
*
* PARAMETERS: List - Current field list pointer
@@ -1369,19 +1257,30 @@ DtCompilePhat (
ACPI_PHAT_HEADER *PhatHeader;
ACPI_DMTABLE_INFO *Info;
ACPI_PHAT_VERSION_DATA *VersionData;
+ UINT32 DeviceDataLength;
UINT32 RecordCount;
+ DT_FIELD *DataOffsetField;
+ DT_FIELD *DevicePathField;
+ UINT32 TableOffset = 0;
+ UINT32 DataOffsetValue;
+ UINT32 i;
- /* The table consist of subtables */
+ /* The table consists of subtables */
while (*PFieldList)
{
+ /* Compile the common subtable header */
+
Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhatHdr, &Subtable);
if (ACPI_FAILURE (Status))
{
return (Status);
}
+ TableOffset += Subtable->Length;
+ DbgPrint (ASL_DEBUG_OUTPUT, "0 Subtable->Length: %X\n", Subtable->Length);
+
ParentTable = DtPeekSubtable ();
DtInsertSubtable (ParentTable, Subtable);
DtPushSubtable (Subtable);
@@ -1392,12 +1291,66 @@ DtCompilePhat (
{
case ACPI_PHAT_TYPE_FW_VERSION_DATA:
+ /* Compile the middle portion of the Firmware Version Data */
+
Info = AcpiDmTableInfoPhat0;
PhatHeader->Length = sizeof (ACPI_PHAT_VERSION_DATA);
+ DataOffsetField = NULL;
break;
case ACPI_PHAT_TYPE_FW_HEALTH_DATA:
+ DbgPrint (ASL_DEBUG_OUTPUT, "1 Offset: %X, Name: \"%s\" Length: %X\n",
+ (*PFieldList)->TableOffset, (*PFieldList)->Name, Subtable->Length);
+
+ DataOffsetField = *PFieldList;
+
+ /* Walk the field list to get to the "Device-specific data Offset" field */
+
+ TableOffset = sizeof (ACPI_PHAT_HEALTH_DATA);
+ for (i = 0; i < 3; i++)
+ {
+ DataOffsetField = DataOffsetField->Next;
+ DbgPrint (ASL_DEBUG_OUTPUT, "2 Offset: %X, Name: \"%s\" Length: %X Value: %s:\n",
+ TableOffset, DataOffsetField->Name, DataOffsetField->StringLength, DataOffsetField->Value);
+ }
+
+ /* Convert DataOffsetField->Value (a char * string) to an integer value */
+
+ sscanf (DataOffsetField->Value, "%X", &DataOffsetValue);
+
+ /*
+ * Get the next field (Device Path):
+ * DataOffsetField points to "Device-Specific Offset", next field is
+ * "Device Path".
+ */
+ DevicePathField = DataOffsetField->Next;
+
+ /* Compute the size of the input ASCII string as a unicode string (*2 + 2) */
+
+ DevicePathField->StringLength = (strlen ((const char *) DevicePathField->Value) * 2) + 2;
+ TableOffset += DevicePathField->StringLength;
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "3 Offset: %X, Length: %X devicepathLength: %X\n",
+ TableOffset, Subtable->Length, DevicePathField->StringLength);
+
+ /* Set the DataOffsetField to the current TableOffset */
+ /* Must set the DataOffsetField here (not later) */
+
+ if (DataOffsetValue != 0)
+ {
+ snprintf (DataOffsetField->Value, Subtable->Length, "%X", TableOffset);
+ }
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "4 Offset: %X, Length: %X\n", TableOffset, Subtable->Length);
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "5 TableOffset: %X, DataOffsetField->StringLength: "
+ "%X DevicePathField Length: %X DevicePathField->Value: %s, DataOffsetField->Value: %s DataOffsetField->ByteOffset %X\n",
+ TableOffset, DataOffsetField->StringLength, DevicePathField->StringLength,
+ DevicePathField->Value, DataOffsetField->Value, DataOffsetField->ByteOffset);
+
+ /* Compile the middle portion of the Health Data Record */
+
Info = AcpiDmTableInfoPhat1;
PhatHeader->Length = sizeof (ACPI_PHAT_HEALTH_DATA);
break;
@@ -1406,16 +1359,19 @@ DtCompilePhat (
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, *PFieldList, "PHAT");
return (AE_ERROR);
-
- break;
}
+ /* Compile either the Version Data or the Health Data */
+
Status = DtCompileTable (PFieldList, Info, &Subtable);
if (ACPI_FAILURE (Status))
{
return (Status);
}
+ DbgPrint (ASL_DEBUG_OUTPUT, "6 Offset: %X, Name: \"%s\" SubtableLength: %X\n",
+ TableOffset /* - StartTableOffset*/, (*PFieldList)->Name, Subtable->Length);
+
ParentTable = DtPeekSubtable ();
DtInsertSubtable (ParentTable, Subtable);
@@ -1427,6 +1383,8 @@ DtCompilePhat (
(Subtable->Buffer - sizeof (ACPI_PHAT_HEADER)));
RecordCount = VersionData->ElementCount;
+ /* Compile all of the Version Elements */
+
while (RecordCount)
{
Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat0a,
@@ -1435,17 +1393,29 @@ DtCompilePhat (
{
return (Status);
}
+
ParentTable = DtPeekSubtable ();
DtInsertSubtable (ParentTable, Subtable);
+ TableOffset += Subtable->Length;
RecordCount--;
PhatHeader->Length += sizeof (ACPI_PHAT_VERSION_ELEMENT);
}
+
+ DtPopSubtable ();
break;
case ACPI_PHAT_TYPE_FW_HEALTH_DATA:
- /* Compile device path */
+ /* Compile the Device Path */
+
+ DeviceDataLength = Subtable->Length;
+ TableOffset += Subtable->Length;
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "7 Device Path Length: %X FieldName: \"%s\" FieldLength: "
+ "%s FieldValue: %s SubtableLength: %X TableOffset: %X\n", DeviceDataLength,
+ (*PFieldList)->Name, DataOffsetField->Value, (*PFieldList)->Value,
+ Subtable->Length, TableOffset);
Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat1a, &Subtable);
if (ACPI_FAILURE (Status))
@@ -1455,20 +1425,58 @@ DtCompilePhat (
ParentTable = DtPeekSubtable ();
DtInsertSubtable (ParentTable, Subtable);
+ /* *PFieldList will be null if previous field was at the end-of-ParseTree (EOF) */
+
+ if (!*PFieldList)
+ {
+ DbgPrint (ASL_DEBUG_OUTPUT, "8 Exit on end-of-ParseTree\n");
+ return (AE_OK);
+ }
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "9 Device Data Length: %X FieldName: \"%s"
+ " TableOffset: %X FieldLength: %X Field Value: %s SubtableLength: %X\n",
+ DeviceDataLength, (*PFieldList)->Name, TableOffset,
+ (*PFieldList)->StringLength, (*PFieldList)->Value, Subtable->Length);
+
PhatHeader->Length += (UINT16) Subtable->Length;
- /* Compile vendor specific data */
+ /* Convert DataOffsetField->Value (a hex char * string) to an integer value */
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat1b, &Subtable);
- if (ACPI_FAILURE (Status))
+ sscanf (DataOffsetField->Value, "%X", &DataOffsetValue);
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "10 Device-Specific Offset: %X Table Offset: %X\n",
+ DataOffsetValue, TableOffset);
+ if (DataOffsetValue != 0)
{
- return (Status);
+ /* Compile Device-Specific Data - only if the Data Offset is non-zero */
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoPhat1b, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DbgPrint (ASL_DEBUG_OUTPUT, "11 Subtable: %p Table Offset: %X\n",
+ Subtable, TableOffset);
+ if (Subtable)
+ {
+ DbgPrint (ASL_DEBUG_OUTPUT, "12 Device Specific Offset: "
+ "%X FieldName \"%s\" SubtableLength %X\n",
+ DeviceDataLength, DataOffsetField->Name, Subtable->Length);
+
+ DeviceDataLength += Subtable->Length;
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ PhatHeader->Length += (UINT16) Subtable->Length;
+ }
}
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
- PhatHeader->Length += (UINT16) Subtable->Length;
+ DtPopSubtable ();
+ DbgPrint (ASL_DEBUG_OUTPUT, "13 FieldName: \"%s\" FieldLength: %X Field Value: %s\n",
+ DataOffsetField->Name, DataOffsetField->StringLength, DataOffsetField->Value);
break;
default:
@@ -1675,7 +1683,7 @@ DtCompilePptt (
DtInsertSubtable (ParentTable, Subtable);
PpttHeader->Length += (UINT8)(Subtable->Length);
- /* Compile PPTT subtable additionals */
+ /* Compile PPTT subtable additional */
switch (PpttHeader->Type)
{
@@ -1798,6 +1806,65 @@ DtCompilePrmt (
/******************************************************************************
*
+ * FUNCTION: DtCompileRas2
+ *
+ * PARAMETERS: List - Current field list pointer
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Compile RAS2.
+ *
+ *****************************************************************************/
+
+ACPI_STATUS
+DtCompileRas2 (
+ void **List)
+{
+ ACPI_STATUS Status;
+ DT_SUBTABLE *Subtable;
+ DT_SUBTABLE *ParentTable;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ ACPI_TABLE_RAS2 *Ras2Header;
+ UINT32 Count = 0;
+
+
+ /* Main table */
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRas2, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+ Ras2Header = ACPI_CAST_PTR (ACPI_TABLE_RAS2, ParentTable->Buffer);
+
+ /* There is only one type of subtable at this time, no need to decode */
+
+ while (*PFieldList)
+ {
+ /* List of RAS2 PCC descriptors, each 8 bytes */
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRas2PccDesc,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+ Count++;
+ }
+
+ Ras2Header->NumPccDescs = (UINT8) Count;
+ return (AE_OK);
+}
+
+
+/******************************************************************************
+ *
* FUNCTION: DtCompileRgrt
*
* PARAMETERS: List - Current field list pointer
@@ -1846,6 +1913,167 @@ DtCompileRgrt (
/******************************************************************************
*
+ * FUNCTION: DtCompileRhct
+ *
+ * PARAMETERS: List - Current field list pointer
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Compile RHCT.
+ *
+ *****************************************************************************/
+
+ACPI_STATUS
+DtCompileRhct (
+ void **List)
+{
+ ACPI_STATUS Status;
+ ACPI_RHCT_NODE_HEADER *RhctHeader;
+ ACPI_RHCT_HART_INFO *RhctHartInfo;
+ DT_SUBTABLE *Subtable;
+ DT_SUBTABLE *ParentTable;
+ ACPI_DMTABLE_INFO *InfoTable;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ DT_FIELD *SubtableStart;
+ ACPI_TABLE_RHCT *Table;
+ BOOLEAN FirstNode = TRUE;
+
+
+ /* Compile the main table */
+
+ ParentTable = DtPeekSubtable ();
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRhct,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ DtInsertSubtable (ParentTable, Subtable);
+ Table = ACPI_CAST_PTR (ACPI_TABLE_RHCT, ParentTable->Buffer);
+ Table->NodeCount = 0;
+ Table->NodeOffset = sizeof (ACPI_TABLE_RHCT);
+
+ while (*PFieldList)
+ {
+ SubtableStart = *PFieldList;
+
+ /* Compile RHCT subtable header */
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRhctNodeHdr,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ DtInsertSubtable (ParentTable, Subtable);
+ RhctHeader = ACPI_CAST_PTR (ACPI_RHCT_NODE_HEADER, Subtable->Buffer);
+
+ DtPushSubtable (Subtable);
+ ParentTable = DtPeekSubtable ();
+ Table->NodeCount++;
+
+ switch (RhctHeader->Type)
+ {
+ case ACPI_RHCT_NODE_TYPE_ISA_STRING:
+
+ InfoTable = AcpiDmTableInfoRhctIsa1;
+ break;
+
+ case ACPI_RHCT_NODE_TYPE_HART_INFO:
+
+ InfoTable = AcpiDmTableInfoRhctHartInfo1;
+ break;
+
+ case ACPI_RHCT_NODE_TYPE_CMO:
+
+ InfoTable = AcpiDmTableInfoRhctCmo1;
+ break;
+
+ case ACPI_RHCT_NODE_TYPE_MMU:
+
+ InfoTable = AcpiDmTableInfoRhctMmu1;
+ break;
+
+ default:
+
+ DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "RHCT");
+ return (AE_ERROR);
+ }
+
+ /* Compile RHCT subtable body */
+
+ Status = DtCompileTable (PFieldList, InfoTable, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ DtInsertSubtable (ParentTable, Subtable);
+ if (FirstNode)
+ {
+ Table->NodeOffset = ACPI_PTR_DIFF(ParentTable->Buffer, Table);
+ FirstNode = FALSE;
+ }
+
+ /* Compile RHCT subtable additionals */
+
+ switch (RhctHeader->Type)
+ {
+ case ACPI_RHCT_NODE_TYPE_ISA_STRING:
+
+ /*
+ * Padding - Variable-length data
+ * Optionally allows the padding of the ISA string to be used
+ * for filling this field.
+ */
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRhctIsaPad,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (Subtable)
+ {
+ DtInsertSubtable (ParentTable, Subtable);
+ }
+ break;
+
+ case ACPI_RHCT_NODE_TYPE_HART_INFO:
+
+ RhctHartInfo = ACPI_CAST_PTR (ACPI_RHCT_HART_INFO,
+ Subtable->Buffer);
+ RhctHartInfo->NumOffsets = 0;
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+ AcpiDmTableInfoRhctHartInfo2, &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+ if (!Subtable)
+ {
+ break;
+ }
+ DtInsertSubtable (ParentTable, Subtable);
+ RhctHartInfo->NumOffsets++;
+ }
+ break;
+
+ default:
+
+ break;
+ }
+
+ DtPopSubtable ();
+ ParentTable = DtPeekSubtable ();
+ }
+
+ return (AE_OK);
+}
+
+
+/******************************************************************************
+ *
* FUNCTION: DtCompileRsdt
*
* PARAMETERS: List - Current field list pointer
@@ -2464,6 +2692,11 @@ DtCompileSrat (
InfoTable = AcpiDmTableInfoSrat6;
break;
+ case ACPI_SRAT_TYPE_RINTC_AFFINITY:
+
+ InfoTable = AcpiDmTableInfoSrat7;
+ break;
+
default:
DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT");
diff --git a/sys/contrib/dev/acpica/compiler/dttemplate.c b/sys/contrib/dev/acpica/compiler/dttemplate.c
index db90bc654189..d7140712d4e6 100644
--- a/sys/contrib/dev/acpica/compiler/dttemplate.c
+++ b/sys/contrib/dev/acpica/compiler/dttemplate.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -255,7 +255,7 @@ DtCreateTemplates (
if (AcpiGbl_Optind < 3)
{
- fprintf (stderr, "Creating default template: [DSDT]\n");
+ fprintf (stdout, "Creating default template: [DSDT]\n");
Status = DtCreateOneTemplateFile (ACPI_SIG_DSDT, 0);
goto Exit;
}
@@ -411,7 +411,7 @@ DtCreateAllTemplates (
ACPI_STATUS Status;
- fprintf (stderr, "Creating all supported Template files\n");
+ fprintf (stdout, "Creating all supported Template files\n");
/* Walk entire ACPI table data structure */
@@ -421,8 +421,13 @@ DtCreateAllTemplates (
if (TableData->Template)
{
- Status = DtCreateOneTemplate (TableData->Signature,
- 0, TableData);
+ if (ACPI_COMPARE_NAMESEG (TableData->Signature, ACPI_SIG_CDAT))
+ /* Special handling of CDAT */
+ Status = DtCreateOneTemplate (TableData->Signature,
+ 0, NULL);
+ else
+ Status = DtCreateOneTemplate (TableData->Signature,
+ 0, TableData);
if (ACPI_FAILURE (Status))
{
return (Status);
@@ -563,7 +568,7 @@ DtCreateOneTemplate (
}
else
{
- /* Special ACPI tables - DSDT, SSDT, OSDT, FACS, RSDP */
+ /* Special ACPI tables - DSDT, SSDT, OSDT, FACS, RSDP, CDAT */
AcpiOsPrintf (" (AML byte code table)\n");
AcpiOsPrintf (" */\n");
@@ -621,6 +626,11 @@ DtCreateOneTemplate (
AcpiDmDumpDataTable (ACPI_CAST_PTR (ACPI_TABLE_HEADER,
TemplateRsdp));
}
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_CDAT))
+ {
+ AcpiDmDumpCdat (ACPI_CAST_PTR (ACPI_TABLE_HEADER,
+ TemplateCdat));
+ }
else
{
fprintf (stderr,
@@ -632,14 +642,14 @@ DtCreateOneTemplate (
if (TableCount == 0)
{
- fprintf (stderr,
+ fprintf (stdout,
"Created ACPI table template for [%4.4s], "
"written to \"%s\"\n",
Signature, DisasmFilename);
}
else
{
- fprintf (stderr,
+ fprintf (stdout,
"Created ACPI table templates for [%4.4s] "
"and %u [SSDT] in same file, written to \"%s\"\n",
Signature, TableCount, DisasmFilename);
diff --git a/sys/contrib/dev/acpica/compiler/dttemplate.h b/sys/contrib/dev/acpica/compiler/dttemplate.h
index ad5af70748dc..51a34be5c36b 100644
--- a/sys/contrib/dev/acpica/compiler/dttemplate.h
+++ b/sys/contrib/dev/acpica/compiler/dttemplate.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -157,13 +157,13 @@
const unsigned char TemplateAest[] =
{
- 0x41,0x45,0x53,0x54,0xCC,0x02,0x00,0x00, /* 00000000 "AEST...." */
- 0x01,0x2A,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".*INTEL " */
+ 0x41,0x45,0x53,0x54,0x90,0x03,0x00,0x00, /* 00000000 "AEST...." */
+ 0x02,0xE6,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
- 0x04,0x06,0x21,0x20,0x00,0x80,0x00,0x00, /* 00000020 "..! ...." */
+ 0x28,0x06,0x23,0x20,0x00,0xA0,0x00,0x00, /* 00000020 "(.# ...." */
0x2C,0x00,0x00,0x00,0x44,0x00,0x00,0x00, /* 00000028 ",...D..." */
- 0x74,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000030 "t......." */
+ 0x94,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000030 "........" */
0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000038 "....gE#." */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */
@@ -177,76 +177,100 @@ const unsigned char TemplateAest[] =
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000088 "........" */
0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000090 "........" */
0x01,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x78, /* 00000098 ".......x" */
- 0x56,0x00,0x00,0x00,0x00,0x74,0x00,0x00, /* 000000A0 "V....t.." */
- 0x2C,0x00,0x00,0x00,0x44,0x00,0x00,0x00, /* 000000A8 ",...D..." */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */
- 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000B8 "....gE#." */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C8 "........" */
- 0x11,0x11,0x00,0x00,0x01,0x00,0x01,0x00, /* 000000D0 "........" */
- 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000D8 "....gE#." */
- 0x67,0x67,0x67,0x67,0x00,0x00,0x00,0x00, /* 000000E0 "gggg...." */
- 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 000000E8 "........" */
- 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000F0 "....gE#." */
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000F8 "........" */
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000100 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000108 "........" */
- 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000110 "........" */
- 0x01,0x60,0x00,0x00,0x2C,0x00,0x00,0x00, /* 00000118 ".`..,..." */
- 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "0......." */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000a0 "....gE#." */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000a8 "....gE#." */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000b0 "....gE#." */
+ 0x01,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x78, /* 000000b8 ".......x" */
+ 0x00,0x00,0x00,0x00,0x00,0x94,0x00,0x00, /* 000000c0 "........" */
+ 0x2C,0x00,0x00,0x00,0x44,0x00,0x00,0x00, /* 000000c8 ",...D..." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000d0 "........" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000d8 "....gE#." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000e0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000e8 "........" */
+ 0x11,0x11,0x00,0x00,0x01,0x00,0x01,0x00, /* 000000f0 "........" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000000f8 "....gE#." */
+ 0x67,0x67,0x67,0x67,0x00,0x00,0x00,0x00, /* 00000100 "gggg...." */
+ 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 00000108 "........" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000110 "....gE#." */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000118 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000128 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000130 "........" */
- 0x00,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000138 "........" */
- 0x67,0x45,0x23,0x01,0xAA,0xAA,0x00,0x00, /* 00000140 "gE#....." */
- 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000148 "........" */
+ 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000130 "........" */
+ 0x01,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x78, /* 00000138 ".......x" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000140 "....gE#." */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000148 "....gE#." */
0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000150 "....gE#." */
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000158 "........" */
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "........" */
+ 0x01,0x80,0x00,0x00,0x2C,0x00,0x00,0x00, /* 00000158 "....,..." */
+ 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "0......." */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000168 "........" */
- 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000170 "........" */
- 0x02,0x64,0x00,0x00,0x2C,0x00,0x00,0x00, /* 00000178 ".d..,..." */
- 0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000180 "4......." */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000188 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000190 "........" */
- 0x00,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000198 "........" */
- 0x67,0x45,0x23,0x01,0x55,0x55,0x55,0x55, /* 000001A0 "gE#.UUUU" */
- 0x66,0x66,0x66,0x66,0x01,0x00,0x00,0x00, /* 000001A8 "ffff...." */
- 0x03,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 000001B0 "........" */
- 0x67,0x45,0x23,0x01,0x00,0x00,0x00,0x00, /* 000001B8 "gE#....." */
- 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000001C0 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001C8 "........" */
- 0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x01, /* 000001D0 "........" */
- 0x00,0x00,0x00,0x00,0x03,0x74,0x00,0x00, /* 000001D8 ".....t.." */
- 0x2C,0x00,0x00,0x00,0x44,0x00,0x00,0x00, /* 000001E0 ",...D..." */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F0 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F8 "........" */
- 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000200 "....gE#." */
- 0x33,0x33,0x33,0x33,0x44,0x44,0x44,0x44, /* 00000208 "3333DDDD" */
- 0x12,0x23,0x34,0x45,0x56,0x67,0x78,0x89, /* 00000210 ".#4EVgx." */
- 0x9A,0xAB,0xBC,0xCD,0xDE,0xEF,0xFF,0x55, /* 00000218 ".......U" */
- 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000220 "........" */
- 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000228 "....gE#." */
- 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000230 "........" */
- 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000238 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000240 "........" */
- 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000248 "........" */
- 0x04,0x7C,0x00,0x00,0x2C,0x00,0x00,0x00, /* 00000250 ".|..,..." */
- 0x34,0x00,0x00,0x00,0x64,0x00,0x00,0x00, /* 00000258 "4...d..." */
- 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000260 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000170 "........" */
+ 0x00,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000178 "........" */
+ 0x67,0x45,0x23,0x01,0xAA,0xAA,0x00,0x00, /* 00000180 "gE#....." */
+ 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000188 "........" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000190 "....gE#." */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000198 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001a0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001a8 "........" */
+ 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 000001b0 "........" */
+ 0x01,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x78, /* 000001b8 ".......x" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000001c0 "....gE#." */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 000001c8 "....gE#." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001d0 "........" */
+ 0x02,0x84,0x00,0x00,0x2C,0x00,0x00,0x00, /* 000001d8 "....,..." */
+ 0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001e0 "4......." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001e8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001f0 "........" */
+ 0x00,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 000001f8 "........" */
+ 0x67,0x45,0x23,0x01,0x55,0x55,0x55,0x55, /* 00000200 "gE#.UUUU" */
+ 0x66,0x66,0x66,0x66,0x01,0x00,0x00,0x00, /* 00000208 "ffff...." */
+ 0x03,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000210 "........" */
+ 0x67,0x45,0x23,0x01,0x00,0x00,0x00,0x00, /* 00000218 "gE#....." */
+ 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000220 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000228 "........" */
+ 0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x01, /* 00000230 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000238 "........" */
+ 0xEF,0xCD,0xAB,0x78,0xEF,0xCD,0xAB,0x89, /* 00000240 "...x...." */
+ 0x67,0x45,0x23,0x01,0xEF,0xCD,0xAB,0x89, /* 00000248 "gE#....." */
+ 0x67,0x45,0x23,0x01,0xEF,0xCD,0xAB,0x89, /* 00000250 "gE#....." */
+ 0x67,0x45,0x23,0x01,0x03,0x98,0x00,0x00, /* 00000258 "gE#....." */
+ 0x2C,0x00,0x00,0x00,0x48,0x00,0x00,0x00, /* 00000260 ",...H..." */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000268 "........" */
- 0x00,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000270 "........" */
- 0x67,0x45,0x23,0x01,0x03,0x00,0x00,0x00, /* 00000278 "gE#....." */
- 0x88,0x88,0x77,0x77,0x00,0x00,0x00,0x00, /* 00000280 "..ww...." */
- 0x03,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 00000288 "........" */
- 0x67,0x45,0x23,0x01,0x00,0x00,0x00,0x00, /* 00000290 "gE#....." */
- 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000298 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000002A0 "........" */
- 0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x01, /* 000002A8 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000002B0 "........" */
- 0xBB,0xBB,0xAA,0xAA,0xCC,0x00,0x00,0x00, /* 000002B8 "........" */
- 0x01,0x00,0x00,0x01,0xEF,0xCD,0xAB,0x78, /* 000002C0 ".......x" */
- 0x56,0x00,0x00,0x00 /* 000002C8 "V..." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000270 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000278 "........" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000280 "....gE#." */
+ 0x33,0x33,0x33,0x33,0x22,0x22,0x22,0x22, /* 00000288 "3333""""" */
+ 0x44,0x44,0x44,0x44,0x12,0x23,0x34,0x45, /* 00000290 "DDDD.#4E" */
+ 0x56,0x67,0x78,0x89,0x9A,0xAB,0xBC,0xCD, /* 00000298 "Vgx....." */
+ 0xDE,0xEF,0xFF,0x55,0x01,0x00,0x00,0x00, /* 000002a0 "...U...." */
+ 0x02,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x89, /* 000002a8 "........" */
+ 0x67,0x45,0x23,0x01,0x00,0x00,0x00,0x00, /* 000002b0 "gE#....." */
+ 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000002b8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000002c0 "........" */
+ 0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x01, /* 000002c8 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000002d0 "........" */
+ 0xEF,0xCD,0xAB,0x78,0xEF,0xCD,0xAB,0x89, /* 000002d8 "...x...." */
+ 0x67,0x45,0x23,0x01,0xEF,0xCD,0xAB,0x89, /* 000002e0 "gE#....." */
+ 0x67,0x45,0x23,0x01,0xEF,0xCD,0xAB,0x89, /* 000002e8 "gE#....." */
+ 0x67,0x45,0x23,0x01,0x04,0x9C,0x00,0x00, /* 000002f0 "gE#....." */
+ 0x2C,0x00,0x00,0x00,0x34,0x00,0x00,0x00, /* 000002f8 ",...4..." */
+ 0x84,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000300 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000308 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000310 "........" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000318 "....gE#." */
+ 0x03,0x00,0x00,0x00,0x88,0x88,0x77,0x77, /* 00000320 "......ww" */
+ 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 00000328 "........" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000330 "....gE#." */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000338 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000340 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000348 "........" */
+ 0x11,0x11,0x11,0x01,0x00,0x00,0x00,0x00, /* 00000350 "........" */
+ 0x01,0x00,0x00,0x00,0xEF,0xCD,0xAB,0x78, /* 00000358 ".......x" */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000360 "....gE#." */
+ 0xEF,0xCD,0xAB,0x89,0x67,0x45,0x23,0x01, /* 00000368 "....gE#." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000370 "........" */
+ 0x00,0x00,0x00,0x00,0xBB,0xBB,0xAA,0xAA, /* 00000378 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01, /* 00000380 "........" */
+ 0xEF,0xCD,0xAB,0x78,0x00,0x00,0x00,0x00, /* 00000388 "...x...." */
};
const unsigned char TemplateAgdi[] =
@@ -301,6 +325,27 @@ const unsigned char TemplateAsf[] =
0x01,0x00 /* 00000070 ".." */
};
+const unsigned char TemplateAspt[] =
+{
+ 0x41,0x53,0x50,0x54,0x88,0x00,0x00,0x00, /* 00000000 "ASPT...." */
+ 0x01,0x2D,0x56,0x52,0x54,0x55,0x41,0x4C, /* 00000008 "..VRTUAL" */
+ 0x4D,0x49,0x43,0x52,0x4F,0x53,0x46,0x54, /* 00000010 "MICROSFT" */
+ 0x01,0x00,0x00,0x00,0x4D,0x53,0x46,0x54, /* 00000018 "....INTL" */
+ 0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00, /* 00000020 " ." ...." */
+ 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000028 ".. ....." */
+ 0x00,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000030 "........" */
+ 0x04,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000038 "........" */
+ 0x08,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000040 "........" */
+ 0x01,0x00,0x20,0x00,0x01,0x00,0x00,0x00, /* 00000048 ".. ....." */
+ 0x10,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000050 "........" */
+ 0x14,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000058 "........" */
+ 0x18,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000060 "........" */
+ 0x02,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000068 ".. ....." */
+ 0x20,0x00,0xB0,0xFE,0x00,0x00,0x00,0x00, /* 00000070 " ......." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */
+};
+
const unsigned char TemplateBdat[] =
{
0x42,0x44,0x41,0x54,0x30,0x00,0x00,0x00, /* 00000000 "BDAT0..." */
@@ -341,6 +386,17 @@ const unsigned char TemplateBoot[] =
0x28,0x05,0x10,0x20,0x00,0x00,0x00,0x00 /* 00000020 "(.. ...." */
};
+const unsigned char TemplateCcel[] =
+{
+ 0x43,0x43,0x45,0x4C,0x38,0x00,0x00,0x00, /* 00000000 "CCEL8..." */
+ 0x04,0x2E,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
+ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
+ 0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
+ 0x30,0x09,0x21,0x20,0x00,0x00,0x00,0x00, /* 00000020 "0.! ...." */
+ 0xEF,0xCD,0xAB,0x78,0x56,0x34,0x12,0x00, /* 00000028 "...xV4.." */
+ 0x78,0x56,0x34,0x12,0xEF,0xCD,0xAB,0x00 /* 00000030 "xV4....." */
+};
+
const unsigned char TemplateCedt[] =
{
0x43,0x45,0x44,0x54,0x9c,0x01,0x00,0x00, /* 00000000 "CEDT...." */
@@ -397,6 +453,39 @@ const unsigned char TemplateCedt[] =
0x03,0x5e,0xba,0x00 /* 00000198 ".^.." */
};
+const unsigned char TemplateCdat[] =
+{
+ 0xE4,0x00,0x00,0x00,0x01,0x0C,0x00,0x00, /* 00000000 "........" */
+ 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00, /* 00000008 "........" */
+ 0x03,0x00,0x08,0x00,0x04,0x56,0x00,0x00, /* 00000010 ".....V.." */
+ 0x00,0x00,0x18,0x00,0xEF,0x01,0x00,0x00, /* 00000018 "........" */
+ 0x89,0x67,0x45,0x23,0x01,0x00,0x00,0x00, /* 00000020 ".gE#...." */
+ 0xAB,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */
+ 0x03,0x00,0x08,0x00,0x04,0x56,0x00,0x00, /* 00000030 ".....V.." */
+ 0x01,0x00,0x18,0x00,0x44,0x04,0x64,0x00, /* 00000038 "....D.d." */
+ 0xCD,0xAB,0x89,0x67,0x45,0x23,0x01,0x00, /* 00000040 "...gE#.." */
+ 0x33,0x22,0x44,0x33,0x55,0x44,0x00,0x00, /* 00000048 "3"D3UD.." */
+ 0x02,0x00,0x14,0x00,0x99,0x00,0x00,0x00, /* 00000050 "........" */
+ 0x00,0x00,0x00,0x00,0x78,0x56,0x34,0x12, /* 00000058 "....xV4." */
+ 0x55,0x55,0x44,0x44,0x04,0x00,0x18,0x00, /* 00000060 "UUDD...." */
+ 0x88,0x32,0x00,0x00,0x77,0x77,0x77,0x77, /* 00000068 ".2..wwww" */
+ 0x11,0x11,0x11,0x11,0x88,0x88,0x88,0x88, /* 00000070 "........" */
+ 0x22,0x22,0x22,0x22,0x05,0x00,0x20,0x00, /* 00000078 """"".. ." */
+ 0x04,0x00,0x00,0x00,0x44,0x44,0x44,0x44, /* 00000080 "....DDDD" */
+ 0x33,0x33,0x33,0x33,0x44,0x44,0x55,0x55, /* 00000088 "3333DDUU" */
+ 0x66,0x66,0x00,0x00,0x77,0x77,0x88,0x88, /* 00000090 "ff..ww.." */
+ 0x99,0x99,0x00,0x00,0x05,0x00,0x18,0x00, /* 00000098 "........" */
+ 0x04,0x00,0x00,0x00,0x22,0x22,0x22,0x22, /* 000000A0 "....""""" */
+ 0x11,0x11,0x11,0x11,0x34,0x12,0x56,0x78, /* 000000A8 "....4.Vx" */
+ 0x11,0x11,0x00,0x00,0x05,0x00,0x30,0x00, /* 000000B0 "......0." */
+ 0x08,0x00,0x00,0x00,0x66,0x66,0x66,0x66, /* 000000B8 "....ffff" */
+ 0x55,0x55,0x55,0x55,0x44,0x44,0x55,0x55, /* 000000C0 "UUUUDDUU" */
+ 0x66,0x66,0x00,0x00,0x77,0x77,0x88,0x88, /* 000000C8 "ff..ww.." */
+ 0x99,0x99,0x00,0x00,0xAA,0xAA,0xBB,0xBB, /* 000000D0 "........" */
+ 0xCC,0xCC,0x00,0x00,0x55,0x55,0x44,0x44, /* 000000D8 "....UUDD" */
+ 0x33,0x33,0x00,0x00 /* 000000E0 "33.." */
+};
+
const unsigned char TemplateCpep[] =
{
0x43,0x50,0x45,0x50,0x34,0x00,0x00,0x00, /* 00000000 "CPEP4..." */
@@ -494,8 +583,8 @@ const unsigned char TemplateDbgp[] =
const unsigned char TemplateDmar[] =
{
- 0x44,0x4D,0x41,0x52,0x9C,0x00,0x00,0x00, /* 00000000 "DMAR...." */
- 0x01,0xB8,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
+ 0x44,0x4D,0x41,0x52,0xAC,0x00,0x00,0x00, /* 00000000 "DMAR...." */
+ 0x01,0x87,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
0x17,0x12,0x21,0x20,0x2F,0x01,0x00,0x00, /* 00000020 "..! /..." */
@@ -513,7 +602,9 @@ const unsigned char TemplateDmar[] =
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000080 "........" */
0x00,0x00,0x00,0x00,0x05,0x00,0x10,0x00, /* 00000088 "........" */
0x00,0x00,0x00,0x00,0x01,0x08,0x00,0x00, /* 00000090 "........" */
- 0x00,0x00,0x00,0x02 /* 00000098 "...." */
+ 0x00,0x00,0x00,0x02,0x06,0x00,0x10,0x00, /* 00000098 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x08,0x00,0x00, /* 000000A0 "........" */
+ 0x00,0x00,0x00,0x02 /* 000000A8 "...." */
};
const unsigned char TemplateDrtm[] =
@@ -594,6 +685,211 @@ const unsigned char TemplateEinj[] =
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF /* 00000128 "........" */
};
+const unsigned char TemplateErdt[] =
+{
+ 0x45,0x52,0x44,0x54,0x44,0x06,0x00,0x00, /* 00000000 "ERDTD..." */
+ 0x01,0x78,0x49,0x4e,0x54,0x45,0x4c,0x00, /* 00000008 ".xINTEL." */
+ 0x49,0x4e,0x54,0x45,0x4c,0x20,0x49,0x44, /* 00000010 "INTEL ID" */
+ 0x02,0x00,0x00,0x00,0x49,0x4e,0x54,0x4c, /* 00000018 "....INTL" */
+ 0x28,0x06,0x23,0x20,0x0f,0x00,0x00,0x00, /* 00000020 "(.# ...." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
+ 0x00,0x00,0xd2,0x00,0x01,0x00,0x00,0x00, /* 00000040 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */
+ 0x00,0x00,0x00,0x00,0x0f,0x01,0x00,0x00, /* 00000050 "........" */
+ 0x00,0x00,0xfc,0xf7,0xff,0x1f,0x00,0x00, /* 00000058 "........" */
+ 0x01,0x00,0x01,0x00,0x18,0x00,0x00,0x00, /* 00000060 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00, /* 00000068 "........" */
+ 0x00,0x00,0x08,0x00,0x00,0x00,0x0a,0x00, /* 00000070 "........" */
+ 0x00,0x00,0x03,0x00,0x30,0x00,0x00,0x00, /* 00000078 "....0..." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000080 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000088 "........" */
+ 0x00,0x00,0x00,0x10,0xfb,0xf7,0xff,0x1f, /* 00000090 "........" */
+ 0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00, /* 00000098 "........" */
+ 0x00,0x02,0x00,0x10,0x01,0x00,0x00,0x00, /* 000000a0 "........" */
+ 0x00,0x00,0x04,0x00,0x38,0x00,0x00,0x00, /* 000000a8 "....8..." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 000000b0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000b8 "........" */
+ 0x00,0x00,0x00,0x80,0xfc,0xf7,0xff,0x1f, /* 000000c0 "........" */
+ 0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00, /* 000000c8 "........" */
+ 0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000d0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000d8 "........" */
+ 0x00,0x00,0x05,0x00,0x30,0x00,0x00,0x00, /* 000000e0 "....0..." */
+ 0x07,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000000e8 "........" */
+ 0x00,0x00,0x00,0x10,0xfc,0xf7,0xff,0x1f, /* 000000f0 "........" */
+ 0x00,0x00,0x00,0x30,0xfc,0xf7,0xff,0x1f, /* 000000f8 "...0...." */
+ 0x00,0x00,0x00,0x20,0xfc,0xf7,0xff,0x1f, /* 00000100 "... ...." */
+ 0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00, /* 00000108 "........" */
+ 0x00,0x00,0x00,0x00,0xd2,0x00,0x01,0x00, /* 00000110 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000118 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x0f,0x01, /* 00000120 "........" */
+ 0x00,0x00,0x00,0x00,0xec,0xf7,0xff,0x1f, /* 00000128 "........" */
+ 0x00,0x00,0x01,0x00,0x01,0x00,0x18,0x00, /* 00000130 "........" */
+ 0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00, /* 00000138 "........" */
+ 0x02,0x01,0x00,0x00,0x08,0x01,0x00,0x00, /* 00000140 "........" */
+ 0x0a,0x01,0x00,0x00,0x03,0x00,0x30,0x00, /* 00000148 "......0." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000158 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x10,0xeb,0xf7, /* 00000160 "........" */
+ 0xff,0x1f,0x00,0x00,0x04,0x00,0x00,0x00, /* 00000168 "........" */
+ 0x08,0x00,0x00,0x02,0x00,0x10,0x01,0x00, /* 00000170 "........" */
+ 0x00,0x00,0x00,0x00,0x04,0x00,0x38,0x00, /* 00000178 "......8." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000180 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000188 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x80,0xec,0xf7, /* 00000190 "........" */
+ 0xff,0x1f,0x00,0x00,0x10,0x00,0x00,0x00, /* 00000198 "........" */
+ 0x18,0x00,0x10,0x01,0x00,0x00,0x00,0x00, /* 000001a0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001a8 "........" */
+ 0x00,0x00,0x00,0x00,0x05,0x00,0x30,0x00, /* 000001b0 "......0." */
+ 0x00,0x00,0x07,0x00,0x01,0x00,0x00,0x00, /* 000001b8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x10,0xec,0xf7, /* 000001c0 "........" */
+ 0xff,0x1f,0x00,0x00,0x00,0x30,0xec,0xf7, /* 000001c8 ".....0.." */
+ 0xff,0x1f,0x00,0x00,0x00,0x20,0xec,0xf7, /* 000001d0 "..... .." */
+ 0xff,0x1f,0x00,0x00,0x01,0x00,0x00,0x00, /* 000001d8 "........" */
+ 0x08,0x00,0x00,0x00,0x00,0x00,0xd2,0x00, /* 000001e0 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001e8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00, /* 000001f0 "........" */
+ 0x0f,0x01,0x00,0x00,0x00,0x00,0xdc,0xf7, /* 000001f8 "........" */
+ 0xff,0x1f,0x00,0x00,0x01,0x00,0x01,0x00, /* 00000200 "........" */
+ 0x18,0x00,0x00,0x00,0x02,0x00,0x00,0x02, /* 00000208 "........" */
+ 0x00,0x00,0x02,0x02,0x00,0x00,0x08,0x02, /* 00000210 "........" */
+ 0x00,0x00,0x0a,0x02,0x00,0x00,0x03,0x00, /* 00000218 "........" */
+ 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000220 "0......." */
+ 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000228 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10, /* 00000230 "........" */
+ 0xdb,0xf7,0xff,0x1f,0x00,0x00,0x04,0x00, /* 00000238 "........" */
+ 0x00,0x00,0x08,0x00,0x00,0x02,0x00,0x10, /* 00000240 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x00, /* 00000248 "........" */
+ 0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000250 "8......." */
+ 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000258 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, /* 00000260 "........" */
+ 0xdc,0xf7,0xff,0x1f,0x00,0x00,0x10,0x00, /* 00000268 "........" */
+ 0x00,0x00,0x18,0x00,0x10,0x01,0x00,0x00, /* 00000270 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000278 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00, /* 00000280 "........" */
+ 0x30,0x00,0x00,0x00,0x07,0x00,0x01,0x00, /* 00000288 "0......." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10, /* 00000290 "........" */
+ 0xdc,0xf7,0xff,0x1f,0x00,0x00,0x00,0x30, /* 00000298 ".......0" */
+ 0xdc,0xf7,0xff,0x1f,0x00,0x00,0x00,0x20, /* 000002a0 "....... " */
+ 0xdc,0xf7,0xff,0x1f,0x00,0x00,0x01,0x00, /* 000002a8 "........" */
+ 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, /* 000002b0 "........" */
+ 0xd2,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000002b8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000002c0 "........" */
+ 0x03,0x00,0x0f,0x01,0x00,0x00,0x00,0x00, /* 000002c8 "........" */
+ 0xcc,0xf7,0xff,0x1f,0x00,0x00,0x01,0x00, /* 000002d0 "........" */
+ 0x01,0x00,0x18,0x00,0x00,0x00,0x03,0x00, /* 000002d8 "........" */
+ 0x00,0x03,0x00,0x00,0x02,0x03,0x00,0x00, /* 000002e0 "........" */
+ 0x08,0x03,0x00,0x00,0x0a,0x03,0x00,0x00, /* 000002e8 "........" */
+ 0x03,0x00,0x30,0x00,0x00,0x00,0x00,0x00, /* 000002f0 "..0....." */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000002f8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000300 "........" */
+ 0x00,0x10,0xcb,0xf7,0xff,0x1f,0x00,0x00, /* 00000308 "........" */
+ 0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x02, /* 00000310 "........" */
+ 0x00,0x10,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000318 "........" */
+ 0x04,0x00,0x38,0x00,0x00,0x00,0x00,0x00, /* 00000320 "..8....." */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000328 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000330 "........" */
+ 0x00,0x80,0xcc,0xf7,0xff,0x1f,0x00,0x00, /* 00000338 "........" */
+ 0x10,0x00,0x00,0x00,0x18,0x00,0x10,0x01, /* 00000340 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000348 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000350 "........" */
+ 0x05,0x00,0x30,0x00,0x00,0x00,0x07,0x00, /* 00000358 "..0....." */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000360 "........" */
+ 0x00,0x10,0xcc,0xf7,0xff,0x1f,0x00,0x00, /* 00000368 "........" */
+ 0x00,0x30,0xcc,0xf7,0xff,0x1f,0x00,0x00, /* 00000370 ".0......" */
+ 0x00,0x20,0xcc,0xf7,0xff,0x1f,0x00,0x00, /* 00000378 ". ......" */
+ 0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00, /* 00000380 "........" */
+ 0x00,0x00,0x92,0x01,0x02,0x00,0x10,0x00, /* 00000388 "........" */
+ 0x0b,0x08,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000390 "........" */
+ 0x00,0x00,0x10,0x00,0x7f,0x00,0x00,0x00, /* 00000398 "........" */
+ 0x00,0xb0,0xb8,0xf6,0xff,0x1f,0x00,0x00, /* 000003a0 "........" */
+ 0x01,0x00,0x02,0x00,0xd8,0x00,0x00,0x00, /* 000003a8 "........" */
+ 0x10,0x00,0x01,0x08,0x00,0x00,0x00,0x00, /* 000003b0 "........" */
+ 0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x00, /* 000003b8 "........" */
+ 0x00,0x04,0x01,0x08,0x00,0x00,0x00,0x00, /* 000003c0 "........" */
+ 0x02,0x00,0x01,0x08,0x00,0x00,0x00,0x00, /* 000003c8 "........" */
+ 0x02,0x01,0x01,0x08,0x00,0x00,0x00,0x00, /* 000003d0 "........" */
+ 0x03,0x00,0x02,0x08,0x00,0x00,0x00,0x00, /* 000003d8 "........" */
+ 0x04,0x00,0x01,0x0a,0x00,0x00,0x00,0x00, /* 000003e0 "........" */
+ 0x04,0x00,0x00,0x00,0x02,0x08,0x00,0x00, /* 000003e8 "........" */
+ 0x00,0x00,0x05,0x00,0x01,0x0a,0x00,0x00, /* 000003f0 "........" */
+ 0x00,0x00,0x05,0x00,0x00,0x00,0x02,0x08, /* 000003f8 "........" */
+ 0x00,0x00,0x00,0x00,0x06,0x00,0x01,0x0a, /* 00000400 "........" */
+ 0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00, /* 00000408 "........" */
+ 0x02,0x08,0x00,0x00,0x00,0x00,0x07,0x00, /* 00000410 "........" */
+ 0x01,0x0a,0x00,0x00,0x00,0x00,0x07,0x00, /* 00000418 "........" */
+ 0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x00, /* 00000420 "........" */
+ 0x1f,0x00,0x01,0x08,0x00,0x00,0x00,0x00, /* 00000428 "........" */
+ 0x1f,0x04,0x01,0x08,0x00,0x00,0x00,0x00, /* 00000430 "........" */
+ 0x1f,0x05,0x01,0x08,0x00,0x00,0x00,0x0d, /* 00000438 "........" */
+ 0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x0e, /* 00000440 "........" */
+ 0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x0f, /* 00000448 "........" */
+ 0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x10, /* 00000450 "........" */
+ 0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x10, /* 00000458 "........" */
+ 0x00,0x04,0x01,0x08,0x00,0x00,0x00,0x60, /* 00000460 ".......`" */
+ 0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x60, /* 00000468 ".......`" */
+ 0x00,0x04,0x01,0x08,0x00,0x00,0x00,0xb0, /* 00000470 "........" */
+ 0x00,0x00,0x01,0x08,0x00,0x00,0x00,0xb0, /* 00000478 "........" */
+ 0x00,0x04,0x07,0x00,0x30,0x00,0x00,0x00, /* 00000480 "....0..." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000488 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000490 "........" */
+ 0x00,0x00,0x00,0xb0,0xb8,0xf6,0xff,0x1f, /* 00000498 "........" */
+ 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x05, /* 000004a0 "........" */
+ 0x08,0x00,0xf8,0xff,0x07,0x00,0x00,0x00, /* 000004a8 "........" */
+ 0x00,0x00,0x08,0x00,0x40,0x00,0x00,0x00, /* 000004b0 "....@..." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 000004b8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000004c0 "........" */
+ 0x00,0x00,0x00,0xb0,0xb8,0xf6,0xff,0x1f, /* 000004c8 "........" */
+ 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x03, /* 000004d0 "........" */
+ 0x00,0x04,0x08,0x00,0x08,0x00,0x00,0x00, /* 000004d8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x28,0xf8,0xff, /* 000004e0 ".....(.." */
+ 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000004e8 "........" */
+ 0x00,0x00,0x0a,0x00,0x28,0x00,0x00,0x00, /* 000004f0 "....(..." */
+ 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00, /* 000004f8 "........" */
+ 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000500 "........" */
+ 0x00,0x00,0x00,0xb0,0xb8,0xf6,0xff,0x1f, /* 00000508 "........" */
+ 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x02, /* 00000510 "........" */
+ 0x10,0x00,0x00,0x00,0x2a,0x01,0x02,0x00, /* 00000518 "....*..." */
+ 0x10,0x00,0x0b,0x08,0x00,0x00,0x00,0x00, /* 00000520 "........" */
+ 0x00,0x00,0x00,0x00,0x11,0x00,0x7f,0x00, /* 00000528 "........" */
+ 0x00,0x00,0x00,0xb0,0x38,0xf6,0xff,0x1f, /* 00000530 "....8..." */
+ 0x00,0x00,0x01,0x00,0x02,0x00,0x70,0x00, /* 00000538 "......p." */
+ 0x00,0x00,0x11,0x00,0x01,0x08,0x01,0x00, /* 00000540 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x08,0x01,0x00, /* 00000548 "........" */
+ 0x00,0x00,0x00,0x04,0x01,0x08,0x01,0x00, /* 00000550 "........" */
+ 0x00,0x00,0x02,0x00,0x01,0x08,0x01,0x00, /* 00000558 "........" */
+ 0x00,0x00,0x02,0x01,0x01,0x08,0x01,0x00, /* 00000560 "........" */
+ 0x00,0x0d,0x00,0x00,0x01,0x08,0x01,0x00, /* 00000568 "........" */
+ 0x00,0x0e,0x00,0x00,0x01,0x08,0x01,0x00, /* 00000570 "........" */
+ 0x00,0x0f,0x00,0x00,0x01,0x08,0x01,0x00, /* 00000578 "........" */
+ 0x00,0x10,0x00,0x00,0x01,0x08,0x01,0x00, /* 00000580 "........" */
+ 0x00,0x10,0x00,0x04,0x01,0x08,0x01,0x00, /* 00000588 "........" */
+ 0x00,0x60,0x00,0x00,0x01,0x08,0x01,0x00, /* 00000590 ".`......" */
+ 0x00,0x60,0x00,0x04,0x01,0x08,0x01,0x00, /* 00000598 ".`......" */
+ 0x00,0xb0,0x00,0x00,0x01,0x08,0x01,0x00, /* 000005a0 "........" */
+ 0x00,0xb0,0x00,0x04,0x07,0x00,0x30,0x00, /* 000005a8 "......0." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000005b0 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000005b8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0xb0,0x38,0xf6, /* 000005c0 "......8." */
+ 0xff,0x1f,0x00,0x00,0x10,0x00,0x00,0x00, /* 000005c8 "........" */
+ 0x00,0x05,0x08,0x00,0xf8,0xff,0x07,0x00, /* 000005d0 "........" */
+ 0x00,0x00,0x00,0x00,0x08,0x00,0x40,0x00, /* 000005d8 "......@." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000005e0 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000005e8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0xb0,0x38,0xf6, /* 000005f0 "......8." */
+ 0xff,0x1f,0x00,0x00,0x10,0x00,0x00,0x00, /* 000005f8 "........" */
+ 0x00,0x03,0x00,0x04,0x08,0x00,0x08,0x00, /* 00000600 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28, /* 00000608 ".......(" */
+ 0xf8,0xff,0x07,0x00,0x00,0x00,0x00,0x00, /* 00000610 "........" */
+ 0x00,0x00,0x00,0x00,0x0a,0x00,0x28,0x00, /* 00000618 "......(." */
+ 0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000620 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000628 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0xb0,0x38,0xf6, /* 00000630 "......8." */
+ 0xff,0x1f,0x00,0x00,0x10,0x00,0x00,0x00, /* 00000638 "........" */
+ 0x00,0x02,0x10,0x00, /* 00000640 "...." */
+};
+
const unsigned char TemplateErst[] =
{
0x45,0x52,0x53,0x54,0x30,0x02,0x00,0x00, /* 00000000 "ERST0..." */
@@ -1063,11 +1359,11 @@ const unsigned char TemplateLpit[] =
const unsigned char TemplateMadt[] =
{
- 0x41,0x50,0x49,0x43,0x6A,0x01,0x00,0x00, /* 00000000 "APICj..." */
- 0x05,0x9D,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
+ 0x41,0x50,0x49,0x43,0x62,0x02,0x00,0x00, /* 00000000 "APICb..." */
+ 0x07,0x44,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".DINTEL " */
0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
- 0x13,0x11,0x20,0x20,0x00,0x00,0x00,0x00, /* 00000020 ".. ...." */
+ 0x28,0x06,0x23,0x20,0x00,0x00,0x00,0x00, /* 00000020 "(.# ...." */
0x01,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 00000028 "........" */
0x01,0x00,0x00,0x00,0x01,0x0C,0x01,0x00, /* 00000030 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
@@ -1085,7 +1381,7 @@ const unsigned char TemplateMadt[] =
0x00,0x00,0x09,0x10,0x00,0x00,0x00,0x00, /* 00000098 "........" */
0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */
0x00,0x00,0x0A,0x0C,0x05,0x00,0x00,0x00, /* 000000A8 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x50, /* 000000B0 ".......P" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x52, /* 000000B0 ".......R" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "........" */
0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C8 "........" */
@@ -1096,19 +1392,50 @@ const unsigned char TemplateMadt[] =
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F0 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F8 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x18, /* 00000100 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000108 "........" */
+ 0x0C,0x18,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000108 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000110 "........" */
- 0x00,0x00,0x01,0x00,0x00,0x00,0x0D,0x18, /* 00000118 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000128 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x10, /* 00000130 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000138 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x14, /* 00000140 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000148 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000118 "........" */
+ 0x0D,0x18,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000120 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000128 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000130 "........" */
+ 0x0E,0x10,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000138 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000140 "........" */
+ 0x0F,0x14,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000148 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000150 "........" */
- 0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00, /* 00000158 "........" */
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00, /* 00000158 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000160 "........" */
- 0x00,0x00 /* 00000168 ".." */
+ 0x00,0x00,0x00,0x00,0x11,0x0F,0x01,0x01, /* 00000168 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, /* 00000170 "........" */
+ 0x00,0x00,0x00,0x12,0x17,0x01,0x00,0x14, /* 00000178 "........" */
+ 0xE0,0x1F,0x00,0x00,0x00,0x00,0x80,0x00, /* 00000180 "........" */
+ 0x02,0x03,0xFF,0xFF,0xFF,0x00,0x00,0x00, /* 00000188 "........" */
+ 0x00,0xFF,0x13,0x15,0x01,0x80,0x00,0x00, /* 00000190 "........" */
+ 0xFB,0xFD,0x0E,0x00,0x00,0x40,0x00,0x00, /* 00000198 ".....@.." */
+ 0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x14, /* 000001A0 "........" */
+ 0x0D,0x01,0x03,0x00,0x00,0x00,0x00,0x00, /* 000001A8 "........" */
+ 0x00,0x00,0x00,0x00,0x15,0x13,0x01,0x00, /* 000001B0 "........" */
+ 0x00,0xF0,0x2F,0x00,0x00,0x00,0x00,0x40, /* 000001B8 "../....@" */
+ 0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x16, /* 000001C0 "........" */
+ 0x11,0x01,0x00,0x00,0x00,0x10,0x00,0x00, /* 000001C8 "........" */
+ 0x00,0x00,0x00,0x10,0x00,0x00,0x40,0x00, /* 000001D0 "......@." */
+ 0x17,0x0E,0x01,0x00,0x20,0x00,0x10,0x00, /* 000001D8 ".... ..." */
+ 0x00,0x00,0x00,0x00,0x10,0x13,0x18,0x24, /* 000001E0 ".......$" */
+ 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000001E8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000001F8 "........" */
+ 0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x10, /* 00000200 ".(......" */
+ 0x00,0x00,0x19,0x10,0x01,0x00,0x00,0x00, /* 00000208 "........" */
+ 0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x00, /* 00000210 "........" */
+ 0x00,0x18,0x1A,0x24,0x01,0x00,0x00,0x00, /* 00000218 "...$...." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000220 "........" */
+ 0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00, /* 00000228 "....`..." */
+ 0x00,0x00,0x00,0x00,0x00,0x0D,0x00,0x00, /* 00000230 "........" */
+ 0x00,0x00,0x00,0x80,0x00,0x00,0x1B,0x24, /* 00000238 ".......$" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000240 "........" */
+ 0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00, /* 00000248 "..`....." */
+ 0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00, /* 00000250 "....`..." */
+ 0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000258 "........" */
+ 0x00,0x00 /* 00000260 ".." */
};
const unsigned char TemplateMcfg[] =
@@ -1153,6 +1480,42 @@ const unsigned char TemplateMsdm[] =
0x22,0x23,0x24,0x25 /* 00000060 ""#$%" */
};
+const unsigned char TemplateMpam[] =
+{
+ 0x4D,0x50,0x41,0x4D,0xFC,0x00,0x00,0x00, /* 00000000 "MPAM...." */
+ 0x02,0x35,0x48,0x49,0x53,0x49,0x20,0x20, /* 00000008 ".5HISI " */
+ 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
+ 0x02,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
+ 0x28,0x06,0x23,0x20,0x60,0x00,0x00,0x00, /* 00000020 "(.# `..." */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0, /* 00000028 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000030 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000050 "........" */
+ 0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "2......." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000060 "........" */
+ 0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00, /* 00000068 "........" */
+ 0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00, /* 00000070 ".... ..." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */
+ 0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00, /* 00000080 "....x..." */
+ 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xD0, /* 00000088 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00, /* 00000090 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000098 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */
+ 0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "2......." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */
+ 0x02,0x00,0x00,0x00,0x12,0x00,0x00,0x00, /* 000000C8 "........" */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 000000D0 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000D8 "........" */
+ 0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00, /* 000000E0 "........" */
+ 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 000000E8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000F0 "........" */
+ 0x00,0x00,0x00,0x00 /* 000000F8 "...." */
+};
+
const unsigned char TemplateMpst[] =
{
0x4D,0x50,0x53,0x54,0xB6,0x00,0x00,0x00, /* 00000000 "MPST...." */
@@ -1180,6 +1543,38 @@ const unsigned char TemplateMpst[] =
0x00,0x00,0x00,0x00,0x00,0x00 /* 000000B0 "......" */
};
+const unsigned char TemplateMrrm[] =
+{
+ 0x4D,0x52,0x52,0x4D,0xE0,0x00,0x00,0x00, /* 00000000 "MRRM...." */
+ 0x01,0x6F,0x49,0x4E,0x54,0x45,0x4C,0x00, /* 00000008 ".oINTEL." */
+ 0x49,0x4E,0x54,0x45,0x4C,0x20,0x49,0x44, /* 00000010 "INTEL ID" */
+ 0x02,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
+ 0x28,0x06,0x23,0x20,0x02,0x00,0x00,0x00, /* 00000020 "(.# ...." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
+ 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000040 ".. ....." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */
+ 0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00, /* 00000050 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000058 "........" */
+ 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000060 ".. ....." */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000068 "........" */
+ 0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00, /* 00000070 "........" */
+ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000078 "........" */
+ 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 00000080 ".. ....." */
+ 0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00, /* 00000088 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00, /* 00000090 "........" */
+ 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000098 "........" */
+ 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 000000A0 ".. ....." */
+ 0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00, /* 000000A8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00, /* 000000B0 "........" */
+ 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000000B8 "........" */
+ 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, /* 000000C0 ".. ....." */
+ 0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00, /* 000000C8 "........" */
+ 0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /* 000000D0 "........" */
+ 0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00 /* 000000D8 "........" */
+};
+
const unsigned char TemplateMsct[] =
{
0x4D,0x53,0x43,0x54,0x90,0x00,0x00,0x00, /* 00000000 "MSCT...." */
@@ -1255,78 +1650,6 @@ const unsigned char TemplateNfit[] =
0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000180 "........" */
};
-const unsigned char TemplateNhlt[] =
-{
- 0x4E,0x48,0x4C,0x54,0x1E,0x02,0x00,0x00, /* 00000000 "NHLT...." */
- 0x01,0xF7,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
- 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
- 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
- 0x30,0x09,0x21,0x20,0x04,0xAD,0x00,0x00, /* 00000020 "0.! ...." */
- 0x00,0x02,0x06,0x07,0x00,0x30,0xAE,0x09, /* 00000028 ".....0.." */
- 0x00,0x0A,0x00,0x00,0x00,0x02,0x03,0x0D, /* 00000030 "........" */
- 0x38,0x00,0x00,0x00,0xCC,0x01,0x1F,0x02, /* 00000038 "8......." */
- 0x04,0x00,0x13,0x00,0x09,0x00,0x11,0x00, /* 00000040 "........" */
- 0x04,0x20,0x07,0x00,0x09,0x00,0x18,0x00, /* 00000048 ". ......" */
- 0x22,0x00,0x11,0x00,0x15,0x00,0x05,0x03, /* 00000050 ""......." */
- 0x13,0x00,0x09,0x00,0x11,0x00,0x04,0x20, /* 00000058 "....... " */
- 0x07,0x00,0x09,0x00,0x18,0x00,0x22,0x00, /* 00000060 "......"." */
- 0x11,0x00,0x15,0x00,0xAA,0xAA,0x99,0x99, /* 00000068 "........" */
- 0x78,0x56,0x34,0x12,0x02,0xFE,0xFF,0x78, /* 00000070 "xV4....x" */
- 0x56,0x44,0x33,0x00,0x00,0x66,0x55,0x00, /* 00000078 "VD3..fU." */
- 0x00,0x00,0x80,0x16,0x00,0x32,0x00,0x04, /* 00000080 ".....2.." */
- 0x00,0x99,0x99,0x88,0x88,0x6E,0x88,0x9F, /* 00000088 ".....n.." */
- 0xA6,0xEB,0x6C,0x94,0x45,0xA4,0x1F,0x7B, /* 00000090 "..l.E..{" */
- 0x5D,0xCE,0x24,0xC5,0x53,0x02,0x00,0x00, /* 00000098 "].$.S..." */
- 0x00,0x30,0x40,0xFE,0xFF,0x78,0x56,0x44, /* 000000A0 ".0@..xVD" */
- 0x33,0x00,0x00,0x66,0x55,0x00,0x00,0x00, /* 000000A8 "3..fU..." */
- 0x80,0x16,0x00,0x32,0x00,0x04,0x00,0x99, /* 000000B0 "...2...." */
- 0x99,0x88,0x88,0x6E,0x88,0x9F,0xA6,0xEB, /* 000000B8 "...n...." */
- 0x6C,0x94,0x45,0xA4,0x1F,0x7B,0x5D,0xCE, /* 000000C0 "l.E..{]." */
- 0x24,0xC5,0x53,0x03,0x00,0x00,0x00,0x50, /* 000000C8 "$.S....P" */
- 0x60,0x70,0x48,0x00,0x00,0x00,0x05,0x06, /* 000000D0 "`pH....." */
- 0x07,0x00,0x34,0xAE,0x09,0x00,0x0A,0x00, /* 000000D8 "..4....." */
- 0x00,0x00,0x02,0x00,0x0D,0x02,0x00,0x00, /* 000000E0 "........" */
- 0x00,0xCC,0x00,0x01,0xFE,0xFF,0x78,0x56, /* 000000E8 "......xV" */
- 0x44,0x33,0x00,0x00,0x66,0x55,0x00,0x00, /* 000000F0 "D3..fU.." */
- 0x00,0x80,0x16,0x00,0x32,0x00,0x04,0x00, /* 000000F8 "....2..." */
- 0x99,0x99,0x88,0x88,0x6E,0x88,0x9F,0xA6, /* 00000100 "....n..." */
- 0xEB,0x6C,0x94,0x45,0xA4,0x1F,0x7B,0x5D, /* 00000108 ".l.E..{]" */
- 0xCE,0x24,0xC5,0x53,0x02,0x00,0x00,0x00, /* 00000110 ".$.S...." */
- 0x70,0x80,0x80,0x00,0x00,0x00,0x02,0x06, /* 00000118 "p......." */
- 0x07,0x00,0x30,0xAE,0x09,0x00,0x0A,0x00, /* 00000120 "..0....." */
- 0x00,0x00,0x02,0x03,0x0D,0x07,0x00,0x00, /* 00000128 "........" */
- 0x00,0xCC,0x03,0x09,0x34,0x12,0x28,0x01, /* 00000130 "....4.(." */
- 0x02,0xFE,0xFF,0x78,0x56,0x44,0x33,0x00, /* 00000138 "...xVD3." */
- 0x00,0x66,0x55,0x00,0x00,0x00,0x80,0x16, /* 00000140 ".fU....." */
- 0x00,0x32,0x00,0x04,0x00,0x99,0x99,0x88, /* 00000148 ".2......" */
- 0x88,0x6E,0x88,0x9F,0xA6,0xEB,0x6C,0x94, /* 00000150 ".n....l." */
- 0x45,0xA4,0x1F,0x7B,0x5D,0xCE,0x24,0xC5, /* 00000158 "E..{].$." */
- 0x53,0x04,0x00,0x00,0x00,0x70,0x80,0x90, /* 00000160 "S....p.." */
- 0xA0,0xFE,0xFF,0x78,0x56,0x44,0x33,0x00, /* 00000168 "...xVD3." */
- 0x00,0x66,0x55,0x00,0x00,0x00,0x80,0x16, /* 00000170 ".fU....." */
- 0x00,0x32,0x00,0x04,0x00,0x99,0x99,0x88, /* 00000178 ".2......" */
- 0x88,0x6E,0x88,0x9F,0xA6,0xEB,0x6C,0x94, /* 00000180 ".n....l." */
- 0x45,0xA4,0x1F,0x7B,0x5D,0xCE,0x24,0xC5, /* 00000188 "E..{].$." */
- 0x53,0x05,0x00,0x00,0x00,0x70,0x80,0x90, /* 00000190 "S....p.." */
- 0xA0,0xB0,0x7C,0x00,0x00,0x00,0x05,0x06, /* 00000198 "..|....." */
- 0x07,0x00,0x34,0xAE,0x09,0x00,0x0A,0x00, /* 000001A0 "..4....." */
- 0x00,0x00,0x02,0x00,0x0D,0x02,0x00,0x00, /* 000001A8 "........" */
- 0x00,0xCC,0x00,0x01,0xFE,0xFF,0x78,0x56, /* 000001B0 "......xV" */
- 0x44,0x33,0x00,0x00,0x66,0x55,0x00,0x00, /* 000001B8 "D3..fU.." */
- 0x00,0x80,0x16,0x00,0x32,0x00,0x04,0x00, /* 000001C0 "....2..." */
- 0x99,0x99,0x88,0x88,0x6E,0x88,0x9F,0xA6, /* 000001C8 "....n..." */
- 0xEB,0x6C,0x94,0x45,0xA4,0x1F,0x7B,0x5D, /* 000001D0 ".l.E..{]" */
- 0xCE,0x24,0xC5,0x53,0x11,0x00,0x00,0x00, /* 000001D8 ".$.S...." */
- 0x00,0x01,0x32,0x03,0x04,0x05,0x06,0x37, /* 000001E0 "..2....7" */
- 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x3F, /* 000001E8 ".......?" */
- 0x0A,0x01,0x00,0x01,0x32,0x03,0x04,0x05, /* 000001F0 "....2..." */
- 0x06,0x37,0x08,0x09,0x0A,0x0B,0x0C,0x0D, /* 000001F8 ".7......" */
- 0x0E,0x3F,0x44,0x9A,0x00,0x01,0x32,0x03, /* 00000200 ".?D...2." */
- 0x04,0x05,0x06,0x37,0x08,0x09,0x0A,0x0B, /* 00000208 "...7...." */
- 0x0C,0x0D,0x0E,0x3F,0x0A,0x0B,0x04,0x00, /* 00000210 "...?...." */
- 0x00,0x00,0xEF,0xBE,0xAD,0xDE /* 00000218 "......" */
-};
-
const unsigned char TemplatePcct[] =
{
0x50,0x43,0x43,0x54,0xAE,0x02,0x00,0x00, /* 00000000 "PCCT...." */
@@ -1430,20 +1753,27 @@ const unsigned char TemplatePdtt[] =
const unsigned char TemplatePhat [] =
{
- 0x50,0x48,0x41,0x54,0x6F,0x00,0x00,0x00, /* 00000000 "PHATo..." */
- 0x01,0xC7,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
+ 0x50,0x48,0x41,0x54,0xA2,0x00,0x00,0x00, /* 00000000 "PHAT...." */
+ 0x01,0xCA,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
- 0x05,0x01,0x21,0x20,0x00,0x00,0x28,0x00, /* 00000020 "..! ..(." */
+ 0x31,0x03,0x22,0x20,0x00,0x00,0x28,0x00, /* 00000020 "1." ..(." */
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000028 "........" */
0x30,0x05,0xAF,0x91,0x86,0x5D,0x0E,0x47, /* 00000030 "0....].G" */
0xA6,0xB0,0x0A,0x2D,0xB9,0x40,0x82,0x49, /* 00000038 "...-.@.I" */
0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01, /* 00000040 "........" */
- 0x0C,0x0B,0x0A,0x09,0x01,0x00,0x23,0x00, /* 00000048 "......#." */
+ 0x0C,0x0B,0x0A,0x09,0x01,0x00,0x2E,0x00, /* 00000048 "........" */
0x00,0x00,0x00,0x00,0x30,0x05,0xAF,0x91, /* 00000050 "....0..." */
0x86,0x5D,0x0E,0x47,0xA6,0xB0,0x0A,0x2D, /* 00000058 ".].G...-" */
- 0xB9,0x40,0x82,0x49,0x00,0x00,0x00,0x00, /* 00000060 ".@.I...." */
- 0x61,0x73,0x64,0x66,0x00,0xFF,0x11 /* 00000068 "asdf..." */
+ 0xB9,0x40,0x82,0x49,0x2A,0x00,0x00,0x00, /* 00000060 ".@.I*..." */
+ 0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00, /* 00000068 "A.B.C.D." */
+ 0x45,0x00,0x46,0x00,0x00,0x00,0x01,0x02, /* 00000070 "E.F....." */
+ 0x03,0x04,0x00,0x00,0x28,0x00,0x00,0x00, /* 00000078 "....(..." */
+ 0x00,0x00,0x01,0x00,0x00,0x00,0x30,0x05, /* 00000080 "......0." */
+ 0xAF,0x91,0x86,0x5D,0x0E,0x47,0xA6,0xB0, /* 00000088 "...].G.." */
+ 0x0A,0x2D,0xB9,0x40,0x82,0x49,0x08,0x07, /* 00000090 ".-.@.I.." */
+ 0x06,0x05,0x04,0x03,0x02,0x01,0x0C,0x0B, /* 00000098 "........" */
+ 0x0A,0x09 /* 000000A0 ".." */
};
const unsigned char TemplatePmtt[] =
@@ -1594,6 +1924,17 @@ const unsigned char TemplateRasf[] =
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000028 "........" */
};
+const unsigned char TemplateRas2[] =
+{
+ 0x52,0x41,0x53,0x32,0x38,0x00,0x00,0x00, /* 00000000 "RAS28..." */
+ 0x01,0x28,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 ".(INTEL " */
+ 0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
+ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
+ 0x28,0x06,0x23,0x20,0x00,0x00,0x02,0x00, /* 00000020 "(.# ...." */
+ 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00, /* 00000028 "........" */
+ 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00 /* 00000030 "........" */
+};
+
const unsigned char TemplateRgrt[] =
{
0x52,0x47,0x52,0x54,0x50,0x00,0x00,0x00, /* 00000000 "RGRTP..." */
@@ -1608,6 +1949,49 @@ const unsigned char TemplateRgrt[] =
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27 /* 00000048 " !"#$%&'" */
};
+const unsigned char TemplateRhct[] =
+{
+ 0x52,0x48,0x43,0x54,0x96,0x00,0x00,0x00, /* 00000000 "RHCT...." */
+ 0x01,0x6D,0x4F,0x45,0x4D,0x43,0x41,0x00, /* 00000008 ".mOEMCA." */
+ 0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
+ 0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
+ 0x04,0x04,0x25,0x20,0x00,0x00,0x00,0x00, /* 00000020 "..% ...." */
+ 0x80,0x96,0x98,0x00,0x00,0x00,0x00,0x00, /* 00000028 "........" */
+ 0x04,0x00,0x00,0x00,0x38,0x00,0x00,0x00, /* 00000030 "....8..." */
+ 0x00,0x00,0x34,0x00,0x01,0x00,0x2B,0x00, /* 00000038 "..4...+." */
+ 0x72,0x76,0x36,0x34,0x69,0x6D,0x61,0x66, /* 00000040 "rv64imaf" */
+ 0x64,0x63,0x68,0x5F,0x7A,0x69,0x63,0x73, /* 00000048 "dch_zics" */
+ 0x72,0x5F,0x7A,0x69,0x66,0x65,0x6E,0x63, /* 00000050 "r_zifenc" */
+ 0x65,0x69,0x5F,0x7A,0x62,0x61,0x5F,0x7A, /* 00000058 "ei_zba_z" */
+ 0x62,0x62,0x5F,0x7A,0x62,0x63,0x5F,0x7A, /* 00000060 "bb_zbc_z" */
+ 0x62,0x73,0x00,0x00,0x01,0x00,0x0A,0x00, /* 00000068 "bs......" */
+ 0x01,0x00,0x00,0x06,0x06,0x06,0x02,0x00, /* 00000070 "........" */
+ 0x08,0x00,0x01,0x00,0x00,0x02,0xFF,0xFF, /* 00000078 "........" */
+ 0x18,0x00,0x01,0x00,0x03,0x00,0x00,0x00, /* 00000080 "........" */
+ 0x00,0x00,0x3B,0x00,0x00,0x00,0x6C,0x00, /* 00000088 "..;...l." */
+ 0x00,0x00,0x76,0x00,0x00,0x00 /* 00000090 "..v..." */
+};
+
+const unsigned char TemplateRimt[] =
+{
+ 0x52,0x49,0x4d,0x54,0x80,0x00,0x00,0x00, /* 00000000 "RIMT...." */
+ 0x01,0xe1,0x42,0x4f,0x43,0x48,0x53,0x20, /* 00000008 ".pBOCHS " */
+ 0x42,0x58,0x50,0x43,0x20,0x20,0x20,0x20, /* 00000010 "BXPC " */
+ 0x01,0x00,0x00,0x00,0x42,0x58,0x50,0x43, /* 00000018 "....INTL" */
+ 0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00, /* 00000020 "..$ ...." */
+ 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000028 "0......." */
+ 0x00,0x01,0x28,0x00,0x00,0x00,0x00,0x00, /* 00000030 "..(....." */
+ 0x52,0x53,0x43,0x56,0x30,0x30,0x30,0x34, /* 00000038 "RSCV0004" */
+ 0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x00, /* 00000040 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00, /* 00000050 "......(." */
+ 0x01,0x01,0x28,0x00,0x00,0x00,0x01,0x00, /* 00000058 "..(....." */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000060 "........" */
+ 0x14,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 00000068 "........" */
+ 0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000070 "........" */
+ 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000078 "0......." */
+};
+
const unsigned char TemplateRsdp[] =
{
0x52,0x53,0x44,0x20,0x50,0x54,0x52,0x20, /* 00000000 "RSD PTR " */
@@ -1795,8 +2179,8 @@ const unsigned char TemplateSlit[] =
const unsigned char TemplateSpcr[] =
{
- 0x53,0x50,0x43,0x52,0x50,0x00,0x00,0x00, /* 00000000 "SPCRP..." */
- 0x01,0xE3,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
+ 0x53,0x50,0x43,0x52,0x5A,0x00,0x00,0x00, /* 00000000 "SPCRZ..." */
+ 0x04,0x4E,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
0x54,0x45,0x4D,0x50,0x4C,0x41,0x54,0x45, /* 00000010 "TEMPLATE" */
0x00,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
0x28,0x05,0x10,0x20,0x00,0x00,0x00,0x00, /* 00000020 "(.. ...." */
@@ -1804,7 +2188,9 @@ const unsigned char TemplateSpcr[] =
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000030 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000038 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000040 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 /* 00000048 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 00000048 "........" */
+ 0x00,0x00,0x00,0x00,0x02,0x00,0x58,0x00, /* 00000050 "......X." */
+ 0x2E,0x00 /* 00000058 ".." */
};
const unsigned char TemplateSpmi[] =
@@ -1822,8 +2208,8 @@ const unsigned char TemplateSpmi[] =
const unsigned char TemplateSrat[] =
{
- 0x53,0x52,0x41,0x54,0xBE,0x00,0x00,0x00, /* 00000000 "SRAT...." */
- 0x03,0xE6,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
+ 0x53,0x52,0x41,0x54,0xD2,0x00,0x00,0x00, /* 00000000 "SRAT...." */
+ 0x03,0xB6,0x49,0x4E,0x54,0x45,0x4C,0x20, /* 00000008 "..INTEL " */
0x54,0x65,0x6D,0x70,0x6C,0x61,0x74,0x65, /* 00000010 "Template" */
0x01,0x00,0x00,0x00,0x49,0x4E,0x54,0x4C, /* 00000018 "....INTL" */
0x29,0x06,0x18,0x20,0x01,0x00,0x00,0x00, /* 00000020 ").. ...." */
@@ -1845,7 +2231,10 @@ const unsigned char TemplateSrat[] =
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A0 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000A8 "........" */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000B0 "........" */
- 0x00,0x00,0x00,0x00,0x00,0x00 /* 000000B8 "......" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x14, /* 000000B8 "........" */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 000000C0 "........" */
+ 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00, /* 000000C8 "........" */
+ 0x00,0x00 /* 000000D0 ".." */
};
const unsigned char TemplateStao[] =
diff --git a/sys/contrib/dev/acpica/compiler/dtutils.c b/sys/contrib/dev/acpica/compiler/dtutils.c
index 875e20e5df5a..18ea18cefdd6 100644
--- a/sys/contrib/dev/acpica/compiler/dtutils.c
+++ b/sys/contrib/dev/acpica/compiler/dtutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -436,9 +436,14 @@ DtGetFieldType (
case ACPI_DMT_RAW_BUFFER:
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:
case ACPI_DMT_PCI_PATH:
case ACPI_DMT_PMTT_VENDOR:
@@ -584,12 +589,7 @@ DtGetFieldLength (
case ACPI_DMT_IVRS_DE:
case ACPI_DMT_GTDT:
case ACPI_DMT_MADT:
- case ACPI_DMT_NHLT1:
- case ACPI_DMT_NHLT1a:
- case ACPI_DMT_NHLT1b:
- case ACPI_DMT_NHLT1c:
- case ACPI_DMT_NHLT1d:
- case ACPI_DMT_NHLT1f:
+ case ACPI_DMT_MPAM_LOCATOR:
case ACPI_DMT_PCCT:
case ACPI_DMT_PMTT:
case ACPI_DMT_PPTT:
@@ -601,6 +601,7 @@ DtGetFieldLength (
case ACPI_DMT_AEST_XFACE:
case ACPI_DMT_AEST_XRUPT:
case ACPI_DMT_ASF:
+ case ACPI_DMT_CDAT:
case ACPI_DMT_HESTNTYP:
case ACPI_DMT_FADTPM:
case ACPI_DMT_EINJACT:
@@ -613,14 +614,16 @@ DtGetFieldLength (
ByteLength = 1;
break;
+ 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:
- case ACPI_DMT_NHLT1e:
case ACPI_DMT_PCI_PATH:
case ACPI_DMT_PHAT:
+ case ACPI_DMT_RHCT:
ByteLength = 2;
break;
@@ -734,6 +737,11 @@ DtGetFieldLength (
ByteLength = 10;
break;
+ case ACPI_DMT_BUF11:
+
+ ByteLength = 11;
+ break;
+
case ACPI_DMT_BUF12:
ByteLength = 12;
@@ -750,6 +758,26 @@ DtGetFieldLength (
ByteLength = 18;
break;
+ case ACPI_DMT_BUF24:
+
+ ByteLength = 24;
+ break;
+
+ case ACPI_DMT_BUF26:
+
+ ByteLength = 26;
+ break;
+
+ case ACPI_DMT_BUF32:
+
+ ByteLength = 32;
+ break;
+
+ case ACPI_DMT_BUF112:
+
+ ByteLength = 112;
+ break;
+
case ACPI_DMT_BUF128:
ByteLength = 128;
@@ -800,7 +828,7 @@ DtSum (
UINT8 *Sum = ReturnValue;
- Checksum = AcpiTbChecksum (Subtable->Buffer, Subtable->Length);
+ Checksum = AcpiUtChecksum (Subtable->Buffer, Subtable->Length);
*Sum = (UINT8) (*Sum + Checksum);
}
diff --git a/sys/contrib/dev/acpica/compiler/preprocess.h b/sys/contrib/dev/acpica/compiler/preprocess.h
index 9c25dd132a74..26a11f573402 100644
--- a/sys/contrib/dev/acpica/compiler/preprocess.h
+++ b/sys/contrib/dev/acpica/compiler/preprocess.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -249,6 +249,7 @@ typedef struct directive_info
*/
PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MainTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MacroTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
+PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_MacroTokenReplaceBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
PR_EXTERN char PR_INIT_GLOBAL (*AslGbl_ExpressionTokenBuffer, NULL); /* [ASL_LINE_BUFFER_SIZE]; */
PR_EXTERN UINT32 AslGbl_PreprocessorLineNumber;
@@ -370,6 +371,14 @@ PrError (
UINT32 Column);
void
+PrReplaceResizeSubstring(
+ PR_MACRO_ARG *Args,
+ UINT32 Diff1,
+ UINT32 Diff2,
+ UINT32 i,
+ char *Token);
+
+char *
PrReplaceData (
char *Buffer,
UINT32 LengthToRemove,
diff --git a/sys/contrib/dev/acpica/compiler/prexpress.c b/sys/contrib/dev/acpica/compiler/prexpress.c
index 54609cea4152..b2e7b785c5e9 100644
--- a/sys/contrib/dev/acpica/compiler/prexpress.c
+++ b/sys/contrib/dev/acpica/compiler/prexpress.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/prmacros.c b/sys/contrib/dev/acpica/compiler/prmacros.c
index 2d579af9c7b7..6d2acf52b980 100644
--- a/sys/contrib/dev/acpica/compiler/prmacros.c
+++ b/sys/contrib/dev/acpica/compiler/prmacros.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -393,10 +393,10 @@ PrAddMacro (
UINT16 UseCount = 0;
UINT16 ArgCount = 0;
UINT32 Depth = 1;
+ /*UINT32 Depth = 1;*/
UINT32 EndOfArgList;
char BufferChar;
-
/* Find the end of the arguments list */
TokenOffset = Name - AslGbl_MainTokenBuffer + strlen (Name) + 1;
@@ -437,6 +437,7 @@ PrAddMacro (
for (i = 0; i < PR_MAX_MACRO_ARGS; i++)
{
Token = PrGetNextToken (NULL, PR_MACRO_SEPARATORS, Next);
+
if (!Token)
{
/* This is the case for a NULL macro body */
@@ -454,14 +455,13 @@ PrAddMacro (
}
DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
- "Macro arg: %s \n",
+ "Macro param: %s\n",
AslGbl_CurrentLineNumber, Token);
Args[i].Name = UtLocalCalloc (strlen (Token) + 1);
strcpy (Args[i].Name, Token);
Args[i].UseCount = 0;
-
ArgCount++;
if (ArgCount >= PR_MAX_MACRO_ARGS)
{
@@ -476,7 +476,6 @@ PrAddMacro (
/* Match each method arg in the macro body for later use */
- Token = PrGetNextToken (NULL, PR_MACRO_SEPARATORS, Next);
while (Token)
{
/* Search the macro arg list for matching arg */
@@ -496,12 +495,14 @@ PrAddMacro (
Args[i].Offset[UseCount] =
(Token - AslGbl_MainTokenBuffer) - MacroBodyOffset;
+
DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
- "Macro Arg #%u: %s UseCount %u Offset %u \n",
+ "Macro Arg #%u: %s UseCount %u Offset %u\n",
AslGbl_CurrentLineNumber, i, Token,
UseCount+1, Args[i].Offset[UseCount]);
Args[i].UseCount++;
+
if (Args[i].UseCount >= PR_MAX_ARG_INSTANCES)
{
PrError (ASL_ERROR, ASL_MSG_TOO_MANY_ARGUMENTS,
@@ -543,7 +544,7 @@ AddMacroToList:
}
DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
- "Macro body: %s \n",
+ "Macro body: %s\n",
AslGbl_CurrentLineNumber, BodyInSource);
/* Add macro to the #define list */
@@ -596,7 +597,8 @@ PrDoMacroInvocation (
UINT32 TokenOffset;
UINT32 Length;
UINT32 i;
-
+ UINT32 Diff1;
+ UINT32 Diff2;
/* Take a copy of the macro body for expansion */
@@ -610,6 +612,7 @@ PrDoMacroInvocation (
/* This macro has no arguments */
Token = PrGetNextToken (NULL, PR_MACRO_ARGUMENTS, Next);
+
if (!Token)
{
goto BadInvocation;
@@ -634,32 +637,44 @@ PrDoMacroInvocation (
goto BadInvocation;
}
+ /*
+ * Avoid optimizing using just 1 signed int due to specific
+ * non-portable implementations of signed ints
+ */
+ Diff1 = strlen (Args->Name) > strlen (Token) ? strlen (Args->Name) -
+ strlen (Token) : 0;
+
+ Diff2 = strlen (Args->Name) < strlen (Token) ? strlen (Token) -
+ strlen (Args->Name) : 0;
+
/* Replace all instances of this argument */
for (i = 0; i < Args->UseCount; i++)
{
- /* Offset zero indicates "arg not used" */
- /* TBD: Not really needed now, with UseCount available */
+ /*
+ * To test the output of the preprocessed macro function that
+ * is passed to the compiler
+ */
- if (Args->Offset[i] == 0)
- {
- break;
- }
+ /*
+ * fprintf (stderr, "Current token = %s \t Current arg_name = %s \
+ * \t strlen (Token) = %u \t strlen (Args->Name) = %u \t Offset = %u \
+ * \t UseCount = %u \t", Token, Args->Name, strlen (Token), \
+ * strlen (Args->Name), Args->Offset[i], Args->UseCount);
+ */
+
+ AslGbl_MacroTokenReplaceBuffer = (char *) calloc ((strlen (AslGbl_MacroTokenBuffer)), sizeof (char));
- PrReplaceData (
- &AslGbl_MacroTokenBuffer[Args->Offset[i]], strlen (Args->Name),
- Token, strlen (Token));
+ PrReplaceResizeSubstring (Args, Diff1, Diff2, i, Token);
DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
- "ExpandArg: %s \n",
+ "ExpandArg: %s\n",
AslGbl_CurrentLineNumber, AslGbl_MacroTokenBuffer);
}
Args++;
}
- /* TBD: need to make sure macro was not invoked with too many arguments */
-
if (!Token)
{
return;
@@ -676,13 +691,12 @@ PrDoMacroInvocation (
return;
-
BadInvocation:
PrError (ASL_ERROR, ASL_MSG_INVALID_INVOCATION,
THIS_TOKEN_OFFSET (MacroStart));
DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
- "Bad macro invocation: %s \n",
+ "Bad macro invocation: %s\n",
AslGbl_CurrentLineNumber, AslGbl_MacroTokenBuffer);
return;
}
diff --git a/sys/contrib/dev/acpica/compiler/prparser.l b/sys/contrib/dev/acpica/compiler/prparser.l
index f17a38bc4a28..fe0495121911 100644
--- a/sys/contrib/dev/acpica/compiler/prparser.l
+++ b/sys/contrib/dev/acpica/compiler/prparser.l
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/prparser.y b/sys/contrib/dev/acpica/compiler/prparser.y
index 32e88785d9ae..47edb20dcba8 100644
--- a/sys/contrib/dev/acpica/compiler/prparser.y
+++ b/sys/contrib/dev/acpica/compiler/prparser.y
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/compiler/prscan.c b/sys/contrib/dev/acpica/compiler/prscan.c
index f33ea7d926ff..81b703cfb081 100644
--- a/sys/contrib/dev/acpica/compiler/prscan.c
+++ b/sys/contrib/dev/acpica/compiler/prscan.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -780,8 +780,9 @@ PrDoDirective (
TokenOffset = Token - AslGbl_MainTokenBuffer + strlen (Token);
if (*(&AslGbl_CurrentLineBuffer[TokenOffset]) == '(')
{
-#ifndef MACROS_SUPPORTED
- AcpiOsPrintf (
+
+#ifdef MACROS_SUPPORTED
+ AcpiOsPrintf(
"%s ERROR - line %u: #define macros are not supported yet\n",
AslGbl_CurrentLineBuffer, AslGbl_LogicalLineNumber);
exit(1);
@@ -789,6 +790,8 @@ PrDoDirective (
PrAddMacro (Token, Next);
#endif
}
+
+
else
{
/* Use the remainder of the line for the #define */
diff --git a/sys/contrib/dev/acpica/compiler/prutils.c b/sys/contrib/dev/acpica/compiler/prutils.c
index 323bd6045885..902baed833c8 100644
--- a/sys/contrib/dev/acpica/compiler/prutils.c
+++ b/sys/contrib/dev/acpica/compiler/prutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -284,6 +284,262 @@ PrError (
/*******************************************************************************
*
+ * FUNCTION: PrReplaceResizeSubstring
+ *
+ * PARAMETERS: Args - Struct containing name, offset & usecount
+ * Diff1 - Difference in lengths when new < old
+ * Diff2 - Difference in lengths when new > old
+* i - The curr. no. of iteration of replacement
+ * Token - Substring that replaces Args->Name
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Advanced substring replacement in a string using resized buffer.
+ *
+ ******************************************************************************/
+
+void
+PrReplaceResizeSubstring(
+ PR_MACRO_ARG *Args,
+ UINT32 Diff1,
+ UINT32 Diff2,
+ UINT32 i,
+ char *Token)
+{
+ UINT32 b, PrevOffset;
+ char *temp;
+ char macro_sep[64];
+
+
+ AslGbl_MacroTokenReplaceBuffer = (char *) realloc (AslGbl_MacroTokenReplaceBuffer,
+ (2 * (strlen (AslGbl_MacroTokenBuffer))));
+
+ strcpy (macro_sep, "~,() {}!*/%+-<>=&^|\"\t\n");
+
+ /*
+ * When the replacement argument (during invocation) length
+ * < replaced parameter (in the macro function definition
+ * and its expansion) length
+ */
+ if (Diff1 != 0)
+ {
+ /*
+ * We save the offset value to reset it after replacing each
+ * instance of each arg and setting the offset value to
+ * the start of the arg to be replaced since it changes
+ * with each iteration when arg length != token length
+ */
+ PrevOffset = Args->Offset[i];
+ temp = strstr (AslGbl_MacroTokenBuffer, Args->Name);
+ if (temp == NULL)
+ {
+ return;
+ }
+
+ResetHere1:
+ temp = strstr (temp, Args->Name);
+ if (temp == NULL)
+ {
+ return;
+ }
+ Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) -
+ strlen (temp);
+ if (Args->Offset[i] == 0)
+ {
+ goto JumpHere1;
+ }
+ if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) &&
+ (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))])))
+ {
+ Args->Offset[i] += 0;
+ }
+ else
+ {
+ temp += strlen (Args->Name);
+ goto ResetHere1;
+ }
+
+ /*
+ * For now, we simply set the extra char positions (generated
+ * due to longer name replaced by shorter name) to whitespace
+ * chars so it will be ignored during compilation
+ */
+JumpHere1:
+ b = strlen (Token) + Args->Offset[i];
+ memset (&AslGbl_MacroTokenBuffer[b], ' ', Diff1);
+
+# if 0
+
+ /* Work in progress as of 03/08/2023 - experimental 'if' block
+ * to test code for removing extra whitespaces from the macro
+ * replacement when replacement arg < replaced param
+ */
+ char Buff[8192];
+ /* char* Replace; */
+ /* Replace = Buff; */
+
+ for (j = 0; j < strlen (AslGbl_MacroTokenBuffer); j++)
+ {
+ Buff[j] = AslGbl_MacroTokenBuffer[j];
+ }
+ Buff[strlen (AslGbl_MacroTokenBuffer)] = '\0';
+ /* fprintf(stderr, "Buff: %s\n", Buff); */
+
+ UINT32 len = strlen (Buff);
+
+ for (j = 0; j < len; j++)
+ {
+ if (Buff[0] == ' ')
+ {
+ for (j = 0; j < (len - 1); j++)
+ {
+ Buff[j] = Buff[j + 1];
+ }
+ Buff[j] = '\0';
+ len--;
+ j = -1;
+ continue;
+ }
+
+ if (Buff[j] == ' ' && Buff[j + 1] == ' ')
+ {
+ for (k = 0; k < (len - 1); k++)
+ {
+ Buff[j] = Buff[j + 1];
+ }
+ Buff[j] = '\0';
+ len--;
+ j--;
+ }
+ }
+ /* fprintf(stderr, "Buff: %s\n", Buff); */
+
+ for (k = 0; k < strlen (Buff); k++)
+ {
+ AslGbl_MacroTokenBuffer[k] = Buff[k];
+ }
+#endif
+
+ PrReplaceData (
+ &AslGbl_MacroTokenBuffer[Args->Offset[i]],
+ strlen (Token), Token, strlen (Token));
+
+ temp = NULL;
+ Args->Offset[i] = PrevOffset;
+ }
+
+ /*
+ * When the replacement argument (during invocation) length
+ * > replaced parameter (in the macro function definition
+ * and its expansion) length
+ */
+ else if (Diff2 != 0)
+ {
+ /* Doing the same thing with offset value as for prev case */
+
+ PrevOffset = Args->Offset[i];
+ temp = strstr (AslGbl_MacroTokenBuffer, Args->Name);
+ if (temp == NULL)
+ {
+ return;
+ }
+
+ResetHere2:
+ temp = strstr (temp, Args->Name);
+ if (temp == NULL)
+ {
+ return;
+ }
+ Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) -
+ strlen (temp);
+ if (Args->Offset[i] == 0)
+ {
+ goto JumpHere2;
+ }
+ if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) &&
+ (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))])))
+ {
+ Args->Offset[i] += 0;
+ }
+ else
+ {
+ temp+= strlen (Args->Name);
+ goto ResetHere2;
+ }
+
+ /*
+ * We will need to allocate some extra space in our buffer to
+ * accommodate the increase in the replacement string length
+ * over the shorter outgoing arg string and do the replacement
+ * at the correct offset value which is resetted every iteration
+ */
+JumpHere2:
+ memcpy (AslGbl_MacroTokenReplaceBuffer, AslGbl_MacroTokenBuffer, Args->Offset[i]);
+ strcat (AslGbl_MacroTokenReplaceBuffer, Token);
+ strcat (AslGbl_MacroTokenReplaceBuffer, (AslGbl_MacroTokenBuffer +
+ (Args->Offset[i] + strlen (Args->Name))));
+
+ strcpy (AslGbl_MacroTokenBuffer, AslGbl_MacroTokenReplaceBuffer);
+
+ temp = NULL;
+ Args->Offset[i] = PrevOffset;
+ }
+
+ /*
+ * When the replacement argument (during invocation) length =
+ * replaced parameter (in the macro function definition and
+ * its expansion) length
+ */
+ else
+ {
+
+ /*
+ * We still need to reset the offset for each iteration even when
+ * arg and param lengths are same since any macro func invocation
+ * could use various cases for each separate arg-param pair
+ */
+ PrevOffset = Args->Offset[i];
+ temp = strstr (AslGbl_MacroTokenBuffer, Args->Name);
+ if (temp == NULL)
+ {
+ return;
+ }
+
+ResetHere3:
+ temp = strstr (temp, Args->Name);
+ if (temp == NULL)
+ {
+ return;
+ }
+ Args->Offset[i] = strlen (AslGbl_MacroTokenBuffer) -
+ strlen (temp);
+ if (Args->Offset[i] == 0)
+ {
+ goto JumpHere3;
+ }
+ if ((strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] - 1)])) &&
+ (strchr (macro_sep, AslGbl_MacroTokenBuffer[(Args->Offset[i] + strlen (Args->Name))])))
+ {
+ Args->Offset[i] += 0;
+ }
+ else
+ {
+ temp += strlen (Args->Name);
+ goto ResetHere3;
+ }
+
+JumpHere3:
+ PrReplaceData (
+ &AslGbl_MacroTokenBuffer[Args->Offset[i]],
+ strlen (Args->Name), Token, strlen (Token));
+ temp = NULL;
+ Args->Offset[i] = PrevOffset;
+ }
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: PrReplaceData
*
* PARAMETERS: Buffer - Original(target) buffer pointer
@@ -291,13 +547,13 @@ PrError (
* BufferToAdd - Data to be inserted into target buffer
* LengthToAdd - Length of BufferToAdd
*
- * RETURN: None
+ * RETURN: Pointer to where the buffer is replaced with data
*
* DESCRIPTION: Generic buffer data replacement.
*
******************************************************************************/
-void
+char *
PrReplaceData (
char *Buffer,
UINT32 LengthToRemove,
@@ -325,12 +581,14 @@ PrReplaceData (
}
}
+
/* Now we can move in the new data */
if (LengthToAdd > 0)
{
memmove (Buffer, BufferToAdd, LengthToAdd);
}
+ return (Buffer + LengthToAdd);
}
diff --git a/sys/contrib/dev/acpica/components/debugger/dbcmds.c b/sys/contrib/dev/acpica/components/debugger/dbcmds.c
index 04eecb841ae6..17ec5f342618 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbcmds.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbcmds.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -157,7 +157,6 @@
#include <contrib/dev/acpica/include/acresrc.h>
#include <contrib/dev/acpica/include/actables.h>
-
#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbcmds")
@@ -1291,6 +1290,64 @@ AcpiDbDisplayResources (
}
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDbGenerateGed
+ *
+ * PARAMETERS: GedArg - Raw GED number, ascii string
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Simulate firing of a GED
+ *
+ ******************************************************************************/
+
+void
+AcpiDbGenerateInterrupt (
+ char *GsivArg)
+{
+ UINT32 GsivNumber;
+ ACPI_GED_HANDLER_INFO *GedInfo = AcpiGbl_GedHandlerList;
+
+ if (!GedInfo) {
+ AcpiOsPrintf ("No GED handling present\n");
+ }
+
+ GsivNumber = strtoul (GsivArg, NULL, 0);
+
+ while (GedInfo) {
+
+ if (GedInfo->IntId == GsivNumber) {
+ ACPI_OBJECT_LIST ArgList;
+ ACPI_OBJECT Arg0;
+ ACPI_HANDLE EvtHandle = GedInfo->EvtMethod;
+ ACPI_STATUS Status;
+
+ AcpiOsPrintf ("Evaluate GED _EVT (GSIV=%d)\n", GsivNumber);
+
+ if (!EvtHandle) {
+ AcpiOsPrintf ("Undefined _EVT method\n");
+ return;
+ }
+
+ Arg0.Integer.Type = ACPI_TYPE_INTEGER;
+ Arg0.Integer.Value = GsivNumber;
+
+ ArgList.Count = 1;
+ ArgList.Pointer = &Arg0;
+
+ Status = AcpiEvaluateObject (EvtHandle, NULL, &ArgList, NULL);
+ if (ACPI_FAILURE (Status))
+ {
+ AcpiOsPrintf ("Could not evaluate _EVT\n");
+ return;
+ }
+
+ }
+ GedInfo = GedInfo->Next;
+ }
+}
+
#if (!ACPI_REDUCED_HARDWARE)
/*******************************************************************************
*
diff --git a/sys/contrib/dev/acpica/components/debugger/dbconvert.c b/sys/contrib/dev/acpica/components/debugger/dbconvert.c
index 6ad7e5983d7e..ed464e25bdbe 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbconvert.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbconvert.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -354,6 +354,8 @@ AcpiDbConvertToPackage (
Elements = ACPI_ALLOCATE_ZEROED (
DB_DEFAULT_PKG_ELEMENTS * sizeof (ACPI_OBJECT));
+ if (!Elements)
+ return (AE_NO_MEMORY);
This = String;
for (i = 0; i < (DB_DEFAULT_PKG_ELEMENTS - 1); i++)
diff --git a/sys/contrib/dev/acpica/components/debugger/dbdisply.c b/sys/contrib/dev/acpica/components/debugger/dbdisply.c
index b0fe0cd8072b..c57a19d0dbdb 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbdisply.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbdisply.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbexec.c b/sys/contrib/dev/acpica/components/debugger/dbexec.c
index 05aecc3083d7..38c7496ebba1 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbexec.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbexec.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbfileio.c b/sys/contrib/dev/acpica/components/debugger/dbfileio.c
index 49067168fac4..b006ac9d330b 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbfileio.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbfileio.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbhistry.c b/sys/contrib/dev/acpica/components/debugger/dbhistry.c
index 74922c2d6d18..45d44d11f315 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbhistry.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbhistry.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbinput.c b/sys/contrib/dev/acpica/components/debugger/dbinput.c
index 03981ec5c256..e38364448885 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbinput.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbinput.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -264,6 +264,7 @@ enum AcpiExDebuggerCommands
CMD_THREADS,
CMD_TEST,
+ CMD_INTERRUPT,
#endif
};
@@ -345,6 +346,7 @@ static const ACPI_DB_COMMAND_INFO AcpiGbl_DbCommands[] =
{"THREADS", 3},
{"TEST", 1},
+ {"INTERRUPT", 1},
#endif
{NULL, 0}
};
@@ -461,6 +463,7 @@ static const ACPI_DB_COMMAND_HELP AcpiGbl_DbCommandHelp[] =
{1, " Gpes", "Display info on all GPE devices\n"},
{1, " Sci", "Generate an SCI\n"},
{1, " Sleep [SleepState]", "Simulate sleep/wake sequence(s) (0-5)\n"},
+ {1, " Interrupt <GSIV>", "Simulate an interrupt\n"},
#endif
{0, NULL, NULL}
};
@@ -1263,6 +1266,11 @@ AcpiDbCommandDispatch (
AcpiOsPrintf ("Event command not implemented\n");
break;
+ case CMD_INTERRUPT:
+
+ AcpiDbGenerateInterrupt (AcpiGbl_DbArgs[1]);
+ break;
+
case CMD_GPE:
AcpiDbGenerateGpe (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
diff --git a/sys/contrib/dev/acpica/components/debugger/dbmethod.c b/sys/contrib/dev/acpica/components/debugger/dbmethod.c
index e53901ef3e37..27e572d5ad17 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbmethod.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbmethod.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbnames.c b/sys/contrib/dev/acpica/components/debugger/dbnames.c
index 410eb139dd62..fc6a26fe9cdc 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbnames.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbnames.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -774,7 +774,12 @@ AcpiDbWalkForFields (
ACPI_FREE (Buffer.Pointer);
Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- AcpiEvaluateObject (ObjHandle, NULL, NULL, &Buffer);
+ Status = AcpiEvaluateObject (ObjHandle, NULL, NULL, &Buffer);
+ if (ACPI_FAILURE (Status))
+ {
+ AcpiOsPrintf ("Could Not evaluate object %p\n", ObjHandle);
+ return (AE_OK);
+ }
/*
* Since this is a field unit, surround the output in braces
@@ -884,6 +889,9 @@ AcpiDbDisplayObjects (
{
ObjectInfo = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_OBJECT_INFO));
+ if (!ObjectInfo)
+ return (AE_NO_MEMORY);
+
/* Walk the namespace from the root */
(void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
diff --git a/sys/contrib/dev/acpica/components/debugger/dbobject.c b/sys/contrib/dev/acpica/components/debugger/dbobject.c
index bd60776e05ea..0033b61ccab8 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbobject.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbobject.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbstats.c b/sys/contrib/dev/acpica/components/debugger/dbstats.c
index 9c32ab631bdc..76295cadd337 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbstats.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbstats.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbtest.c b/sys/contrib/dev/acpica/components/debugger/dbtest.c
index 960ad65b8c10..4e0eb486c35b 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbtest.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbtest.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbutils.c b/sys/contrib/dev/acpica/components/debugger/dbutils.c
index a98a3a61eeb9..4a39f9aca9e0 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbutils.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/debugger/dbxface.c b/sys/contrib/dev/acpica/components/debugger/dbxface.c
index 4b932629db2b..2150abc16100 100644
--- a/sys/contrib/dev/acpica/components/debugger/dbxface.c
+++ b/sys/contrib/dev/acpica/components/debugger/dbxface.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmbuffer.c b/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c
index 02571b019ff0..d9e2273712e5 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmbuffer.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmcstyle.c b/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c
index 65b598569596..ce3aa09084df 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmcstyle.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmdeferred.c b/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c
index e99813ba952a..3826f194d6fd 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmdeferred.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmnames.c b/sys/contrib/dev/acpica/components/disassembler/dmnames.c
index 674870b2bb22..447618b5bc52 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmnames.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmnames.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmopcode.c b/sys/contrib/dev/acpica/components/disassembler/dmopcode.c
index 439af75769dc..1cb1c81d74eb 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmopcode.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmopcode.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmresrc.c b/sys/contrib/dev/acpica/components/disassembler/dmresrc.c
index 421e45a70dee..e5a859ed47b7 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmresrc.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmresrc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -203,6 +203,7 @@ static ACPI_RESOURCE_HANDLER AcpiGbl_DmResourceDispatch [] =
AcpiDmPinGroupDescriptor, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */
AcpiDmPinGroupFunctionDescriptor, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */
AcpiDmPinGroupConfigDescriptor, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG */
+ AcpiDmClockInputDescriptor, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */
};
diff --git a/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c b/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c
index aa26b88e5f76..b50766bcdf20 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmresrcl.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmresrcl2.c b/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c
index 83e1c1a48629..551cf8178d94 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmresrcl2.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -525,6 +525,46 @@ AcpiDmGpioDescriptor (
}
}
+void
+AcpiDmClockInputDescriptor (
+ ACPI_OP_WALK_INFO *Info,
+ AML_RESOURCE *Resource,
+ UINT32 Length,
+ UINT32 Level)
+{
+ char *DeviceName = NULL;
+ UINT8 *ResourceIndex = NULL;
+ AcpiDmIndent (Level);
+
+ AcpiOsPrintf ("ClockInput (");
+
+ AcpiOsPrintf ("0x%8.8X, ", Resource->ClockInput.FrequencyNumerator);
+
+ AcpiOsPrintf ("0x%4.4X, ", Resource->ClockInput.FrequencyDivisor);
+
+ AcpiOsPrintf ("%s, ",
+ AcpiGbl_ClockInputScale [ACPI_EXTRACT_2BIT_FLAG (Resource->ClockInput.Flags, 1)]);
+
+ AcpiOsPrintf ("%s, ",
+ AcpiGbl_ClockInputMode [ACPI_GET_1BIT_FLAG (Resource->ClockInput.Flags)]);
+
+ if (Length > sizeof(Resource->ClockInput))
+ {
+ DeviceName = ACPI_ADD_PTR (char,
+ Resource, sizeof(Resource->ClockInput)+1),
+ AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
+
+ AcpiOsPrintf (", ");
+ ResourceIndex = ACPI_ADD_PTR (UINT8,
+ Resource, sizeof(Resource->ClockInput)),
+
+ AcpiOsPrintf ("0x%2.2X", *ResourceIndex);
+ }
+
+ AcpiOsPrintf (")\n");
+
+}
+
/*******************************************************************************
*
* FUNCTION: AcpiDmPinFunctionDescriptor
@@ -738,7 +778,7 @@ AcpiDmCsi2SerialBusDescriptor (
AcpiOsPrintf (" 0x%2.2X, 0x%2.2X,\n",
Resource->Csi2SerialBus.TypeSpecificFlags & 0x03,
- Resource->Csi2SerialBus.TypeSpecificFlags & 0xFC);
+ (Resource->Csi2SerialBus.TypeSpecificFlags & 0xFC) >> 2);
/* ResourceSource is a required field */
diff --git a/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c b/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c
index 3f67a6f6e58c..1398462cecfc 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmresrcs.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmutils.c b/sys/contrib/dev/acpica/components/disassembler/dmutils.c
index fb04e8404e7a..41e26ee4b755 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmutils.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/disassembler/dmwalk.c b/sys/contrib/dev/acpica/components/disassembler/dmwalk.c
index ae1ac5dd873d..36f6def2bba5 100644
--- a/sys/contrib/dev/acpica/components/disassembler/dmwalk.c
+++ b/sys/contrib/dev/acpica/components/disassembler/dmwalk.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -969,8 +969,6 @@ AcpiDmDescendingOp (
AcpiDmPredefinedDescription (Op->Asl.Parent);
}
- AcpiDmPredefinedDescription (Op->Asl.Parent);
-
AcpiOsPrintf ("\n");
AcpiDmIndent (Info->Level);
AcpiOsPrintf ("{\n");
diff --git a/sys/contrib/dev/acpica/components/dispatcher/dsargs.c b/sys/contrib/dev/acpica/components/dispatcher/dsargs.c
index 5f2de2f52c87..4a60cde8a15a 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsargs.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsargs.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dscontrol.c b/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c
index 946d8daa1ce8..fcf10cf4e856 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dscontrol.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dsdebug.c b/sys/contrib/dev/acpica/components/dispatcher/dsdebug.c
index 662318ea2bcd..feb7f58a95de 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsdebug.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsdebug.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dsfield.c b/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
index 730616ac2951..baa6a2eef262 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsfield.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dsinit.c b/sys/contrib/dev/acpica/components/dispatcher/dsinit.c
index bd096b1451cd..bcf2d4f112c8 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsinit.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsinit.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dsmethod.c b/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c
index 1fe1983c476f..becdb95f8b83 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsmethod.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -646,8 +646,6 @@ AcpiDsCallControlMethod (
ACPI_WALK_STATE *NextWalkState = NULL;
ACPI_OPERAND_OBJECT *ObjDesc;
ACPI_EVALUATE_INFO *Info;
- UINT32 i;
-
ACPI_FUNCTION_TRACE_PTR (DsCallControlMethod, ThisWalkState);
@@ -670,6 +668,23 @@ AcpiDsCallControlMethod (
return_ACPI_STATUS (AE_NULL_OBJECT);
}
+ if (ThisWalkState->NumOperands < ObjDesc->Method.ParamCount)
+ {
+ ACPI_ERROR ((AE_INFO, "Missing argument(s) for method [%4.4s]",
+ AcpiUtGetNodeName (MethodNode)));
+
+ return_ACPI_STATUS (AE_AML_TOO_FEW_ARGUMENTS);
+ }
+
+ else if (ThisWalkState->NumOperands > ObjDesc->Method.ParamCount)
+ {
+ ACPI_ERROR ((AE_INFO, "Too many arguments for method [%4.4s]",
+ AcpiUtGetNodeName (MethodNode)));
+
+ return_ACPI_STATUS (AE_AML_TOO_MANY_ARGUMENTS);
+ }
+
+
/* Init for new method, possibly wait on method mutex */
Status = AcpiDsBeginMethodExecution (
@@ -705,7 +720,7 @@ AcpiDsCallControlMethod (
if (!Info)
{
Status = AE_NO_MEMORY;
- goto Cleanup;
+ goto PopWalkState;
}
Info->Parameters = &ThisWalkState->Operands[0];
@@ -717,7 +732,7 @@ AcpiDsCallControlMethod (
ACPI_FREE (Info);
if (ACPI_FAILURE (Status))
{
- goto Cleanup;
+ goto PopWalkState;
}
NextWalkState->MethodNestingDepth = ThisWalkState->MethodNestingDepth + 1;
@@ -726,15 +741,7 @@ AcpiDsCallControlMethod (
* Delete the operands on the previous walkstate operand stack
* (they were copied to new objects)
*/
- for (i = 0; i < ObjDesc->Method.ParamCount; i++)
- {
- AcpiUtRemoveReference (ThisWalkState->Operands [i]);
- ThisWalkState->Operands [i] = NULL;
- }
-
- /* Clear the operand stack */
-
- ThisWalkState->NumOperands = 0;
+ AcpiDsClearOperands (ThisWalkState);
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
"**** Begin nested execution of [%4.4s] **** WalkState=%p\n",
@@ -764,6 +771,12 @@ AcpiDsCallControlMethod (
return_ACPI_STATUS (Status);
+PopWalkState:
+
+ /* On error, pop the walk state to be deleted from thread */
+
+ AcpiDsPopWalkState(Thread);
+
Cleanup:
/* On error, we must terminate the method properly */
diff --git a/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c b/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c
index 0600012bc519..2c45e8c91f57 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsmthdat.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -357,6 +357,7 @@ AcpiDsMethodDataInitArgs (
Index++;
}
+ AcpiExTraceArgs(Params, Index);
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%u args passed to method\n", Index));
return_ACPI_STATUS (AE_OK);
diff --git a/sys/contrib/dev/acpica/components/dispatcher/dsobject.c b/sys/contrib/dev/acpica/components/dispatcher/dsobject.c
index e05ba16aeb25..cd9921e59261 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsobject.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsobject.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dsopcode.c b/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c
index 0a1dc053ec59..23c7065bec5a 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsopcode.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dspkginit.c b/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c
index 013c565c32dd..6365ab4b0f20 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dspkginit.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dsutils.c b/sys/contrib/dev/acpica/components/dispatcher/dsutils.c
index 821b75d118d3..04b65326b51c 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dsutils.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dsutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -867,6 +867,8 @@ AcpiDsCreateOperands (
ACPI_PARSE_OBJECT *Arguments[ACPI_OBJ_NUM_OPERANDS];
UINT32 ArgCount = 0;
UINT32 Index = WalkState->NumOperands;
+ UINT32 PrevNumOperands = WalkState->NumOperands;
+ UINT32 NewNumOperands;
UINT32 i;
@@ -899,6 +901,7 @@ AcpiDsCreateOperands (
/* Create the interpreter arguments, in reverse order */
+ NewNumOperands = Index;
Index--;
for (i = 0; i < ArgCount; i++)
{
@@ -926,7 +929,11 @@ Cleanup:
* pop everything off of the operand stack and delete those
* objects
*/
- AcpiDsObjStackPopAndDelete (ArgCount, WalkState);
+ WalkState->NumOperands = (UINT8) (i);
+ AcpiDsObjStackPopAndDelete (NewNumOperands, WalkState);
+
+ /* Restore operand count */
+ WalkState->NumOperands = (UINT8) (PrevNumOperands);
ACPI_EXCEPTION ((AE_INFO, Status, "While creating Arg %u", Index));
return_ACPI_STATUS (Status);
diff --git a/sys/contrib/dev/acpica/components/dispatcher/dswexec.c b/sys/contrib/dev/acpica/components/dispatcher/dswexec.c
index 9b1f1cb80eb0..1e287fae9977 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dswexec.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dswexec.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -569,9 +569,11 @@ AcpiDsExecEndOp (
/*
* All opcodes require operand resolution, with the only exceptions
- * being the ObjectType and SizeOf operators.
+ * being the ObjectType and SizeOf operators as well as opcodes that
+ * take no arguments.
*/
- if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE))
+ if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE) &&
+ (WalkState->OpInfo->Flags & AML_HAS_ARGS))
{
/* Resolve all operands */
diff --git a/sys/contrib/dev/acpica/components/dispatcher/dswload.c b/sys/contrib/dev/acpica/components/dispatcher/dswload.c
index 81f7986b2d82..8c9969de14f7 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dswload.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dswload.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dswload2.c b/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
index 30f5d116a485..8ef7ff4090d1 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dswscope.c b/sys/contrib/dev/acpica/components/dispatcher/dswscope.c
index 851f8472ca43..faf08bcfb399 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dswscope.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dswscope.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/dispatcher/dswstate.c b/sys/contrib/dev/acpica/components/dispatcher/dswstate.c
index 7089694890f2..f353951961b2 100644
--- a/sys/contrib/dev/acpica/components/dispatcher/dswstate.c
+++ b/sys/contrib/dev/acpica/components/dispatcher/dswstate.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -310,8 +310,8 @@ AcpiDsResultPush (
if (!Object)
{
ACPI_ERROR ((AE_INFO,
- "Null Object! Obj=%p State=%p Num=%u",
- Object, WalkState, WalkState->ResultCount));
+ "Null Object! State=%p Num=%u",
+ WalkState, WalkState->ResultCount));
return (AE_BAD_PARAMETER);
}
@@ -785,9 +785,14 @@ AcpiDsInitAmlWalk (
WalkState->ParserState.Aml =
- WalkState->ParserState.AmlStart = AmlStart;
+ WalkState->ParserState.AmlStart =
WalkState->ParserState.AmlEnd =
- WalkState->ParserState.PkgEnd = AmlStart + AmlLength;
+ WalkState->ParserState.PkgEnd = AmlStart;
+ /* Avoid undefined behavior: applying zero offset to null pointer */
+ if (AmlLength != 0) {
+ WalkState->ParserState.AmlEnd += AmlLength;
+ WalkState->ParserState.PkgEnd += AmlLength;
+ }
/* The NextOp of the NextWalk will be the beginning of the method */
diff --git a/sys/contrib/dev/acpica/components/events/evevent.c b/sys/contrib/dev/acpica/components/events/evevent.c
index e230ceff01e1..da5e633e5909 100644
--- a/sys/contrib/dev/acpica/components/events/evevent.c
+++ b/sys/contrib/dev/acpica/components/events/evevent.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evglock.c b/sys/contrib/dev/acpica/components/events/evglock.c
index 99869b49ce6e..395ca14fb315 100644
--- a/sys/contrib/dev/acpica/components/events/evglock.c
+++ b/sys/contrib/dev/acpica/components/events/evglock.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -195,6 +195,11 @@ AcpiEvInitGlobalLockHandler (
return_ACPI_STATUS (AE_OK);
}
+ if (!AcpiGbl_UseGlobalLock)
+ {
+ return_ACPI_STATUS (AE_OK);
+ }
+
/* Attempt installation of the global lock handler */
Status = AcpiInstallFixedEventHandler (ACPI_EVENT_GLOBAL,
diff --git a/sys/contrib/dev/acpica/components/events/evgpe.c b/sys/contrib/dev/acpica/components/events/evgpe.c
index 90fa88c16b62..2ce159c46be2 100644
--- a/sys/contrib/dev/acpica/components/events/evgpe.c
+++ b/sys/contrib/dev/acpica/components/events/evgpe.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evgpeblk.c b/sys/contrib/dev/acpica/components/events/evgpeblk.c
index 0d93307871a7..d30f31c641a1 100644
--- a/sys/contrib/dev/acpica/components/events/evgpeblk.c
+++ b/sys/contrib/dev/acpica/components/events/evgpeblk.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evgpeinit.c b/sys/contrib/dev/acpica/components/events/evgpeinit.c
index 9e7ef53b65de..0ae8bb700369 100644
--- a/sys/contrib/dev/acpica/components/events/evgpeinit.c
+++ b/sys/contrib/dev/acpica/components/events/evgpeinit.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -564,6 +564,7 @@ AcpiEvMatchGpeMethod (
GpeEventInfo->Flags &= ~(ACPI_GPE_DISPATCH_MASK);
GpeEventInfo->Flags |= (UINT8) (Type | ACPI_GPE_DISPATCH_METHOD);
GpeEventInfo->Dispatch.MethodNode = MethodNode;
+ WalkInfo->Count++;
ACPI_DEBUG_PRINT ((ACPI_DB_LOAD,
"Registered GPE method %s as GPE number 0x%.2X\n",
diff --git a/sys/contrib/dev/acpica/components/events/evgpeutil.c b/sys/contrib/dev/acpica/components/events/evgpeutil.c
index e667cb03547d..0dc2fdf01b52 100644
--- a/sys/contrib/dev/acpica/components/events/evgpeutil.c
+++ b/sys/contrib/dev/acpica/components/events/evgpeutil.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evhandler.c b/sys/contrib/dev/acpica/components/events/evhandler.c
index 03cfcf81d65f..9c69d69b524a 100644
--- a/sys/contrib/dev/acpica/components/events/evhandler.c
+++ b/sys/contrib/dev/acpica/components/events/evhandler.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evmisc.c b/sys/contrib/dev/acpica/components/events/evmisc.c
index 399ff1b864b3..1b8688dd872d 100644
--- a/sys/contrib/dev/acpica/components/events/evmisc.c
+++ b/sys/contrib/dev/acpica/components/events/evmisc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evregion.c b/sys/contrib/dev/acpica/components/events/evregion.c
index 5ce29c95881a..385ac1845da1 100644
--- a/sys/contrib/dev/acpica/components/events/evregion.c
+++ b/sys/contrib/dev/acpica/components/events/evregion.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -329,6 +329,14 @@ AcpiEvAddressSpaceDispatch (
Ctx->SubspaceId = (UINT8) RegionObj->Region.Address;
}
+ if (RegionObj->Region.SpaceId == ACPI_ADR_SPACE_FIXED_HARDWARE)
+ {
+ ACPI_FFH_INFO *Ctx = HandlerDesc->AddressSpace.Context;
+
+ Ctx->Length = RegionObj->Region.Length;
+ Ctx->Offset = RegionObj->Region.Address;
+ }
+
/*
* We must exit the interpreter because the region setup will
* potentially execute control methods (for example, the _REG method
diff --git a/sys/contrib/dev/acpica/components/events/evrgnini.c b/sys/contrib/dev/acpica/components/events/evrgnini.c
index 4797fa1f45ba..1f16655195e1 100644
--- a/sys/contrib/dev/acpica/components/events/evrgnini.c
+++ b/sys/contrib/dev/acpica/components/events/evrgnini.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evsci.c b/sys/contrib/dev/acpica/components/events/evsci.c
index 4ea125b4f1d6..cd1dc4da6317 100644
--- a/sys/contrib/dev/acpica/components/events/evsci.c
+++ b/sys/contrib/dev/acpica/components/events/evsci.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evxface.c b/sys/contrib/dev/acpica/components/events/evxface.c
index 04c7ad85369e..54634c61e517 100644
--- a/sys/contrib/dev/acpica/components/events/evxface.c
+++ b/sys/contrib/dev/acpica/components/events/evxface.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evxfevnt.c b/sys/contrib/dev/acpica/components/events/evxfevnt.c
index eda4dee711ce..60837084e86f 100644
--- a/sys/contrib/dev/acpica/components/events/evxfevnt.c
+++ b/sys/contrib/dev/acpica/components/events/evxfevnt.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/events/evxfgpe.c b/sys/contrib/dev/acpica/components/events/evxfgpe.c
index fca21acacbcb..1ffcff259a2b 100644
--- a/sys/contrib/dev/acpica/components/events/evxfgpe.c
+++ b/sys/contrib/dev/acpica/components/events/evxfgpe.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -636,7 +636,7 @@ AcpiSetupGpeForWake (
* permanently enabled and clear its ACPI_GPE_AUTO_ENABLED flag.
*/
(void) AcpiEvRemoveGpeReference (GpeEventInfo);
- GpeEventInfo->Flags &= ~~ACPI_GPE_AUTO_ENABLED;
+ GpeEventInfo->Flags &= ~ACPI_GPE_AUTO_ENABLED;
}
/*
diff --git a/sys/contrib/dev/acpica/components/events/evxfregn.c b/sys/contrib/dev/acpica/components/events/evxfregn.c
index d2b84e1f1c5f..bbdf4352b415 100644
--- a/sys/contrib/dev/acpica/components/events/evxfregn.c
+++ b/sys/contrib/dev/acpica/components/events/evxfregn.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -163,13 +163,14 @@
/*******************************************************************************
*
- * FUNCTION: AcpiInstallAddressSpaceHandler
+ * FUNCTION: AcpiInstallAddressSpaceHandlerInternal
*
* PARAMETERS: Device - Handle for the device
* SpaceId - The address space ID
* Handler - Address of the handler
* Setup - Address of the setup function
* Context - Value passed to the handler on each access
+ * Run_Reg - Run _REG methods for this address space?
*
* RETURN: Status
*
@@ -180,16 +181,19 @@
* are executed here, and these methods can only be safely executed after
* the default handlers have been installed and the hardware has been
* initialized (via AcpiEnableSubsystem.)
+ * To avoid this problem pass FALSE for Run_Reg and later on call
+ * AcpiExecuteRegMethods() to execute _REG.
*
******************************************************************************/
-ACPI_STATUS
-AcpiInstallAddressSpaceHandler (
+static ACPI_STATUS
+AcpiInstallAddressSpaceHandlerInternal (
ACPI_HANDLE Device,
ACPI_ADR_SPACE_TYPE SpaceId,
ACPI_ADR_SPACE_HANDLER Handler,
ACPI_ADR_SPACE_SETUP Setup,
- void *Context)
+ void *Context,
+ BOOLEAN Run_Reg)
{
ACPI_NAMESPACE_NODE *Node;
ACPI_STATUS Status;
@@ -231,16 +235,42 @@ AcpiInstallAddressSpaceHandler (
/* Run all _REG methods for this address space */
- AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT);
-
+ if (Run_Reg)
+ {
+ AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT);
+ }
UnlockAndExit:
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
return_ACPI_STATUS (Status);
}
+ACPI_STATUS
+AcpiInstallAddressSpaceHandler (
+ ACPI_HANDLE Device,
+ ACPI_ADR_SPACE_TYPE SpaceId,
+ ACPI_ADR_SPACE_HANDLER Handler,
+ ACPI_ADR_SPACE_SETUP Setup,
+ void *Context)
+{
+ return AcpiInstallAddressSpaceHandlerInternal (Device, SpaceId, Handler, Setup, Context, TRUE);
+}
+
ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandler)
+ACPI_STATUS
+AcpiInstallAddressSpaceHandlerNo_Reg (
+ ACPI_HANDLE Device,
+ ACPI_ADR_SPACE_TYPE SpaceId,
+ ACPI_ADR_SPACE_HANDLER Handler,
+ ACPI_ADR_SPACE_SETUP Setup,
+ void *Context)
+{
+ return AcpiInstallAddressSpaceHandlerInternal (Device, SpaceId, Handler, Setup, Context, FALSE);
+}
+
+ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandlerNo_Reg)
+
/*******************************************************************************
*
@@ -362,7 +392,6 @@ AcpiRemoveAddressSpaceHandler (
/* Now we can delete the handler object */
- AcpiOsReleaseMutex (HandlerObj->AddressSpace.ContextMutex);
AcpiUtRemoveReference (HandlerObj);
goto UnlockAndExit;
}
@@ -387,3 +416,62 @@ UnlockAndExit:
}
ACPI_EXPORT_SYMBOL (AcpiRemoveAddressSpaceHandler)
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiExecuteRegMethods
+ *
+ * PARAMETERS: Device - Handle for the device
+ * SpaceId - The address space ID
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Execute _REG for all OpRegions of a given SpaceId.
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiExecuteRegMethods (
+ ACPI_HANDLE Device,
+ ACPI_ADR_SPACE_TYPE SpaceId)
+{
+ ACPI_NAMESPACE_NODE *Node;
+ ACPI_STATUS Status;
+
+
+ ACPI_FUNCTION_TRACE (AcpiExecuteRegMethods);
+
+
+ /* Parameter validation */
+
+ if (!Device)
+ {
+ return_ACPI_STATUS (AE_BAD_PARAMETER);
+ }
+
+ Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
+ if (ACPI_FAILURE (Status))
+ {
+ return_ACPI_STATUS (Status);
+ }
+
+ /* Convert and validate the device handle */
+
+ Node = AcpiNsValidateHandle (Device);
+ if (Node)
+ {
+ /* Run all _REG methods for this address space */
+
+ AcpiEvExecuteRegMethods (Node, SpaceId, ACPI_REG_CONNECT);
+ }
+ else
+ {
+ Status = AE_BAD_PARAMETER;
+ }
+
+ (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
+ return_ACPI_STATUS (Status);
+}
+
+ACPI_EXPORT_SYMBOL (AcpiExecuteRegMethods)
diff --git a/sys/contrib/dev/acpica/components/executer/exconcat.c b/sys/contrib/dev/acpica/components/executer/exconcat.c
index 6cd32ed38689..060dbf946d87 100644
--- a/sys/contrib/dev/acpica/components/executer/exconcat.c
+++ b/sys/contrib/dev/acpica/components/executer/exconcat.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exconfig.c b/sys/contrib/dev/acpica/components/executer/exconfig.c
index 9ace33cf3c17..6f3f8d24baca 100644
--- a/sys/contrib/dev/acpica/components/executer/exconfig.c
+++ b/sys/contrib/dev/acpica/components/executer/exconfig.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exconvrt.c b/sys/contrib/dev/acpica/components/executer/exconvrt.c
index 039c73d3a0fe..9c091864d7ef 100644
--- a/sys/contrib/dev/acpica/components/executer/exconvrt.c
+++ b/sys/contrib/dev/acpica/components/executer/exconvrt.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -165,7 +165,8 @@ AcpiExConvertToAscii (
UINT64 Integer,
UINT16 Base,
UINT8 *String,
- UINT8 MaxLength);
+ UINT8 MaxLength,
+ BOOLEAN LeadingZeros);
/*******************************************************************************
@@ -387,7 +388,7 @@ AcpiExConvertToBuffer (
/* Copy the string to the buffer */
NewBuf = ReturnDesc->Buffer.Pointer;
- strncpy ((char *) NewBuf, (char *) ObjDesc->String.Pointer,
+ memcpy ((char *) NewBuf, (char *) ObjDesc->String.Pointer,
ObjDesc->String.Length);
break;
@@ -412,6 +413,7 @@ AcpiExConvertToBuffer (
* Base - ACPI_STRING_DECIMAL or ACPI_STRING_HEX
* String - Where the string is returned
* DataWidth - Size of data item to be converted, in bytes
+ * LeadingZeros - Allow leading zeros
*
* RETURN: Actual string length
*
@@ -424,7 +426,8 @@ AcpiExConvertToAscii (
UINT64 Integer,
UINT16 Base,
UINT8 *String,
- UINT8 DataWidth)
+ UINT8 DataWidth,
+ BOOLEAN LeadingZeros)
{
UINT64 Digit;
UINT32 i;
@@ -433,7 +436,8 @@ AcpiExConvertToAscii (
UINT32 HexLength;
UINT32 DecimalLength;
UINT32 Remainder;
- BOOLEAN SupressZeros;
+ BOOLEAN SupressZeros = !LeadingZeros;
+ UINT8 HexChar;
ACPI_FUNCTION_ENTRY ();
@@ -464,7 +468,6 @@ AcpiExConvertToAscii (
break;
}
- SupressZeros = TRUE; /* No leading zeros */
Remainder = 0;
for (i = DecimalLength; i > 0; i--)
@@ -501,8 +504,18 @@ AcpiExConvertToAscii (
{
/* Get one hex digit, most significant digits first */
- String[k] = (UINT8)
+ HexChar = (UINT8)
AcpiUtHexToAsciiChar (Integer, ACPI_MUL_4 (j));
+
+ /* Supress leading zeros until the first non-zero character */
+
+ if (HexChar == ACPI_ASCII_ZERO && SupressZeros)
+ {
+ continue;
+ }
+
+ SupressZeros = FALSE;
+ String[k] = HexChar;
k++;
}
break;
@@ -556,6 +569,7 @@ AcpiExConvertToString (
UINT32 StringLength = 0;
UINT16 Base = 16;
UINT8 Separator = ',';
+ BOOLEAN LeadingZeros;
ACPI_FUNCTION_TRACE_PTR (ExConvertToString, ObjDesc);
@@ -581,14 +595,25 @@ AcpiExConvertToString (
* Make room for the maximum decimal number size
*/
StringLength = ACPI_MAX_DECIMAL_DIGITS;
+ LeadingZeros = FALSE;
Base = 10;
break;
+ case ACPI_EXPLICIT_CONVERT_HEX:
+ /*
+ * From ToHexString.
+ *
+ * Supress leading zeros and append "0x"
+ */
+ StringLength = ACPI_MUL_2 (AcpiGbl_IntegerByteWidth) + 2;
+ LeadingZeros = FALSE;
+ break;
default:
/* Two hex string characters for each integer byte */
StringLength = ACPI_MUL_2 (AcpiGbl_IntegerByteWidth);
+ LeadingZeros = TRUE;
break;
}
@@ -603,15 +628,29 @@ AcpiExConvertToString (
}
NewBuf = ReturnDesc->Buffer.Pointer;
+ if (Type == ACPI_EXPLICIT_CONVERT_HEX)
+ {
+ /* Append "0x" prefix for explicit hex conversion */
+
+ *NewBuf++ = '0';
+ *NewBuf++ = 'x';
+ }
/* Convert integer to string */
StringLength = AcpiExConvertToAscii (
- ObjDesc->Integer.Value, Base, NewBuf, AcpiGbl_IntegerByteWidth);
+ ObjDesc->Integer.Value, Base, NewBuf, AcpiGbl_IntegerByteWidth, LeadingZeros);
/* Null terminate at the correct place */
ReturnDesc->String.Length = StringLength;
+ if (Type == ACPI_EXPLICIT_CONVERT_HEX)
+ {
+ /* Take "0x" prefix into account */
+
+ ReturnDesc->String.Length += 2;
+ }
+
NewBuf [StringLength] = 0;
break;
@@ -628,6 +667,7 @@ AcpiExConvertToString (
* From ACPI: "If the input is a buffer, it is converted to a
* a string of decimal values separated by commas."
*/
+ LeadingZeros = FALSE;
Base = 10;
/*
@@ -661,6 +701,7 @@ AcpiExConvertToString (
*
* Each hex number is prefixed with 0x (11/2018)
*/
+ LeadingZeros = TRUE;
Separator = ' ';
StringLength = (ObjDesc->Buffer.Length * 5);
break;
@@ -674,6 +715,7 @@ AcpiExConvertToString (
*
* Each hex number is prefixed with 0x (11/2018)
*/
+ LeadingZeros = TRUE;
Separator = ',';
StringLength = (ObjDesc->Buffer.Length * 5);
break;
@@ -715,7 +757,7 @@ AcpiExConvertToString (
}
NewBuf += AcpiExConvertToAscii (
- (UINT64) ObjDesc->Buffer.Pointer[i], Base, NewBuf, 1);
+ (UINT64) ObjDesc->Buffer.Pointer[i], Base, NewBuf, 1, LeadingZeros);
/* Each digit is separated by either a comma or space */
diff --git a/sys/contrib/dev/acpica/components/executer/excreate.c b/sys/contrib/dev/acpica/components/executer/excreate.c
index d78d4ef00014..75f1d631d110 100644
--- a/sys/contrib/dev/acpica/components/executer/excreate.c
+++ b/sys/contrib/dev/acpica/components/executer/excreate.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exdebug.c b/sys/contrib/dev/acpica/components/executer/exdebug.c
index b4bd44d7b1ee..6a927eb26393 100644
--- a/sys/contrib/dev/acpica/components/executer/exdebug.c
+++ b/sys/contrib/dev/acpica/components/executer/exdebug.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exdump.c b/sys/contrib/dev/acpica/components/executer/exdump.c
index 2135e66fd16d..581d183d919f 100644
--- a/sys/contrib/dev/acpica/components/executer/exdump.c
+++ b/sys/contrib/dev/acpica/components/executer/exdump.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exfield.c b/sys/contrib/dev/acpica/components/executer/exfield.c
index 6ed3d40b6035..6c27e7dfcb36 100644
--- a/sys/contrib/dev/acpica/components/executer/exfield.c
+++ b/sys/contrib/dev/acpica/components/executer/exfield.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -296,7 +296,8 @@ AcpiExReadDataFromField (
(ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS ||
ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI ||
- ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT))
+ ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT ||
+ ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_FIXED_HARDWARE))
{
/* SMBus, GSBus, IPMI serial */
@@ -469,7 +470,8 @@ AcpiExWriteDataToField (
(ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS ||
ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS ||
ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI ||
- ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT))
+ ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_RT ||
+ ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_FIXED_HARDWARE))
{
/* SMBus, GSBus, IPMI serial */
diff --git a/sys/contrib/dev/acpica/components/executer/exfldio.c b/sys/contrib/dev/acpica/components/executer/exfldio.c
index faee3bce1e6b..b3d1d73c0960 100644
--- a/sys/contrib/dev/acpica/components/executer/exfldio.c
+++ b/sys/contrib/dev/acpica/components/executer/exfldio.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exmisc.c b/sys/contrib/dev/acpica/components/executer/exmisc.c
index e112af6e2f68..9b9b6b3005c2 100644
--- a/sys/contrib/dev/acpica/components/executer/exmisc.c
+++ b/sys/contrib/dev/acpica/components/executer/exmisc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exmutex.c b/sys/contrib/dev/acpica/components/executer/exmutex.c
index 27474c0e4707..fe1220d6abfb 100644
--- a/sys/contrib/dev/acpica/components/executer/exmutex.c
+++ b/sys/contrib/dev/acpica/components/executer/exmutex.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exnames.c b/sys/contrib/dev/acpica/components/executer/exnames.c
index ab4908a5410e..105103f81f11 100644
--- a/sys/contrib/dev/acpica/components/executer/exnames.c
+++ b/sys/contrib/dev/acpica/components/executer/exnames.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exoparg1.c b/sys/contrib/dev/acpica/components/executer/exoparg1.c
index 0d794cc697fa..13af957693b4 100644
--- a/sys/contrib/dev/acpica/components/executer/exoparg1.c
+++ b/sys/contrib/dev/acpica/components/executer/exoparg1.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exoparg2.c b/sys/contrib/dev/acpica/components/executer/exoparg2.c
index d9edd41a4c89..4bc3cf79e1eb 100644
--- a/sys/contrib/dev/acpica/components/executer/exoparg2.c
+++ b/sys/contrib/dev/acpica/components/executer/exoparg2.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exoparg3.c b/sys/contrib/dev/acpica/components/executer/exoparg3.c
index f1c9b107fab1..7c17e2868132 100644
--- a/sys/contrib/dev/acpica/components/executer/exoparg3.c
+++ b/sys/contrib/dev/acpica/components/executer/exoparg3.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exoparg6.c b/sys/contrib/dev/acpica/components/executer/exoparg6.c
index 0a182f4ce0e4..a9092ba2e4e2 100644
--- a/sys/contrib/dev/acpica/components/executer/exoparg6.c
+++ b/sys/contrib/dev/acpica/components/executer/exoparg6.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exprep.c b/sys/contrib/dev/acpica/components/executer/exprep.c
index 8caee66f6e05..dc04b77b7ea5 100644
--- a/sys/contrib/dev/acpica/components/executer/exprep.c
+++ b/sys/contrib/dev/acpica/components/executer/exprep.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -611,6 +611,10 @@ AcpiExPrepFieldValue (
if (Info->ConnectionNode)
{
SecondDesc = Info->ConnectionNode->Object;
+ if (SecondDesc == NULL)
+ {
+ break;
+ }
if (!(SecondDesc->Common.Flags & AOPOBJ_DATA_VALID))
{
Status = AcpiDsGetBufferArguments (SecondDesc);
diff --git a/sys/contrib/dev/acpica/components/executer/exregion.c b/sys/contrib/dev/acpica/components/executer/exregion.c
index c657659f8e44..4e9f535ef9ac 100644
--- a/sys/contrib/dev/acpica/components/executer/exregion.c
+++ b/sys/contrib/dev/acpica/components/executer/exregion.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -191,7 +191,6 @@ AcpiExSystemMemorySpaceHandler (
ACPI_MEM_MAPPING *Mm = MemInfo->CurMm;
UINT32 Length;
ACPI_SIZE MapLength;
- ACPI_SIZE PageBoundaryMapLength;
#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
UINT32 Remainder;
#endif
@@ -298,27 +297,9 @@ AcpiExSystemMemorySpaceHandler (
MapLength = (ACPI_SIZE)
((MemInfo->Address + MemInfo->Length) - Address);
- /*
- * If mapping the entire remaining portion of the region will cross
- * a page boundary, just map up to the page boundary, do not cross.
- * On some systems, crossing a page boundary while mapping regions
- * can cause warnings if the pages have different attributes
- * due to resource management.
- *
- * This has the added benefit of constraining a single mapping to
- * one page, which is similar to the original code that used a 4k
- * maximum window.
- */
- PageBoundaryMapLength = (ACPI_SIZE)
- (ACPI_ROUND_UP (Address, ACPI_DEFAULT_PAGE_SIZE) - Address);
- if (PageBoundaryMapLength == 0)
- {
- PageBoundaryMapLength = ACPI_DEFAULT_PAGE_SIZE;
- }
-
- if (MapLength > PageBoundaryMapLength)
+ if (MapLength > ACPI_DEFAULT_PAGE_SIZE)
{
- MapLength = PageBoundaryMapLength;
+ MapLength = ACPI_DEFAULT_PAGE_SIZE;
}
/* Create a new mapping starting at the address given */
diff --git a/sys/contrib/dev/acpica/components/executer/exresnte.c b/sys/contrib/dev/acpica/components/executer/exresnte.c
index b2731527dfbe..0c66f0b4d4f8 100644
--- a/sys/contrib/dev/acpica/components/executer/exresnte.c
+++ b/sys/contrib/dev/acpica/components/executer/exresnte.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exresolv.c b/sys/contrib/dev/acpica/components/executer/exresolv.c
index 7c7a7e6787c5..81d934418983 100644
--- a/sys/contrib/dev/acpica/components/executer/exresolv.c
+++ b/sys/contrib/dev/acpica/components/executer/exresolv.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exresop.c b/sys/contrib/dev/acpica/components/executer/exresop.c
index f50e33a0b202..0a89bc78d3e3 100644
--- a/sys/contrib/dev/acpica/components/executer/exresop.c
+++ b/sys/contrib/dev/acpica/components/executer/exresop.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exserial.c b/sys/contrib/dev/acpica/components/executer/exserial.c
index fd6dea206450..6d17c29569e0 100644
--- a/sys/contrib/dev/acpica/components/executer/exserial.c
+++ b/sys/contrib/dev/acpica/components/executer/exserial.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -359,6 +359,12 @@ AcpiExReadSerialBus (
Function = ACPI_READ;
break;
+ case ACPI_ADR_SPACE_FIXED_HARDWARE:
+
+ BufferLength = ACPI_FFH_INPUT_BUFFER_SIZE;
+ Function = ACPI_READ;
+ break;
+
default:
return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID);
}
@@ -484,6 +490,12 @@ AcpiExWriteSerialBus (
Function = ACPI_WRITE;
break;
+ case ACPI_ADR_SPACE_FIXED_HARDWARE:
+
+ BufferLength = ACPI_FFH_INPUT_BUFFER_SIZE;
+ Function = ACPI_WRITE;
+ break;
+
default:
return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID);
}
@@ -499,8 +511,7 @@ AcpiExWriteSerialBus (
/* Copy the input buffer data to the transfer buffer */
Buffer = BufferDesc->Buffer.Pointer;
- DataLength = (BufferLength < SourceDesc->Buffer.Length ?
- BufferLength : SourceDesc->Buffer.Length);
+ DataLength = ACPI_MIN (BufferLength, SourceDesc->Buffer.Length);
memcpy (Buffer, SourceDesc->Buffer.Pointer, DataLength);
/* Lock entire transaction if requested */
diff --git a/sys/contrib/dev/acpica/components/executer/exstore.c b/sys/contrib/dev/acpica/components/executer/exstore.c
index 1052b3cc2c53..ebe767abd637 100644
--- a/sys/contrib/dev/acpica/components/executer/exstore.c
+++ b/sys/contrib/dev/acpica/components/executer/exstore.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exstoren.c b/sys/contrib/dev/acpica/components/executer/exstoren.c
index 3bbf620004af..ed9fa9a7f13b 100644
--- a/sys/contrib/dev/acpica/components/executer/exstoren.c
+++ b/sys/contrib/dev/acpica/components/executer/exstoren.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exstorob.c b/sys/contrib/dev/acpica/components/executer/exstorob.c
index 25a887ff60aa..e9ddabd6c25a 100644
--- a/sys/contrib/dev/acpica/components/executer/exstorob.c
+++ b/sys/contrib/dev/acpica/components/executer/exstorob.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/executer/exsystem.c b/sys/contrib/dev/acpica/components/executer/exsystem.c
index 0a48eeb174c8..f91d8d04b3ba 100644
--- a/sys/contrib/dev/acpica/components/executer/exsystem.c
+++ b/sys/contrib/dev/acpica/components/executer/exsystem.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -296,17 +296,17 @@ AcpiExSystemDoStall (
* (ACPI specifies 100 usec as max, but this gives some slack in
* order to support existing BIOSs)
*/
- ACPI_ERROR ((AE_INFO,
+ ACPI_ERROR_ONCE ((AE_INFO,
"Time parameter is too large (%u)", HowLongUs));
Status = AE_AML_OPERAND_VALUE;
}
else
{
if (HowLongUs > 100)
- {
- ACPI_WARNING ((AE_INFO,
+ {
+ ACPI_WARNING_ONCE ((AE_INFO,
"Time parameter %u us > 100 us violating ACPI spec, please fix the firmware.", HowLongUs));
- }
+ }
AcpiOsStall (HowLongUs);
}
diff --git a/sys/contrib/dev/acpica/components/executer/extrace.c b/sys/contrib/dev/acpica/components/executer/extrace.c
index 2184b5513b46..b48a5fcb289b 100644
--- a/sys/contrib/dev/acpica/components/executer/extrace.c
+++ b/sys/contrib/dev/acpica/components/executer/extrace.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -269,6 +269,68 @@ AcpiExGetTraceEventName (
#endif
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiExTraceArgs
+ *
+ * PARAMETERS: Params - AML method arguments
+ * Count - numer of method arguments
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Trace any arguments
+ *
+ ******************************************************************************/
+
+void
+AcpiExTraceArgs(ACPI_OPERAND_OBJECT **Params, UINT32 Count)
+{
+ UINT32 i;
+
+ ACPI_FUNCTION_NAME(ExTraceArgs);
+
+ for (i = 0; i < Count; i++)
+ {
+ ACPI_OPERAND_OBJECT *obj_desc = Params[i];
+
+ if (!i)
+ {
+ ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT, " "));
+ }
+
+ switch (obj_desc->Common.Type)
+ {
+ case ACPI_TYPE_INTEGER:
+ ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "%jx", (uintmax_t)obj_desc->Integer.Value));
+ break;
+
+ case ACPI_TYPE_STRING:
+ if (!obj_desc->String.Length)
+ {
+ ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "NULL"));
+ break;
+ }
+ if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_TRACE_POINT, _COMPONENT))
+ {
+ AcpiUtPrintString(obj_desc->String.Pointer, ACPI_UINT8_MAX);
+ }
+ break;
+
+ default:
+ ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "Unknown"));
+ break;
+ }
+
+ if ((i + 1) == Count)
+ {
+ ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "\n"));
+ }
+ else
+ {
+ ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, ", "));
+ }
+ }
+}
/*******************************************************************************
*
@@ -299,9 +361,9 @@ AcpiExTracePoint (
if (Pathname)
{
ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT,
- "%s %s [0x%p:%s] execution.\n",
+ "%s %s [%s] execution.\n",
AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End",
- Aml, Pathname));
+ Pathname));
}
else
{
diff --git a/sys/contrib/dev/acpica/components/executer/exutils.c b/sys/contrib/dev/acpica/components/executer/exutils.c
index 425cf6b0010a..995edbc5990e 100644
--- a/sys/contrib/dev/acpica/components/executer/exutils.c
+++ b/sys/contrib/dev/acpica/components/executer/exutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwacpi.c b/sys/contrib/dev/acpica/components/hardware/hwacpi.c
index 1cdab7cda39f..74cfecfcc2a2 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwacpi.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwacpi.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwesleep.c b/sys/contrib/dev/acpica/components/hardware/hwesleep.c
index 799a14e29150..329d8a20b4b7 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwesleep.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwesleep.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwgpe.c b/sys/contrib/dev/acpica/components/hardware/hwgpe.c
index 6c371b4575de..681ca9a1b9de 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwgpe.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwgpe.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwpci.c b/sys/contrib/dev/acpica/components/hardware/hwpci.c
index 0d7585d2d04f..a9fc5cba2fff 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwpci.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwpci.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwregs.c b/sys/contrib/dev/acpica/components/hardware/hwregs.c
index 1dfce0c9e04a..d0f47b874ead 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwregs.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwregs.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwsleep.c b/sys/contrib/dev/acpica/components/hardware/hwsleep.c
index 3ca352cd5d26..210f4ea62dee 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwsleep.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwsleep.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwtimer.c b/sys/contrib/dev/acpica/components/hardware/hwtimer.c
index 17dbbe84ecf4..9a9602e04232 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwtimer.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwtimer.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwvalid.c b/sys/contrib/dev/acpica/components/hardware/hwvalid.c
index b4f90ba3df3a..5c4df25d2c38 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwvalid.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwvalid.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -169,8 +169,8 @@ AcpiHwValidateIoRequest (
*
* The table is used to implement the Microsoft port access rules that
* first appeared in Windows XP. Some ports are always illegal, and some
- * ports are only illegal if the BIOS calls _OSI with a WinXP string or
- * later (meaning that the BIOS itelf is post-XP.)
+ * ports are only illegal if the BIOS calls _OSI with nothing newer than
+ * the specific _OSI strings.
*
* This provides ACPICA with the desired port protections and
* Microsoft compatibility.
@@ -301,8 +301,8 @@ AcpiHwValidateIoRequest (
if ((Address <= PortInfo->End) && (LastAddress >= PortInfo->Start))
{
/* Port illegality may depend on the _OSI calls made by the BIOS */
-
- if (AcpiGbl_OsiData >= PortInfo->OsiDependency)
+ if (PortInfo->OsiDependency == ACPI_ALWAYS_ILLEGAL ||
+ AcpiGbl_OsiData == PortInfo->OsiDependency)
{
ACPI_DEBUG_PRINT ((ACPI_DB_VALUES,
"Denied AML access to port 0x%8.8X%8.8X/%X (%s 0x%.4X-0x%.4X)\n",
diff --git a/sys/contrib/dev/acpica/components/hardware/hwxface.c b/sys/contrib/dev/acpica/components/hardware/hwxface.c
index 2001b6c33fbb..5f645617cbce 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwxface.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwxface.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/hardware/hwxfsleep.c b/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
index 2ed5a3a89c7d..1d79e908cf08 100644
--- a/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
+++ b/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -159,13 +159,11 @@
/* Local prototypes */
-#if (!ACPI_REDUCED_HARDWARE)
static ACPI_STATUS
AcpiHwSetFirmwareWakingVector (
ACPI_TABLE_FACS *Facs,
ACPI_PHYSICAL_ADDRESS PhysicalAddress,
ACPI_PHYSICAL_ADDRESS PhysicalAddress64);
-#endif
static ACPI_STATUS
AcpiHwSleepDispatch (
@@ -199,13 +197,6 @@ static ACPI_SLEEP_FUNCTIONS AcpiSleepDispatch[] =
};
-/*
- * These functions are removed for the ACPI_REDUCED_HARDWARE case:
- * AcpiSetFirmwareWakingVector
- * AcpiEnterSleepStateS4bios
- */
-
-#if (!ACPI_REDUCED_HARDWARE)
/*******************************************************************************
*
* FUNCTION: AcpiHwSetFirmwareWakingVector
@@ -298,6 +289,12 @@ AcpiSetFirmwareWakingVector (
ACPI_EXPORT_SYMBOL (AcpiSetFirmwareWakingVector)
+/*
+ * These functions are removed for the ACPI_REDUCED_HARDWARE case:
+ * AcpiEnterSleepStateS4bios
+ */
+
+#if (!ACPI_REDUCED_HARDWARE)
/*******************************************************************************
*
* FUNCTION: AcpiEnterSleepStateS4bios
diff --git a/sys/contrib/dev/acpica/components/namespace/nsaccess.c b/sys/contrib/dev/acpica/components/namespace/nsaccess.c
index 4a00dd702db5..35d30ded0a60 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsaccess.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsaccess.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -449,7 +449,9 @@ AcpiNsLookup (
ACPI_NAMESPACE_NODE *CurrentNode = NULL;
ACPI_NAMESPACE_NODE *ThisNode = NULL;
UINT32 NumSegments;
+#ifdef ACPI_DEBUG_OUTPUT
UINT32 NumCarats;
+#endif
ACPI_NAME SimpleName;
ACPI_OBJECT_TYPE TypeToCheckFor;
ACPI_OBJECT_TYPE ThisSearchType;
@@ -573,7 +575,9 @@ AcpiNsLookup (
* the parent node for each prefix instance.
*/
ThisNode = PrefixNode;
+#ifdef ACPI_DEBUG_OUTPUT
NumCarats = 0;
+#endif
while (*Path == (UINT8) AML_PARENT_PREFIX)
{
/* Name is fully qualified, no search rules apply */
@@ -588,7 +592,9 @@ AcpiNsLookup (
/* Backup to the parent node */
+#ifdef ACPI_DEBUG_OUTPUT
NumCarats++;
+#endif
ThisNode = ThisNode->Parent;
if (!ThisNode)
{
@@ -611,12 +617,14 @@ AcpiNsLookup (
}
}
+#ifdef ACPI_DEBUG_OUTPUT
if (SearchParentFlag == ACPI_NS_NO_UPSEARCH)
{
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
"Search scope is [%4.4s], path has %u carat(s)\n",
AcpiUtGetNodeName (ThisNode), NumCarats));
}
+#endif
}
/*
diff --git a/sys/contrib/dev/acpica/components/namespace/nsalloc.c b/sys/contrib/dev/acpica/components/namespace/nsalloc.c
index a53c09fa3dc1..69d1d7fa053a 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsalloc.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsalloc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsarguments.c b/sys/contrib/dev/acpica/components/namespace/nsarguments.c
index afa888e0c160..8916484053b9 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsarguments.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsarguments.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsconvert.c b/sys/contrib/dev/acpica/components/namespace/nsconvert.c
index 047146589a06..ad4890b591a3 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsconvert.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsconvert.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsdump.c b/sys/contrib/dev/acpica/components/namespace/nsdump.c
index 01480aac78a7..bf4aa1455075 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsdump.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsdump.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsdumpdv.c b/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c
index a0a5af3686e7..dc370a6e3018 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nseval.c b/sys/contrib/dev/acpica/components/namespace/nseval.c
index ef642ebadfeb..765b270ad2a1 100644
--- a/sys/contrib/dev/acpica/components/namespace/nseval.c
+++ b/sys/contrib/dev/acpica/components/namespace/nseval.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsinit.c b/sys/contrib/dev/acpica/components/namespace/nsinit.c
index abfa6bc003af..ed37aee82502 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsinit.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsinit.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsload.c b/sys/contrib/dev/acpica/components/namespace/nsload.c
index 1c92f3addd4a..bbd36a8a29a3 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsload.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsload.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsnames.c b/sys/contrib/dev/acpica/components/namespace/nsnames.c
index 578efeb93ab4..a5aa1139792d 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsnames.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsnames.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -368,7 +368,7 @@ AcpiNsBuildNormalizedPath (
BOOLEAN NoTrailing)
{
UINT32 Length = 0, i;
- char Name[ACPI_NAMESEG_SIZE];
+ char Name[ACPI_NAMESEG_SIZE] ACPI_NONSTRING;
BOOLEAN DoNoTrailing;
char c, *Left, *Right;
ACPI_NAMESPACE_NODE *NextNode;
diff --git a/sys/contrib/dev/acpica/components/namespace/nsobject.c b/sys/contrib/dev/acpica/components/namespace/nsobject.c
index 5713922d5d7e..fd6f0a524699 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsobject.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsobject.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsparse.c b/sys/contrib/dev/acpica/components/namespace/nsparse.c
index 098a59e8e35a..c5d35bac831c 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsparse.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsparse.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nspredef.c b/sys/contrib/dev/acpica/components/namespace/nspredef.c
index 386f6835859b..5bb5d5bf67ca 100644
--- a/sys/contrib/dev/acpica/components/namespace/nspredef.c
+++ b/sys/contrib/dev/acpica/components/namespace/nspredef.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsprepkg.c b/sys/contrib/dev/acpica/components/namespace/nsprepkg.c
index 3405e160328c..6fced55328bf 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsprepkg.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsprepkg.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsrepair.c b/sys/contrib/dev/acpica/components/namespace/nsrepair.c
index fe722a0cb79e..8d0e86932e1d 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsrepair.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsrepair.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -328,9 +328,10 @@ AcpiNsSimpleRepair (
*/
if (!ReturnObject)
{
- if (ExpectedBtypes && (!(ExpectedBtypes & ACPI_RTYPE_NONE)))
+ if (ExpectedBtypes)
{
- if (PackageIndex != ACPI_NOT_PACKAGE_ELEMENT)
+ if (!(ExpectedBtypes & ACPI_RTYPE_NONE) &&
+ PackageIndex != ACPI_NOT_PACKAGE_ELEMENT)
{
ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname,
ACPI_WARN_ALWAYS, "Found unexpected NULL package element"));
@@ -342,13 +343,14 @@ AcpiNsSimpleRepair (
return (AE_OK); /* Repair was successful */
}
}
- else
+
+ if (ExpectedBtypes != ACPI_RTYPE_NONE)
{
ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname,
- ACPI_WARN_ALWAYS, "Missing expected return value"));
+ ACPI_WARN_ALWAYS,
+ "Missing expected return value"));
+ return (AE_AML_NO_RETURN_VALUE);
}
-
- return (AE_AML_NO_RETURN_VALUE);
}
}
diff --git a/sys/contrib/dev/acpica/components/namespace/nsrepair2.c b/sys/contrib/dev/acpica/components/namespace/nsrepair2.c
index 62df8b00da2c..0dddebda980b 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsrepair2.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsrepair2.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -169,7 +169,7 @@ ACPI_STATUS (*ACPI_REPAIR_FUNCTION) (
typedef struct acpi_repair_info
{
- char Name[ACPI_NAMESEG_SIZE];
+ char Name[ACPI_NAMESEG_SIZE] ACPI_NONSTRING;
ACPI_REPAIR_FUNCTION RepairFunction;
} ACPI_REPAIR_INFO;
@@ -565,13 +565,6 @@ AcpiNsRepair_CID (
(*ElementPtr)->Common.ReferenceCount =
OriginalRefCount;
-
- /*
- * The OriginalElement holds a reference from the package object
- * that represents _HID. Since a new element was created by _HID,
- * remove the reference from the _CID package.
- */
- AcpiUtRemoveReference (OriginalElement);
}
ElementPtr++;
@@ -702,7 +695,7 @@ AcpiNsRepair_HID (
char *Dest;
- ACPI_FUNCTION_NAME (NsRepair_HID);
+ ACPI_FUNCTION_TRACE (NsRepair_HID);
/* We only care about string _HID objects (not integers) */
diff --git a/sys/contrib/dev/acpica/components/namespace/nssearch.c b/sys/contrib/dev/acpica/components/namespace/nssearch.c
index 8b953c033fe6..d956358e8e35 100644
--- a/sys/contrib/dev/acpica/components/namespace/nssearch.c
+++ b/sys/contrib/dev/acpica/components/namespace/nssearch.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsutils.c b/sys/contrib/dev/acpica/components/namespace/nsutils.c
index 67f2a512fcdd..bf400ed2370d 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsutils.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsutils.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -500,7 +500,7 @@ AcpiNsBuildInternalName (
*
* PARAMETERS: *ExternalName - External representation of name
* **Converted Name - Where to return the resulting
- * internal represention of the name
+ * internal representation of the name
*
* RETURN: Status
*
diff --git a/sys/contrib/dev/acpica/components/namespace/nswalk.c b/sys/contrib/dev/acpica/components/namespace/nswalk.c
index f458a8693b07..f3c37d7ac231 100644
--- a/sys/contrib/dev/acpica/components/namespace/nswalk.c
+++ b/sys/contrib/dev/acpica/components/namespace/nswalk.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsxfeval.c b/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
index 6c6b567c5886..f6a1ead7ddd5 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/namespace/nsxfname.c b/sys/contrib/dev/acpica/components/namespace/nsxfname.c
index 4dfef3e5f429..706bb36a4f84 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsxfname.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsxfname.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -192,7 +192,7 @@ AcpiNsCopyDeviceId (
ACPI_STATUS
AcpiGetHandle (
ACPI_HANDLE Parent,
- ACPI_STRING Pathname,
+ const char *Pathname,
ACPI_HANDLE *RetHandle)
{
ACPI_STATUS Status;
diff --git a/sys/contrib/dev/acpica/components/namespace/nsxfobj.c b/sys/contrib/dev/acpica/components/namespace/nsxfobj.c
index a01d7a7acac4..ea0654285a90 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsxfobj.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsxfobj.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/parser/psargs.c b/sys/contrib/dev/acpica/components/parser/psargs.c
index 8606fbdd9cf0..d9110c09fcb5 100644
--- a/sys/contrib/dev/acpica/components/parser/psargs.c
+++ b/sys/contrib/dev/acpica/components/parser/psargs.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -170,6 +170,10 @@ static ACPI_PARSE_OBJECT *
AcpiPsGetNextField (
ACPI_PARSE_STATE *ParserState);
+static void
+AcpiPsFreeFieldList (
+ ACPI_PARSE_OBJECT *Start);
+
/*******************************************************************************
*
@@ -872,6 +876,43 @@ AcpiPsGetNextField (
return_PTR (Field);
}
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiPsFreeFieldList
+ *
+ * PARAMETERS: Start - First Op in field list
+ *
+ * RETURN: None.
+ *
+ * DESCRIPTION: Free all Op objects inside a field list.
+ *
+ ******************************************************************************/
+
+static void
+AcpiPsFreeFieldList (
+ ACPI_PARSE_OBJECT *Start)
+{
+ ACPI_PARSE_OBJECT *Current = Start;
+ ACPI_PARSE_OBJECT *Next;
+ ACPI_PARSE_OBJECT *Arg;
+
+ while (Current)
+ {
+ Next = Current->Common.Next;
+
+ /* AML_INT_CONNECTION_OP can have a single argument */
+
+ Arg = AcpiPsGetArg (Current, 0);
+ if (Arg)
+ {
+ AcpiPsFreeOp (Arg);
+ }
+
+ AcpiPsFreeOp(Current);
+ Current = Next;
+ }
+}
+
/*******************************************************************************
*
@@ -948,6 +989,11 @@ AcpiPsGetNextArg (
Field = AcpiPsGetNextField (ParserState);
if (!Field)
{
+ if (Arg)
+ {
+ AcpiPsFreeFieldList(Arg);
+ }
+
return_ACPI_STATUS (AE_NO_MEMORY);
}
@@ -1016,6 +1062,11 @@ AcpiPsGetNextArg (
Status = AcpiPsGetNextNamepath (WalkState, ParserState,
Arg, ACPI_NOT_METHOD_CALL);
+ if (ACPI_FAILURE(Status))
+ {
+ AcpiPsFreeOp (Arg);
+ return_ACPI_STATUS (Status);
+ }
}
else
{
@@ -1048,6 +1099,11 @@ AcpiPsGetNextArg (
Status = AcpiPsGetNextNamepath (WalkState, ParserState,
Arg, ACPI_POSSIBLE_METHOD_CALL);
+ if (ACPI_FAILURE(Status))
+ {
+ AcpiPsFreeOp (Arg);
+ return_ACPI_STATUS (Status);
+ }
if (Arg->Common.AmlOpcode == AML_INT_METHODCALL_OP)
{
diff --git a/sys/contrib/dev/acpica/components/parser/psloop.c b/sys/contrib/dev/acpica/components/parser/psloop.c
index 15d90553b324..f4cac83e6069 100644
--- a/sys/contrib/dev/acpica/components/parser/psloop.c
+++ b/sys/contrib/dev/acpica/components/parser/psloop.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/parser/psobject.c b/sys/contrib/dev/acpica/components/parser/psobject.c
index 73fd060e0c6f..5457d9d0be7d 100644
--- a/sys/contrib/dev/acpica/components/parser/psobject.c
+++ b/sys/contrib/dev/acpica/components/parser/psobject.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -815,7 +815,8 @@ AcpiPsCompleteFinalOp (
ACPI_PARSE_OBJECT *Op,
ACPI_STATUS Status)
{
- ACPI_STATUS Status2;
+ ACPI_STATUS ReturnStatus = Status;
+ BOOLEAN Ascending = TRUE;
ACPI_FUNCTION_TRACE_PTR (PsCompleteFinalOp, WalkState);
@@ -832,7 +833,7 @@ AcpiPsCompleteFinalOp (
{
if (Op)
{
- if (WalkState->AscendingCallback != NULL)
+ if (Ascending && WalkState->AscendingCallback != NULL)
{
WalkState->Op = Op;
WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
@@ -851,41 +852,28 @@ AcpiPsCompleteFinalOp (
if (Status == AE_CTRL_TERMINATE)
{
- Status = AE_OK;
-
- /* Clean up */
- do
- {
- if (Op)
- {
- Status2 = AcpiPsCompleteThisOp (WalkState, Op);
- if (ACPI_FAILURE (Status2))
- {
- return_ACPI_STATUS (Status2);
- }
- }
-
- AcpiPsPopScope (&(WalkState->ParserState), &Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
-
- } while (Op);
-
- return_ACPI_STATUS (Status);
+ Ascending = FALSE;
+ ReturnStatus = AE_CTRL_TERMINATE;
}
else if (ACPI_FAILURE (Status))
{
/* First error is most important */
- (void) AcpiPsCompleteThisOp (WalkState, Op);
- return_ACPI_STATUS (Status);
+ Ascending = FALSE;
+ ReturnStatus = Status;
}
}
- Status2 = AcpiPsCompleteThisOp (WalkState, Op);
- if (ACPI_FAILURE (Status2))
+ Status = AcpiPsCompleteThisOp (WalkState, Op);
+ if (ACPI_FAILURE (Status))
{
- return_ACPI_STATUS (Status2);
+ Ascending = FALSE;
+ if (ACPI_SUCCESS (ReturnStatus) ||
+ ReturnStatus == AE_CTRL_TERMINATE)
+ {
+ ReturnStatus = Status;
+ }
}
}
@@ -894,5 +882,5 @@ AcpiPsCompleteFinalOp (
} while (Op);
- return_ACPI_STATUS (Status);
+ return_ACPI_STATUS (ReturnStatus);
}
diff --git a/sys/contrib/dev/acpica/components/parser/psopcode.c b/sys/contrib/dev/acpica/components/parser/psopcode.c
index 4616e28f0f91..a317fab3005e 100644
--- a/sys/contrib/dev/acpica/components/parser/psopcode.c
+++ b/sys/contrib/dev/acpica/components/parser/psopcode.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -436,7 +436,7 @@ const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] =
/* ACPI 3.0 opcodes */
-/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R),
+/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R | AML_NO_OPERAND_RESOLVE),
/* ACPI 5.0 opcodes */
diff --git a/sys/contrib/dev/acpica/components/parser/psopinfo.c b/sys/contrib/dev/acpica/components/parser/psopinfo.c
index 10a91a9154aa..1db32f4e8246 100644
--- a/sys/contrib/dev/acpica/components/parser/psopinfo.c
+++ b/sys/contrib/dev/acpica/components/parser/psopinfo.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -180,8 +180,8 @@ const ACPI_OPCODE_INFO *
AcpiPsGetOpcodeInfo (
UINT16 Opcode)
{
-#ifdef ACPI_DEBUG_OUTPUT
- const char *OpcodeName = "Unknown AML opcode";
+#if defined ACPI_ASL_COMPILER && defined ACPI_DEBUG_OUTPUT
+ const char *OpcodeName = "Unknown AML opcode";
#endif
ACPI_FUNCTION_NAME (PsGetOpcodeInfo);
@@ -207,7 +207,7 @@ AcpiPsGetOpcodeInfo (
#if defined ACPI_ASL_COMPILER && defined ACPI_DEBUG_OUTPUT
#include <contrib/dev/acpica/compiler/asldefine.h>
-
+
switch (Opcode)
{
case AML_RAW_DATA_BYTE:
@@ -249,12 +249,12 @@ AcpiPsGetOpcodeInfo (
default:
break;
}
-#endif
/* Unknown AML opcode */
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
"%s [%4.4X]\n", OpcodeName, Opcode));
+#endif
return (&AcpiGbl_AmlOpInfo [_UNK]);
}
diff --git a/sys/contrib/dev/acpica/components/parser/psparse.c b/sys/contrib/dev/acpica/components/parser/psparse.c
index ed9227a0481a..f294033a0039 100644
--- a/sys/contrib/dev/acpica/components/parser/psparse.c
+++ b/sys/contrib/dev/acpica/components/parser/psparse.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/parser/psscope.c b/sys/contrib/dev/acpica/components/parser/psscope.c
index 31e3e58e685a..4f9f496f5018 100644
--- a/sys/contrib/dev/acpica/components/parser/psscope.c
+++ b/sys/contrib/dev/acpica/components/parser/psscope.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/parser/pstree.c b/sys/contrib/dev/acpica/components/parser/pstree.c
index f7f79dbcc6f5..b561ba4b0721 100644
--- a/sys/contrib/dev/acpica/components/parser/pstree.c
+++ b/sys/contrib/dev/acpica/components/parser/pstree.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/parser/psutils.c b/sys/contrib/dev/acpica/components/parser/psutils.c
index 5e4f6935eeb5..3c647940e287 100644
--- a/sys/contrib/dev/acpica/components/parser/psutils.c
+++ b/sys/contrib/dev/acpica/components/parser/psutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/parser/pswalk.c b/sys/contrib/dev/acpica/components/parser/pswalk.c
index f221c9e82f9c..a0941d44cc03 100644
--- a/sys/contrib/dev/acpica/components/parser/pswalk.c
+++ b/sys/contrib/dev/acpica/components/parser/pswalk.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/parser/psxface.c b/sys/contrib/dev/acpica/components/parser/psxface.c
index 4d737748562a..08c1c2bb4f0d 100644
--- a/sys/contrib/dev/acpica/components/parser/psxface.c
+++ b/sys/contrib/dev/acpica/components/parser/psxface.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/resources/rsaddr.c b/sys/contrib/dev/acpica/components/resources/rsaddr.c
index f1ae33784093..9074c6dbaa35 100644
--- a/sys/contrib/dev/acpica/components/resources/rsaddr.c
+++ b/sys/contrib/dev/acpica/components/resources/rsaddr.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -431,13 +431,13 @@ AcpiRsGetAddressCommon (
ACPI_RESOURCE *Resource,
AML_RESOURCE *Aml)
{
- ACPI_FUNCTION_ENTRY ();
-
+ ACPI_FUNCTION_ENTRY();
/* Validate the Resource Type */
if ((Aml->Address.ResourceType > 2) &&
- (Aml->Address.ResourceType < 0xC0))
+ (Aml->Address.ResourceType < 0xC0) &&
+ (Aml->Address.ResourceType != 0x0A))
{
return (FALSE);
}
@@ -492,7 +492,6 @@ AcpiRsSetAddressCommon (
{
ACPI_FUNCTION_ENTRY ();
-
/* Set the Resource Type and General Flags */
(void) AcpiRsConvertResourceToAml (
diff --git a/sys/contrib/dev/acpica/components/resources/rscalc.c b/sys/contrib/dev/acpica/components/resources/rscalc.c
index 07ff54cec01f..fc7575c2ddfb 100644
--- a/sys/contrib/dev/acpica/components/resources/rscalc.c
+++ b/sys/contrib/dev/acpica/components/resources/rscalc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -480,6 +480,13 @@ AcpiRsGetAmlLength (
break;
+ case ACPI_RESOURCE_TYPE_CLOCK_INPUT:
+
+ TotalSize = (ACPI_RS_LENGTH) (TotalSize +
+ Resource->Data.ClockInput.ResourceSource.StringLength);
+
+ break;
+
case ACPI_RESOURCE_TYPE_SERIAL_BUS:
@@ -733,7 +740,7 @@ AcpiRsGetListLength (
}
break;
- case ACPI_RESOURCE_NAME_SERIAL_BUS:
+ case ACPI_RESOURCE_NAME_SERIAL_BUS: {
MinimumAmlResourceLength = AcpiGbl_ResourceAmlSerialBusSizes[
AmlResource->CommonSerialBus.Type];
@@ -741,6 +748,7 @@ AcpiRsGetListLength (
AmlResource->CommonSerialBus.ResourceLength -
MinimumAmlResourceLength;
break;
+ }
case ACPI_RESOURCE_NAME_PIN_CONFIG:
@@ -789,6 +797,12 @@ AcpiRsGetListLength (
break;
+ case ACPI_RESOURCE_NAME_CLOCK_INPUT:
+ ExtraStructBytes = AcpiRsStreamOptionLength (
+ ResourceLength, MinimumAmlResourceLength);
+
+ break;
+
default:
break;
diff --git a/sys/contrib/dev/acpica/components/resources/rscreate.c b/sys/contrib/dev/acpica/components/resources/rscreate.c
index aa5c68edcc59..b930ced8396f 100644
--- a/sys/contrib/dev/acpica/components/resources/rscreate.c
+++ b/sys/contrib/dev/acpica/components/resources/rscreate.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/resources/rsdump.c b/sys/contrib/dev/acpica/components/resources/rsdump.c
index a7f16bed8fcd..2f3e996af9af 100644
--- a/sys/contrib/dev/acpica/components/resources/rsdump.c
+++ b/sys/contrib/dev/acpica/components/resources/rsdump.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -230,6 +230,7 @@ AcpiRsDumpDescriptor (
ACPI_RSDUMP_INFO *Table);
+#ifdef ACPI_DEBUGGER
/*******************************************************************************
*
* FUNCTION: AcpiRsDumpResourceList
@@ -359,7 +360,7 @@ AcpiRsDumpIrqList (
PrtElement, PrtElement->Length);
}
}
-
+#endif
/*******************************************************************************
*
diff --git a/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c b/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c
index f42a8e871fe6..293eeb596928 100644
--- a/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c
+++ b/sys/contrib/dev/acpica/components/resources/rsdumpinfo.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -374,6 +374,17 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinFunction[10] =
{ACPI_RSD_SHORTLISTX,ACPI_RSD_OFFSET (PinFunction.VendorData), "VendorData", NULL},
};
+ACPI_RSDUMP_INFO AcpiRsDumpClockInput[7] =
+{
+ {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpClockInput), "ClockInput", NULL},
+ {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ClockInput.RevisionId), "RevisionId", NULL},
+ {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (ClockInput.FrequencyNumerator), "FrequencyNumerator", NULL},
+ {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (ClockInput.FrequencyDivisor), "FrequencyDivisor", NULL},
+ {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ClockInput.Scale), "Scale", AcpiGbl_ClockInputScale},
+ {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ClockInput.Mode), "Mode", AcpiGbl_ClockInputMode},
+ {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ClockInput.ResourceSource), "ResourceSource", NULL},
+};
+
ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[11] =
{
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinConfig), "PinConfig", NULL},
diff --git a/sys/contrib/dev/acpica/components/resources/rsinfo.c b/sys/contrib/dev/acpica/components/resources/rsinfo.c
index cdcae0a8221c..7a1bb07abb94 100644
--- a/sys/contrib/dev/acpica/components/resources/rsinfo.c
+++ b/sys/contrib/dev/acpica/components/resources/rsinfo.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -197,6 +197,7 @@ ACPI_RSCONVERT_INFO *AcpiGbl_SetResourceDispatch[] =
AcpiRsConvertPinGroup, /* 0x16, ACPI_RESOURCE_TYPE_PIN_GROUP */
AcpiRsConvertPinGroupFunction, /* 0x17, ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */
AcpiRsConvertPinGroupConfig, /* 0x18, ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */
+ AcpiRsConvertClockInput, /* 0x19, ACPI_RESOURCE_TYPE_CLOCK_INPUT */
};
/* Dispatch tables for AML-to-resource (Get Resource) conversion functions */
@@ -243,6 +244,7 @@ ACPI_RSCONVERT_INFO *AcpiGbl_GetResourceDispatch[] =
AcpiRsConvertPinGroup, /* 0x10, ACPI_RESOURCE_NAME_PIN_GROUP */
AcpiRsConvertPinGroupFunction, /* 0x11, ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION */
AcpiRsConvertPinGroupConfig, /* 0x12, ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG */
+ AcpiRsConvertClockInput, /* 0x13, ACPI_RESOURCE_NAME_CLOCK_INPUT */
};
/* Subtype table for SerialBus -- I2C, SPI, UART, and CSI2 */
@@ -288,6 +290,7 @@ ACPI_RSDUMP_INFO *AcpiGbl_DumpResourceDispatch[] =
AcpiRsDumpPinGroup, /* ACPI_RESOURCE_TYPE_PIN_GROUP */
AcpiRsDumpPinGroupFunction, /* ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */
AcpiRsDumpPinGroupConfig, /* ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */
+ AcpiRsDumpClockInput, /* ACPI_RESOURCE_TYPE_CLOCK_INPUT */
};
ACPI_RSDUMP_INFO *AcpiGbl_DumpSerialBusDispatch[] =
@@ -333,6 +336,7 @@ const UINT8 AcpiGbl_AmlResourceSizes[] =
sizeof (AML_RESOURCE_PIN_GROUP), /* ACPI_RESOURCE_TYPE_PIN_GROUP */
sizeof (AML_RESOURCE_PIN_GROUP_FUNCTION), /* ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION */
sizeof (AML_RESOURCE_PIN_GROUP_CONFIG), /* ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG */
+ sizeof (AML_RESOURCE_CLOCK_INPUT), /* ACPI_RESOURCE_TYPE_CLOCK_INPUT */
};
@@ -378,6 +382,7 @@ const UINT8 AcpiGbl_ResourceStructSizes[] =
ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP),
ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP_FUNCTION),
ACPI_RS_SIZE (ACPI_RESOURCE_PIN_GROUP_CONFIG),
+ ACPI_RS_SIZE (ACPI_RESOURCE_CLOCK_INPUT),
};
const UINT8 AcpiGbl_AmlResourceSerialBusSizes[] =
diff --git a/sys/contrib/dev/acpica/components/resources/rsio.c b/sys/contrib/dev/acpica/components/resources/rsio.c
index 17cfb861ba47..46d9b2f8aa4b 100644
--- a/sys/contrib/dev/acpica/components/resources/rsio.c
+++ b/sys/contrib/dev/acpica/components/resources/rsio.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/resources/rsirq.c b/sys/contrib/dev/acpica/components/resources/rsirq.c
index 9fe2f2bbb9e9..80482eb097d6 100644
--- a/sys/contrib/dev/acpica/components/resources/rsirq.c
+++ b/sys/contrib/dev/acpica/components/resources/rsirq.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/resources/rslist.c b/sys/contrib/dev/acpica/components/resources/rslist.c
index e9b4ef207680..2de70ad4fc58 100644
--- a/sys/contrib/dev/acpica/components/resources/rslist.c
+++ b/sys/contrib/dev/acpica/components/resources/rslist.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/resources/rsmemory.c b/sys/contrib/dev/acpica/components/resources/rsmemory.c
index 28e22e8c7102..0430379a0f05 100644
--- a/sys/contrib/dev/acpica/components/resources/rsmemory.c
+++ b/sys/contrib/dev/acpica/components/resources/rsmemory.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/resources/rsmisc.c b/sys/contrib/dev/acpica/components/resources/rsmisc.c
index 1e7338e747fc..725a130a2cec 100644
--- a/sys/contrib/dev/acpica/components/resources/rsmisc.c
+++ b/sys/contrib/dev/acpica/components/resources/rsmisc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -349,7 +349,8 @@ AcpiRsConvertAmlToResource (
case ACPI_RSC_COUNT_SERIAL_VEN:
- ItemCount = ACPI_GET16 (Source) - Info->Value;
+ ACPI_MOVE_16_TO_16(&Temp16, Source);
+ ItemCount = Temp16 - Info->Value;
Resource->Length = Resource->Length + ItemCount;
ACPI_SET16 (Destination, ItemCount);
@@ -357,9 +358,10 @@ AcpiRsConvertAmlToResource (
case ACPI_RSC_COUNT_SERIAL_RES:
+ ACPI_MOVE_16_TO_16(&Temp16, Source);
ItemCount = (AmlResourceLength +
sizeof (AML_RESOURCE_LARGE_HEADER)) -
- ACPI_GET16 (Source) - Info->Value;
+ Temp16 - Info->Value;
Resource->Length = Resource->Length + ItemCount;
ACPI_SET16 (Destination, ItemCount);
@@ -437,8 +439,9 @@ AcpiRsConvertAmlToResource (
/* Copy the ResourceSource string */
+ ACPI_MOVE_16_TO_16 (&Temp16, Source);
Source = ACPI_ADD_PTR (
- void, Aml, (ACPI_GET16 (Source) + Info->Value));
+ void, Aml, (Temp16 + Info->Value));
AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode);
break;
diff --git a/sys/contrib/dev/acpica/components/resources/rsserial.c b/sys/contrib/dev/acpica/components/resources/rsserial.c
index c32ad2dc2f88..ab09939850c0 100644
--- a/sys/contrib/dev/acpica/components/resources/rsserial.c
+++ b/sys/contrib/dev/acpica/components/resources/rsserial.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -256,6 +256,50 @@ ACPI_RSCONVERT_INFO AcpiRsConvertGpio[18] =
/*******************************************************************************
*
+ * AcpiRsConvertClockInput
+ *
+ ******************************************************************************/
+
+ACPI_RSCONVERT_INFO AcpiRsConvertClockInput[8] =
+{
+ {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_CLOCK_INPUT,
+ ACPI_RS_SIZE (ACPI_RESOURCE_CLOCK_INPUT),
+ ACPI_RSC_TABLE_SIZE (AcpiRsConvertClockInput)},
+
+ {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_CLOCK_INPUT,
+ sizeof (AML_RESOURCE_CLOCK_INPUT),
+ 0},
+
+ {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.ClockInput.RevisionId),
+ AML_OFFSET (ClockInput.RevisionId),
+ 1},
+
+ {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ClockInput.Mode),
+ AML_OFFSET (ClockInput.Flags),
+ 0},
+
+ {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.ClockInput.Scale),
+ AML_OFFSET (ClockInput.Flags),
+ 1},
+
+ {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.ClockInput.FrequencyDivisor),
+ AML_OFFSET (ClockInput.FrequencyDivisor),
+ 2},
+
+ {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ClockInput.FrequencyNumerator),
+ AML_OFFSET (ClockInput.FrequencyNumerator),
+ 4},
+
+ /* Resource Source */
+ {ACPI_RSC_SOURCE, ACPI_RS_OFFSET (Data.ClockInput.ResourceSource),
+ 0,
+ sizeof(AML_RESOURCE_CLOCK_INPUT)},
+
+};
+
+
+/*******************************************************************************
+ *
* AcpiRsConvertPinfunction
*
******************************************************************************/
diff --git a/sys/contrib/dev/acpica/components/resources/rsutils.c b/sys/contrib/dev/acpica/components/resources/rsutils.c
index 0b357979c9dc..cc89fcfbb356 100644
--- a/sys/contrib/dev/acpica/components/resources/rsutils.c
+++ b/sys/contrib/dev/acpica/components/resources/rsutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/resources/rsxface.c b/sys/contrib/dev/acpica/components/resources/rsxface.c
index 08ec4be5881d..89cc58864ead 100644
--- a/sys/contrib/dev/acpica/components/resources/rsxface.c
+++ b/sys/contrib/dev/acpica/components/resources/rsxface.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/tables/tbdata.c b/sys/contrib/dev/acpica/components/tables/tbdata.c
index 5067d2348c29..46c7724bdda4 100644
--- a/sys/contrib/dev/acpica/components/tables/tbdata.c
+++ b/sys/contrib/dev/acpica/components/tables/tbdata.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -724,7 +724,7 @@ AcpiTbVerifyTempTable (
{
/* Verify the checksum */
- Status = AcpiTbVerifyChecksum (TableDesc->Pointer, TableDesc->Length);
+ Status = AcpiUtVerifyChecksum (TableDesc->Pointer, TableDesc->Length);
if (ACPI_FAILURE (Status))
{
ACPI_EXCEPTION ((AE_INFO, AE_NO_MEMORY,
diff --git a/sys/contrib/dev/acpica/components/tables/tbfadt.c b/sys/contrib/dev/acpica/components/tables/tbfadt.c
index 0572989db0af..70490b5d0e70 100644
--- a/sys/contrib/dev/acpica/components/tables/tbfadt.c
+++ b/sys/contrib/dev/acpica/components/tables/tbfadt.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -472,7 +472,7 @@ AcpiTbParseFadt (
* Validate the FADT checksum before we copy the table. Ignore
* checksum error as we want to try to get the DSDT and FACS.
*/
- (void) AcpiTbVerifyChecksum (Table, Length);
+ (void) AcpiUtVerifyChecksum (Table, Length);
/* Create a local copy of the FADT in common ACPI 2.0+ format */
@@ -489,24 +489,19 @@ AcpiTbParseFadt (
ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE,
&AcpiGbl_DsdtIndex);
- /* If Hardware Reduced flag is set, there is no FACS */
-
- if (!AcpiGbl_ReducedHardware)
+ if (AcpiGbl_FADT.Facs)
{
- if (AcpiGbl_FADT.Facs)
- {
- AcpiTbInstallStandardTable (
- (ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.Facs,
- ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE,
- &AcpiGbl_FacsIndex);
- }
- if (AcpiGbl_FADT.XFacs)
- {
- AcpiTbInstallStandardTable (
- (ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.XFacs,
- ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE,
- &AcpiGbl_XFacsIndex);
- }
+ AcpiTbInstallStandardTable (
+ (ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.Facs,
+ ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE,
+ &AcpiGbl_FacsIndex);
+ }
+ if (AcpiGbl_FADT.XFacs)
+ {
+ AcpiTbInstallStandardTable (
+ (ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.XFacs,
+ ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, NULL, FALSE, TRUE,
+ &AcpiGbl_XFacsIndex);
}
}
diff --git a/sys/contrib/dev/acpica/components/tables/tbfind.c b/sys/contrib/dev/acpica/components/tables/tbfind.c
index a714dc48f229..e497cca9b553 100644
--- a/sys/contrib/dev/acpica/components/tables/tbfind.c
+++ b/sys/contrib/dev/acpica/components/tables/tbfind.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -208,8 +208,8 @@ AcpiTbFindTable (
memset (&Header, 0, sizeof (ACPI_TABLE_HEADER));
ACPI_COPY_NAMESEG (Header.Signature, Signature);
- strncpy (Header.OemId, OemId, ACPI_OEM_ID_SIZE);
- strncpy (Header.OemTableId, OemTableId, ACPI_OEM_TABLE_ID_SIZE);
+ memcpy (Header.OemId, OemId, ACPI_OEM_ID_SIZE);
+ memcpy (Header.OemTableId, OemTableId, ACPI_OEM_TABLE_ID_SIZE);
/* Search for the table */
diff --git a/sys/contrib/dev/acpica/components/tables/tbinstal.c b/sys/contrib/dev/acpica/components/tables/tbinstal.c
index 7fe98ea2f27e..309ec5b68472 100644
--- a/sys/contrib/dev/acpica/components/tables/tbinstal.c
+++ b/sys/contrib/dev/acpica/components/tables/tbinstal.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/tables/tbprint.c b/sys/contrib/dev/acpica/components/tables/tbprint.c
index 0428968a2908..8b812a890a07 100644
--- a/sys/contrib/dev/acpica/components/tables/tbprint.c
+++ b/sys/contrib/dev/acpica/components/tables/tbprint.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -152,6 +152,8 @@
#include <contrib/dev/acpica/include/acpi.h>
#include <contrib/dev/acpica/include/accommon.h>
#include <contrib/dev/acpica/include/actables.h>
+#include <contrib/dev/acpica/include/acdisasm.h>
+#include <contrib/dev/acpica/include/acutils.h>
#define _COMPONENT ACPI_TABLES
ACPI_MODULE_NAME ("tbprint")
@@ -192,7 +194,7 @@ AcpiTbFixString (
while (Length && *String)
{
- if (!isprint ((int) *String))
+ if (!isprint ((int) (UINT8) *String))
{
*String = '?';
}
@@ -277,6 +279,14 @@ AcpiTbPrintTableHeader (
ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision,
LocalHeader.OemId));
}
+ else if (AcpiGbl_CDAT && !AcpiUtValidNameseg (Header->Signature))
+ {
+ /* CDAT does not use the common ACPI table header */
+
+ ACPI_INFO (("%-4.4s 0x%8.8X%8.8X %06X",
+ ACPI_SIG_CDAT, ACPI_FORMAT_UINT64 (Address),
+ ACPI_CAST_PTR (ACPI_TABLE_CDAT, Header)->Length));
+ }
else
{
/* Standard ACPI table with full common header */
@@ -292,90 +302,3 @@ AcpiTbPrintTableHeader (
LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision));
}
}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbValidateChecksum
- *
- * PARAMETERS: Table - ACPI table to verify
- * Length - Length of entire table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns
- * exception on bad checksum.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbVerifyChecksum (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length)
-{
- UINT8 Checksum;
-
-
- /*
- * FACS/S3PT:
- * They are the odd tables, have no standard ACPI header and no checksum
- */
-
- if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_S3PT) ||
- ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS))
- {
- return (AE_OK);
- }
-
- /* Compute the checksum on the table */
-
- Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Length);
-
- /* Checksum ok? (should be zero) */
-
- if (Checksum)
- {
- ACPI_BIOS_WARNING ((AE_INFO,
- "Incorrect checksum in table [%4.4s] - 0x%2.2X, "
- "should be 0x%2.2X",
- Table->Signature, Table->Checksum,
- (UINT8) (Table->Checksum - Checksum)));
-
-#if (ACPI_CHECKSUM_ABORT)
- return (AE_BAD_CHECKSUM);
-#endif
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbChecksum
- *
- * PARAMETERS: Buffer - Pointer to memory region to be checked
- * Length - Length of this memory region
- *
- * RETURN: Checksum (UINT8)
- *
- * DESCRIPTION: Calculates circular checksum of memory region.
- *
- ******************************************************************************/
-
-UINT8
-AcpiTbChecksum (
- UINT8 *Buffer,
- UINT32 Length)
-{
- UINT8 Sum = 0;
- UINT8 *End = Buffer + Length;
-
-
- while (Buffer < End)
- {
- Sum = (UINT8) (Sum + *(Buffer++));
- }
-
- return (Sum);
-}
diff --git a/sys/contrib/dev/acpica/components/tables/tbutils.c b/sys/contrib/dev/acpica/components/tables/tbutils.c
index 7698297c5d92..61d8ac597afa 100644
--- a/sys/contrib/dev/acpica/components/tables/tbutils.c
+++ b/sys/contrib/dev/acpica/components/tables/tbutils.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -165,7 +165,6 @@ AcpiTbGetRootTableEntry (
UINT32 TableEntrySize);
-#if (!ACPI_REDUCED_HARDWARE)
/*******************************************************************************
*
* FUNCTION: AcpiTbInitializeFacs
@@ -185,15 +184,7 @@ AcpiTbInitializeFacs (
{
ACPI_TABLE_FACS *Facs;
-
- /* If Hardware Reduced flag is set, there is no FACS */
-
- if (AcpiGbl_ReducedHardware)
- {
- AcpiGbl_FACS = NULL;
- return (AE_OK);
- }
- else if (AcpiGbl_FADT.XFacs &&
+ if (AcpiGbl_FADT.XFacs &&
(!AcpiGbl_FADT.Facs || !AcpiGbl_Use32BitFacsAddresses))
{
(void) AcpiGetTableByIndex (AcpiGbl_XFacsIndex,
@@ -211,7 +202,6 @@ AcpiTbInitializeFacs (
return (AE_OK);
}
-#endif /* !ACPI_REDUCED_HARDWARE */
/*******************************************************************************
@@ -323,6 +313,7 @@ AcpiTbGetRootTableEntry (
UINT8 *TableEntry,
UINT32 TableEntrySize)
{
+ UINT32 Address32;
UINT64 Address64;
@@ -336,8 +327,8 @@ AcpiTbGetRootTableEntry (
* 32-bit platform, RSDT: Return 32-bit table entry
* 64-bit platform, RSDT: Expand 32-bit to 64-bit and return
*/
- return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
- UINT32, TableEntry)));
+ ACPI_MOVE_32_TO_32(&Address32, TableEntry);
+ return Address32;
}
else
{
@@ -471,7 +462,7 @@ AcpiTbParseRootTable (
/* Validate the root table checksum */
- Status = AcpiTbVerifyChecksum (Table, Length);
+ Status = AcpiUtVerifyChecksum (Table, Length);
if (ACPI_FAILURE (Status))
{
AcpiOsUnmapMemory (Table, Length);
diff --git a/sys/contrib/dev/acpica/components/tables/tbxface.c b/sys/contrib/dev/acpica/components/tables/tbxface.c
index 41eb3cfeb83f..0b16c0a9ebec 100644
--- a/sys/contrib/dev/acpica/components/tables/tbxface.c
+++ b/sys/contrib/dev/acpica/components/tables/tbxface.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/tables/tbxfload.c b/sys/contrib/dev/acpica/components/tables/tbxfload.c
index 714a6e055dd3..af49869d626c 100644
--- a/sys/contrib/dev/acpica/components/tables/tbxfload.c
+++ b/sys/contrib/dev/acpica/components/tables/tbxfload.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/tables/tbxfroot.c b/sys/contrib/dev/acpica/components/tables/tbxfroot.c
index 39cf9ba32e8b..7c444bda9c8c 100644
--- a/sys/contrib/dev/acpica/components/tables/tbxfroot.c
+++ b/sys/contrib/dev/acpica/components/tables/tbxfroot.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -227,7 +227,7 @@ AcpiTbValidateRsdp (
/* Check the standard checksum */
- if (AcpiTbChecksum ((UINT8 *) Rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0)
+ if (AcpiUtChecksum ((UINT8 *) Rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0)
{
return (AE_BAD_CHECKSUM);
}
@@ -235,7 +235,7 @@ AcpiTbValidateRsdp (
/* Check extended checksum if table version >= 2 */
if ((Rsdp->Revision >= 2) &&
- (AcpiTbChecksum ((UINT8 *) Rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0))
+ (AcpiUtChecksum ((UINT8 *) Rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0))
{
return (AE_BAD_CHECKSUM);
}
@@ -271,6 +271,7 @@ AcpiFindRootPointer (
UINT8 *TablePtr;
UINT8 *MemRover;
UINT32 PhysicalAddress;
+ UINT32 EbdaWindowSize;
ACPI_FUNCTION_TRACE (AcpiFindRootPointer);
@@ -299,27 +300,40 @@ AcpiFindRootPointer (
/* EBDA present? */
- if (PhysicalAddress > 0x400)
+ /*
+ * Check that the EBDA pointer from memory is sane and does not point
+ * above valid low memory
+ */
+ if (PhysicalAddress > 0x400 &&
+ PhysicalAddress < 0xA0000)
{
/*
- * 1b) Search EBDA paragraphs (EBDA is required to be a
- * minimum of 1K length)
+ * Calculate the scan window size
+ * The EBDA is not guaranteed to be larger than a KiB and in case
+ * that it is smaller, the scanning function would leave the low
+ * memory and continue to the VGA range.
+ */
+ EbdaWindowSize = ACPI_MIN(ACPI_EBDA_WINDOW_SIZE,
+ 0xA0000 - PhysicalAddress);
+
+ /*
+ * 1b) Search EBDA paragraphs
*/
TablePtr = AcpiOsMapMemory (
(ACPI_PHYSICAL_ADDRESS) PhysicalAddress,
- ACPI_EBDA_WINDOW_SIZE);
+ EbdaWindowSize);
if (!TablePtr)
{
ACPI_ERROR ((AE_INFO,
"Could not map memory at 0x%8.8X for length %u",
- PhysicalAddress, ACPI_EBDA_WINDOW_SIZE));
+ PhysicalAddress, EbdaWindowSize));
return_ACPI_STATUS (AE_NO_MEMORY);
}
MemRover = AcpiTbScanMemoryForRsdp (
- TablePtr, ACPI_EBDA_WINDOW_SIZE);
- AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_WINDOW_SIZE);
+ TablePtr, EbdaWindowSize);
+ AcpiOsUnmapMemory (TablePtr, EbdaWindowSize);
if (MemRover)
{
diff --git a/sys/contrib/dev/acpica/components/utilities/utaddress.c b/sys/contrib/dev/acpica/components/utilities/utaddress.c
index c1a76098f645..7ea0ff3e91b7 100644
--- a/sys/contrib/dev/acpica/components/utilities/utaddress.c
+++ b/sys/contrib/dev/acpica/components/utilities/utaddress.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utalloc.c b/sys/contrib/dev/acpica/components/utilities/utalloc.c
index 98b1c48e39ec..0dfdec633c2f 100644
--- a/sys/contrib/dev/acpica/components/utilities/utalloc.c
+++ b/sys/contrib/dev/acpica/components/utilities/utalloc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utascii.c b/sys/contrib/dev/acpica/components/utilities/utascii.c
index 747bcdf2e7af..cf64bdee02df 100644
--- a/sys/contrib/dev/acpica/components/utilities/utascii.c
+++ b/sys/contrib/dev/acpica/components/utilities/utascii.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utbuffer.c b/sys/contrib/dev/acpica/components/utilities/utbuffer.c
index 795e3090c312..b22530412b2f 100644
--- a/sys/contrib/dev/acpica/components/utilities/utbuffer.c
+++ b/sys/contrib/dev/acpica/components/utilities/utbuffer.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utcache.c b/sys/contrib/dev/acpica/components/utilities/utcache.c
index 068059e80d94..232154696307 100644
--- a/sys/contrib/dev/acpica/components/utilities/utcache.c
+++ b/sys/contrib/dev/acpica/components/utilities/utcache.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -433,9 +433,9 @@ AcpiOsAcquireObject (
{
/* The cache is empty, create a new object */
- ACPI_MEM_TRACKING (Cache->TotalAllocated++);
-
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
+ ACPI_MEM_TRACKING (Cache->TotalAllocated++);
+
if ((Cache->TotalAllocated - Cache->TotalFreed) > Cache->MaxOccupied)
{
Cache->MaxOccupied = Cache->TotalAllocated - Cache->TotalFreed;
diff --git a/sys/contrib/dev/acpica/components/utilities/utcksum.c b/sys/contrib/dev/acpica/components/utilities/utcksum.c
new file mode 100644
index 000000000000..50f8f80570ef
--- /dev/null
+++ b/sys/contrib/dev/acpica/components/utilities/utcksum.c
@@ -0,0 +1,335 @@
+/******************************************************************************
+ *
+ * Module Name: utcksum - Support generating table checksums
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * 1. Copyright Notice
+ *
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
+ * All rights reserved.
+ *
+ * 2. License
+ *
+ * 2.1. This is your license from Intel Corp. under its intellectual property
+ * rights. You may have additional license terms from the party that provided
+ * you this software, covering your right to use that party's intellectual
+ * property rights.
+ *
+ * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
+ * copy of the source code appearing in this file ("Covered Code") an
+ * irrevocable, perpetual, worldwide license under Intel's copyrights in the
+ * base code distributed originally by Intel ("Original Intel Code") to copy,
+ * make derivatives, distribute, use and display any portion of the Covered
+ * Code in any form, with the right to sublicense such rights; and
+ *
+ * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
+ * license (with the right to sublicense), under only those claims of Intel
+ * patents that are infringed by the Original Intel Code, to make, use, sell,
+ * offer to sell, and import the Covered Code and derivative works thereof
+ * solely to the minimum extent necessary to exercise the above copyright
+ * license, and in no event shall the patent license extend to any additions
+ * to or modifications of the Original Intel Code. No other license or right
+ * is granted directly or by implication, estoppel or otherwise;
+ *
+ * The above copyright and patent license is granted only if the following
+ * conditions are met:
+ *
+ * 3. Conditions
+ *
+ * 3.1. Redistribution of Source with Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification with rights to further distribute source must include
+ * the above Copyright Notice, the above License, this list of Conditions,
+ * and the following Disclaimer and Export Compliance provision. In addition,
+ * Licensee must cause all Covered Code to which Licensee contributes to
+ * contain a file documenting the changes Licensee made to create that Covered
+ * Code and the date of any change. Licensee must include in that file the
+ * documentation of any changes made by any predecessor Licensee. Licensee
+ * must include a prominent statement that the modification is derived,
+ * directly or indirectly, from Original Intel Code.
+ *
+ * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification without rights to further distribute source must
+ * include the following Disclaimer and Export Compliance provision in the
+ * documentation and/or other materials provided with distribution. In
+ * addition, Licensee may not authorize further sublicense of source of any
+ * portion of the Covered Code, and must include terms to the effect that the
+ * license from Licensee to its licensee is limited to the intellectual
+ * property embodied in the software Licensee provides to its licensee, and
+ * not to intellectual property embodied in modifications its licensee may
+ * make.
+ *
+ * 3.3. Redistribution of Executable. Redistribution in executable form of any
+ * substantial portion of the Covered Code or modification must reproduce the
+ * above Copyright Notice, and the following Disclaimer and Export Compliance
+ * provision in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3.4. Intel retains all right, title, and interest in and to the Original
+ * Intel Code.
+ *
+ * 3.5. Neither the name Intel nor any other trademark owned or controlled by
+ * Intel shall be used in advertising or otherwise to promote the sale, use or
+ * other dealings in products derived from or relating to the Covered Code
+ * without prior written authorization from Intel.
+ *
+ * 4. Disclaimer and Export Compliance
+ *
+ * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
+ * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
+ * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
+ * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
+ * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
+ * PARTICULAR PURPOSE.
+ *
+ * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
+ * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
+ * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
+ * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
+ * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
+ * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
+ * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
+ * LIMITED REMEDY.
+ *
+ * 4.3. Licensee shall not export, either directly or indirectly, any of this
+ * software or system incorporating such software without first obtaining any
+ * required license or other approval from the U. S. Department of Commerce or
+ * any other agency or department of the United States Government. In the
+ * event Licensee exports any such software from the United States or
+ * re-exports any such software from a foreign destination, Licensee shall
+ * ensure that the distribution and export/re-export of the software is in
+ * compliance with all laws, regulations, orders, or other restrictions of the
+ * U.S. Export Administration Regulations. Licensee agrees that neither it nor
+ * any of its subsidiaries will export/re-export any technical data, process,
+ * software, or service, directly or indirectly, to any country for which the
+ * United States government or any agency thereof requires an export license,
+ * other governmental approval, or letter of assurance, without first obtaining
+ * such license, approval or letter.
+ *
+ *****************************************************************************
+ *
+ * Alternatively, you may choose to be licensed under the terms of the
+ * following license:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Alternatively, you may choose to be licensed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ *****************************************************************************/
+
+#include <contrib/dev/acpica/include/acpi.h>
+#include <contrib/dev/acpica/include/accommon.h>
+#include <contrib/dev/acpica/include/acdisasm.h>
+#include <contrib/dev/acpica/include/acutils.h>
+
+
+/* This module used for application-level code only */
+
+#define _COMPONENT ACPI_CA_DISASSEMBLER
+ ACPI_MODULE_NAME ("utcksum")
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiUtVerifyChecksum
+ *
+ * PARAMETERS: Table - ACPI table to verify
+ * Length - Length of entire table
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns
+ * exception on bad checksum.
+ * Note: We don't have to check for a CDAT here, since CDAT is
+ * not in the RSDT/XSDT, and the CDAT table is never installed
+ * via ACPICA.
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiUtVerifyChecksum (
+ ACPI_TABLE_HEADER *Table,
+ UINT32 Length)
+{
+ UINT8 Checksum;
+
+
+ /*
+ * FACS/S3PT:
+ * They are the odd tables, have no standard ACPI header and no checksum
+ */
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_S3PT) ||
+ ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS))
+ {
+ return (AE_OK);
+ }
+
+ /* Compute the checksum on the table */
+
+ Length = Table->Length;
+ Checksum = AcpiUtGenerateChecksum (ACPI_CAST_PTR (UINT8, Table), Length, Table->Checksum);
+
+ /* Computed checksum matches table? */
+
+ if (Checksum != Table->Checksum)
+ {
+ ACPI_BIOS_WARNING ((AE_INFO,
+ "Incorrect checksum in table [%4.4s] - 0x%2.2X, "
+ "should be 0x%2.2X",
+ Table->Signature, Table->Checksum,
+ Table->Checksum - Checksum));
+
+#if (ACPI_CHECKSUM_ABORT)
+ return (AE_BAD_CHECKSUM);
+#endif
+ }
+
+ return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiUtVerifyCdatChecksum
+ *
+ * PARAMETERS: Table - CDAT ACPI table to verify
+ * Length - Length of entire table
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Verifies that the CDAT table checksums to zero. Optionally
+ * returns an exception on bad checksum.
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiUtVerifyCdatChecksum (
+ ACPI_TABLE_CDAT *CdatTable,
+ UINT32 Length)
+{
+ UINT8 Checksum;
+
+
+ /* Compute the checksum on the table */
+
+ Checksum = AcpiUtGenerateChecksum (ACPI_CAST_PTR (UINT8, CdatTable),
+ CdatTable->Length, CdatTable->Checksum);
+
+ /* Computed checksum matches table? */
+
+ if (Checksum != CdatTable->Checksum)
+ {
+ ACPI_BIOS_WARNING ((AE_INFO,
+ "Incorrect checksum in table [%4.4s] - 0x%2.2X, "
+ "should be 0x%2.2X",
+ AcpiGbl_CDAT, CdatTable->Checksum, Checksum));
+
+#if (ACPI_CHECKSUM_ABORT)
+ return (AE_BAD_CHECKSUM);
+#endif
+ }
+
+ CdatTable->Checksum = Checksum;
+ return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiUtGenerateChecksum
+ *
+ * PARAMETERS: Table - Pointer to table to be checksummed
+ * Length - Length of the table
+ * OriginalChecksum - Value of the checksum field
+ *
+ * RETURN: 8 bit checksum of buffer
+ *
+ * DESCRIPTION: Computes an 8 bit checksum of the table.
+ *
+ ******************************************************************************/
+
+UINT8
+AcpiUtGenerateChecksum (
+ void *Table,
+ UINT32 Length,
+ UINT8 OriginalChecksum)
+{
+ UINT8 Checksum;
+
+
+ /* Sum the entire table as-is */
+
+ Checksum = AcpiUtChecksum ((UINT8 *) Table, Length);
+
+ /* Subtract off the existing checksum value in the table */
+
+ Checksum = (UINT8) (Checksum - OriginalChecksum);
+
+ /* Compute and return the final checksum */
+
+ Checksum = (UINT8) (0 - Checksum);
+ return (Checksum);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiUtChecksum
+ *
+ * PARAMETERS: Buffer - Pointer to memory region to be checked
+ * Length - Length of this memory region
+ *
+ * RETURN: Checksum (UINT8)
+ *
+ * DESCRIPTION: Calculates circular checksum of memory region.
+ *
+ ******************************************************************************/
+
+UINT8
+AcpiUtChecksum (
+ UINT8 *Buffer,
+ UINT32 Length)
+{
+ UINT8 Sum = 0;
+ UINT8 *End = Buffer + Length;
+
+
+ while (Buffer < End)
+ {
+ Sum = (UINT8) (Sum + *(Buffer++));
+ }
+
+ return (Sum);
+}
diff --git a/sys/contrib/dev/acpica/components/utilities/utcopy.c b/sys/contrib/dev/acpica/components/utilities/utcopy.c
index bf34bbb4a34d..fd4d6922a1f2 100644
--- a/sys/contrib/dev/acpica/components/utilities/utcopy.c
+++ b/sys/contrib/dev/acpica/components/utilities/utcopy.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utdebug.c b/sys/contrib/dev/acpica/components/utilities/utdebug.c
index eafaae4e6544..90b8e246a1a9 100644
--- a/sys/contrib/dev/acpica/components/utilities/utdebug.c
+++ b/sys/contrib/dev/acpica/components/utilities/utdebug.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -185,7 +185,12 @@ AcpiUtInitStackPtrTrace (
ACPI_SIZE CurrentSp;
+#pragma GCC diagnostic push
+#if defined(__GNUC__) && __GNUC__ >= 12
+#pragma GCC diagnostic ignored "-Wdangling-pointer="
+#endif
AcpiGbl_EntryStackPointer = &CurrentSp;
+#pragma GCC diagnostic pop
}
@@ -210,7 +215,12 @@ AcpiUtTrackStackPtr (
if (&CurrentSp < AcpiGbl_LowestStackPointer)
{
+#pragma GCC diagnostic push
+#if defined(__GNUC__) && __GNUC__ >= 12
+#pragma GCC diagnostic ignored "-Wdangling-pointer="
+#endif
AcpiGbl_LowestStackPointer = &CurrentSp;
+#pragma GCC diagnostic pop
}
if (AcpiGbl_NestingLevel > AcpiGbl_DeepestNesting)
diff --git a/sys/contrib/dev/acpica/components/utilities/utdecode.c b/sys/contrib/dev/acpica/components/utilities/utdecode.c
index 4c7e5d342d25..00a2de9e9a5d 100644
--- a/sys/contrib/dev/acpica/components/utilities/utdecode.c
+++ b/sys/contrib/dev/acpica/components/utilities/utdecode.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utdelete.c b/sys/contrib/dev/acpica/components/utilities/utdelete.c
index ea61d9998674..e88cc736990b 100644
--- a/sys/contrib/dev/acpica/components/utilities/utdelete.c
+++ b/sys/contrib/dev/acpica/components/utilities/utdelete.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -293,7 +293,7 @@ AcpiUtDeleteInternalObj (
/* Global Lock has extra semaphore */
(void) AcpiOsDeleteSemaphore (AcpiGbl_GlobalLockSemaphore);
- AcpiGbl_GlobalLockSemaphore = NULL;
+ AcpiGbl_GlobalLockSemaphore = ACPI_SEMAPHORE_NULL;
AcpiOsDeleteMutex (Object->Mutex.OsMutex);
AcpiGbl_GlobalLockMutex = NULL;
@@ -312,7 +312,7 @@ AcpiUtDeleteInternalObj (
Object, Object->Event.OsSemaphore));
(void) AcpiOsDeleteSemaphore (Object->Event.OsSemaphore);
- Object->Event.OsSemaphore = NULL;
+ Object->Event.OsSemaphore = ACPI_SEMAPHORE_NULL;
break;
case ACPI_TYPE_METHOD:
@@ -574,7 +574,7 @@ AcpiUtUpdateRefCount (
"Obj %p Type %.2X [%s] Refs %.2X [Incremented]\n",
Object, Object->Common.Type,
AcpiUtGetObjectTypeName (Object), NewCount));
- Message = "Incremement";
+ Message = "Increment";
break;
case REF_DECREMENT:
diff --git a/sys/contrib/dev/acpica/components/utilities/uterror.c b/sys/contrib/dev/acpica/components/utilities/uterror.c
index e9eb3d6fd46a..1537f69a2a2b 100644
--- a/sys/contrib/dev/acpica/components/utilities/uterror.c
+++ b/sys/contrib/dev/acpica/components/utilities/uterror.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/uteval.c b/sys/contrib/dev/acpica/components/utilities/uteval.c
index 4c5e6fbec98d..53f843062179 100644
--- a/sys/contrib/dev/acpica/components/utilities/uteval.c
+++ b/sys/contrib/dev/acpica/components/utilities/uteval.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utexcep.c b/sys/contrib/dev/acpica/components/utilities/utexcep.c
index 57101529783d..b3e606ceef57 100644
--- a/sys/contrib/dev/acpica/components/utilities/utexcep.c
+++ b/sys/contrib/dev/acpica/components/utilities/utexcep.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utglobal.c b/sys/contrib/dev/acpica/components/utilities/utglobal.c
index 2a121dfcca3c..95d679a20746 100644
--- a/sys/contrib/dev/acpica/components/utilities/utglobal.c
+++ b/sys/contrib/dev/acpica/components/utilities/utglobal.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/uthex.c b/sys/contrib/dev/acpica/components/utilities/uthex.c
index 9aedc9224805..2806f1c48148 100644
--- a/sys/contrib/dev/acpica/components/utilities/uthex.c
+++ b/sys/contrib/dev/acpica/components/utilities/uthex.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utids.c b/sys/contrib/dev/acpica/components/utilities/utids.c
index d4d62f019c28..3dfb908302c6 100644
--- a/sys/contrib/dev/acpica/components/utilities/utids.c
+++ b/sys/contrib/dev/acpica/components/utilities/utids.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utinit.c b/sys/contrib/dev/acpica/components/utilities/utinit.c
index 3c9e8c71fd35..b5a4b7e7d936 100644
--- a/sys/contrib/dev/acpica/components/utilities/utinit.c
+++ b/sys/contrib/dev/acpica/components/utilities/utinit.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -316,7 +316,7 @@ AcpiUtInitGlobals (
/* Global Lock support */
- AcpiGbl_GlobalLockSemaphore = NULL;
+ AcpiGbl_GlobalLockSemaphore = ACPI_SEMAPHORE_NULL;
AcpiGbl_GlobalLockMutex = NULL;
AcpiGbl_GlobalLockAcquired = FALSE;
AcpiGbl_GlobalLockHandle = 0;
diff --git a/sys/contrib/dev/acpica/components/utilities/utlock.c b/sys/contrib/dev/acpica/components/utilities/utlock.c
index 6f7e6be97c6e..a06b27525cc3 100644
--- a/sys/contrib/dev/acpica/components/utilities/utlock.c
+++ b/sys/contrib/dev/acpica/components/utilities/utlock.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utmath.c b/sys/contrib/dev/acpica/components/utilities/utmath.c
index 18aa1707b139..48bbe8f3d8c8 100644
--- a/sys/contrib/dev/acpica/components/utilities/utmath.c
+++ b/sys/contrib/dev/acpica/components/utilities/utmath.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utmisc.c b/sys/contrib/dev/acpica/components/utilities/utmisc.c
index 44b0ca48f73e..13dffc6674d3 100644
--- a/sys/contrib/dev/acpica/components/utilities/utmisc.c
+++ b/sys/contrib/dev/acpica/components/utilities/utmisc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utmutex.c b/sys/contrib/dev/acpica/components/utilities/utmutex.c
index ec25202c9789..b0b26458818e 100644
--- a/sys/contrib/dev/acpica/components/utilities/utmutex.c
+++ b/sys/contrib/dev/acpica/components/utilities/utmutex.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utnonansi.c b/sys/contrib/dev/acpica/components/utilities/utnonansi.c
index 3c724bf01339..f8b3a29e3283 100644
--- a/sys/contrib/dev/acpica/components/utilities/utnonansi.c
+++ b/sys/contrib/dev/acpica/components/utilities/utnonansi.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utobject.c b/sys/contrib/dev/acpica/components/utilities/utobject.c
index 287a1cde2179..046b6c2531b6 100644
--- a/sys/contrib/dev/acpica/components/utilities/utobject.c
+++ b/sys/contrib/dev/acpica/components/utilities/utobject.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utosi.c b/sys/contrib/dev/acpica/components/utilities/utosi.c
index 0b3774e181f8..8a2d5093f563 100644
--- a/sys/contrib/dev/acpica/components/utilities/utosi.c
+++ b/sys/contrib/dev/acpica/components/utilities/utosi.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -222,6 +222,7 @@ static ACPI_INTERFACE_INFO AcpiDefaultSupportedInterfaces[] =
{"Windows 2019", NULL, 0, ACPI_OSI_WIN_10_19H1}, /* Windows 10 version 1903 - Added 08/2019 */
{"Windows 2020", NULL, 0, ACPI_OSI_WIN_10_20H1}, /* Windows 10 version 2004 - Added 08/2021 */
{"Windows 2021", NULL, 0, ACPI_OSI_WIN_11}, /* Windows 11 - Added 01/2022 */
+ {"Windows 2022", NULL, 0, ACPI_OSI_WIN_11_22H2}, /* Windows 11 version 22H2 - Added 04/2024 */
/* Feature Group Strings */
diff --git a/sys/contrib/dev/acpica/components/utilities/utownerid.c b/sys/contrib/dev/acpica/components/utilities/utownerid.c
index 11853e48c271..7e39b7851af4 100644
--- a/sys/contrib/dev/acpica/components/utilities/utownerid.c
+++ b/sys/contrib/dev/acpica/components/utilities/utownerid.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utpredef.c b/sys/contrib/dev/acpica/components/utilities/utpredef.c
index 5c3562846235..23e6606d167c 100644
--- a/sys/contrib/dev/acpica/components/utilities/utpredef.c
+++ b/sys/contrib/dev/acpica/components/utilities/utpredef.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utresdecode.c b/sys/contrib/dev/acpica/components/utilities/utresdecode.c
index 54452852300d..d14259911a07 100644
--- a/sys/contrib/dev/acpica/components/utilities/utresdecode.c
+++ b/sys/contrib/dev/acpica/components/utilities/utresdecode.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -467,4 +467,17 @@ const char *AcpiGbl_PtypDecode[] =
"Input Schmitt Trigger",
};
+const char *AcpiGbl_ClockInputMode[] =
+{
+ "Fixed",
+ "Variable",
+};
+
+const char *AcpiGbl_ClockInputScale[] =
+{
+ "Hz",
+ "KHz",
+ "MHz",
+};
+
#endif
diff --git a/sys/contrib/dev/acpica/components/utilities/utresrc.c b/sys/contrib/dev/acpica/components/utilities/utresrc.c
index ec4afc7649e8..109395435d45 100644
--- a/sys/contrib/dev/acpica/components/utilities/utresrc.c
+++ b/sys/contrib/dev/acpica/components/utilities/utresrc.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -204,6 +204,8 @@ const UINT8 AcpiGbl_ResourceAmlSizes[] =
ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP),
ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP_FUNCTION),
ACPI_AML_SIZE_LARGE (AML_RESOURCE_PIN_GROUP_CONFIG),
+ ACPI_AML_SIZE_LARGE (AML_RESOURCE_CLOCK_INPUT),
+
};
const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[] =
@@ -264,6 +266,7 @@ static const UINT8 AcpiGbl_ResourceTypes[] =
ACPI_VARIABLE_LENGTH, /* 10 PinGroup */
ACPI_VARIABLE_LENGTH, /* 11 PinGroupFunction */
ACPI_VARIABLE_LENGTH, /* 12 PinGroupConfig */
+ ACPI_VARIABLE_LENGTH, /* 13 ClockInput */
};
diff --git a/sys/contrib/dev/acpica/components/utilities/utstate.c b/sys/contrib/dev/acpica/components/utilities/utstate.c
index 22b988fed224..02fec7d15bf5 100644
--- a/sys/contrib/dev/acpica/components/utilities/utstate.c
+++ b/sys/contrib/dev/acpica/components/utilities/utstate.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utstring.c b/sys/contrib/dev/acpica/components/utilities/utstring.c
index dcbdc6d9edc6..59e34e7c8a79 100644
--- a/sys/contrib/dev/acpica/components/utilities/utstring.c
+++ b/sys/contrib/dev/acpica/components/utilities/utstring.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -308,7 +308,7 @@ AcpiUtRepairName (
return;
}
- ACPI_COPY_NAMESEG (&OriginalName, Name);
+ ACPI_COPY_NAMESEG (&OriginalName, &Name[0]);
/* Check each character in the name */
@@ -321,10 +321,10 @@ AcpiUtRepairName (
/*
* Replace a bad character with something printable, yet technically
- * still invalid. This prevents any collisions with existing "good"
+ * "odd". This prevents any collisions with existing "good"
* names in the namespace.
*/
- Name[i] = '*';
+ Name[i] = '_';
FoundBadChar = TRUE;
}
@@ -335,8 +335,8 @@ AcpiUtRepairName (
if (!AcpiGbl_EnableInterpreterSlack)
{
ACPI_WARNING ((AE_INFO,
- "Invalid character(s) in name (0x%.8X), repaired: [%4.4s]",
- OriginalName, Name));
+ "Invalid character(s) in name (0x%.8X) %p, repaired: [%4.4s]",
+ OriginalName, Name, &Name[0]));
}
else
{
diff --git a/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c b/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c
index 3ca780ea0b33..1537d8a02949 100644
--- a/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c
+++ b/sys/contrib/dev/acpica/components/utilities/utstrsuppt.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utstrtoul64.c b/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c
index e726c41bab0b..2683c37c35db 100644
--- a/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c
+++ b/sys/contrib/dev/acpica/components/utilities/utstrtoul64.c
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/uttrack.c b/sys/contrib/dev/acpica/components/utilities/uttrack.c
index 5343b3074364..2c60c1c7b1f1 100644
--- a/sys/contrib/dev/acpica/components/utilities/uttrack.c
+++ b/sys/contrib/dev/acpica/components/utilities/uttrack.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utuuid.c b/sys/contrib/dev/acpica/components/utilities/utuuid.c
index c13e3ea917ec..669cce69b1f3 100644
--- a/sys/contrib/dev/acpica/components/utilities/utuuid.c
+++ b/sys/contrib/dev/acpica/components/utilities/utuuid.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utxface.c b/sys/contrib/dev/acpica/components/utilities/utxface.c
index 9631bb7c8922..9b5f8b3c9d84 100644
--- a/sys/contrib/dev/acpica/components/utilities/utxface.c
+++ b/sys/contrib/dev/acpica/components/utilities/utxface.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utxferror.c b/sys/contrib/dev/acpica/components/utilities/utxferror.c
index e30c2b751f56..08a3ab986c3f 100644
--- a/sys/contrib/dev/acpica/components/utilities/utxferror.c
+++ b/sys/contrib/dev/acpica/components/utilities/utxferror.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/components/utilities/utxfinit.c b/sys/contrib/dev/acpica/components/utilities/utxfinit.c
index 4cd977ebdaa1..f295471031d0 100644
--- a/sys/contrib/dev/acpica/components/utilities/utxfinit.c
+++ b/sys/contrib/dev/acpica/components/utilities/utxfinit.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -276,6 +276,20 @@ AcpiEnableSubsystem (
*/
AcpiGbl_EarlyInitialization = FALSE;
+ /*
+ * Obtain a permanent mapping for the FACS. This is required for the
+ * Global Lock and the Firmware Waking Vector
+ */
+ if (!(Flags & ACPI_NO_FACS_INIT))
+ {
+ Status = AcpiTbInitializeFacs ();
+ if (ACPI_FAILURE (Status))
+ {
+ ACPI_WARNING ((AE_INFO, "Could not map the FACS table"));
+ return_ACPI_STATUS (Status);
+ }
+ }
+
#if (!ACPI_REDUCED_HARDWARE)
/* Enable ACPI mode */
@@ -295,20 +309,6 @@ AcpiEnableSubsystem (
}
/*
- * Obtain a permanent mapping for the FACS. This is required for the
- * Global Lock and the Firmware Waking Vector
- */
- if (!(Flags & ACPI_NO_FACS_INIT))
- {
- Status = AcpiTbInitializeFacs ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_WARNING ((AE_INFO, "Could not map the FACS table"));
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
* Initialize ACPI Event handling (Fixed and General Purpose)
*
* Note1: We must have the hardware and events initialized before we can
diff --git a/sys/contrib/dev/acpica/components/utilities/utxfmutex.c b/sys/contrib/dev/acpica/components/utilities/utxfmutex.c
index 104c4ebb0f43..595904977f23 100644
--- a/sys/contrib/dev/acpica/components/utilities/utxfmutex.c
+++ b/sys/contrib/dev/acpica/components/utilities/utxfmutex.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acapps.h b/sys/contrib/dev/acpica/include/acapps.h
index 382ab1700b34..ccaea124afb1 100644
--- a/sys/contrib/dev/acpica/include/acapps.h
+++ b/sys/contrib/dev/acpica/include/acapps.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -159,7 +159,7 @@
/* Common info for tool signons */
#define ACPICA_NAME "Intel ACPI Component Architecture"
-#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2022 Intel Corporation"
+#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2025 Intel Corporation"
#if ACPI_MACHINE_WIDTH == 64
#define ACPI_WIDTH " (64-bit version)"
diff --git a/sys/contrib/dev/acpica/include/acbuffer.h b/sys/contrib/dev/acpica/include/acbuffer.h
index 0739feb52817..682ddcd72625 100644
--- a/sys/contrib/dev/acpica/include/acbuffer.h
+++ b/sys/contrib/dev/acpica/include/acbuffer.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acclib.h b/sys/contrib/dev/acpica/include/acclib.h
index 75c48119cab7..3960ffd2582e 100644
--- a/sys/contrib/dev/acpica/include/acclib.h
+++ b/sys/contrib/dev/acpica/include/acclib.h
@@ -9,7 +9,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/accommon.h b/sys/contrib/dev/acpica/include/accommon.h
index c620e0d6e68e..10a39803842b 100644
--- a/sys/contrib/dev/acpica/include/accommon.h
+++ b/sys/contrib/dev/acpica/include/accommon.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acconfig.h b/sys/contrib/dev/acpica/include/acconfig.h
index 8ba7dc28473a..983dc3021185 100644
--- a/sys/contrib/dev/acpica/include/acconfig.h
+++ b/sys/contrib/dev/acpica/include/acconfig.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -210,7 +210,6 @@
* General Purpose Events (GPEs)
* Global Lock
* ACPI PM timer
- * FACS table (Waking vectors and Global Lock)
*/
#ifndef ACPI_REDUCED_HARDWARE
#define ACPI_REDUCED_HARDWARE FALSE
@@ -335,6 +334,8 @@
#define ACPI_PRM_INPUT_BUFFER_SIZE 26
+#define ACPI_FFH_INPUT_BUFFER_SIZE 256
+
/* _SxD and _SxW control methods */
#define ACPI_NUM_SxD_METHODS 4
diff --git a/sys/contrib/dev/acpica/include/acconvert.h b/sys/contrib/dev/acpica/include/acconvert.h
index 048fd53e4de2..9dedc51a7ef9 100644
--- a/sys/contrib/dev/acpica/include/acconvert.h
+++ b/sys/contrib/dev/acpica/include/acconvert.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acdebug.h b/sys/contrib/dev/acpica/include/acdebug.h
index 107a8df906c2..63f39051a8ac 100644
--- a/sys/contrib/dev/acpica/include/acdebug.h
+++ b/sys/contrib/dev/acpica/include/acdebug.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -619,4 +619,8 @@ AcpiDbUint32ToHexString (
UINT32 Value,
char *Buffer);
+void
+AcpiDbGenerateInterrupt (
+ char *GsivArg);
+
#endif /* __ACDEBUG_H__ */
diff --git a/sys/contrib/dev/acpica/include/acdisasm.h b/sys/contrib/dev/acpica/include/acdisasm.h
index a374b7d4bf89..ab092d6aec22 100644
--- a/sys/contrib/dev/acpica/include/acdisasm.h
+++ b/sys/contrib/dev/acpica/include/acdisasm.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -223,9 +223,14 @@ typedef enum
ACPI_DMT_UINT64,
ACPI_DMT_BUF7,
ACPI_DMT_BUF10,
+ ACPI_DMT_BUF11,
ACPI_DMT_BUF12,
ACPI_DMT_BUF16,
ACPI_DMT_BUF18,
+ ACPI_DMT_BUF24,
+ ACPI_DMT_BUF26,
+ ACPI_DMT_BUF32,
+ ACPI_DMT_BUF112,
ACPI_DMT_BUF128,
ACPI_DMT_SIG,
ACPI_DMT_STRING,
@@ -260,11 +265,14 @@ typedef enum
ACPI_DMT_AEST_XRUPT,
ACPI_DMT_AGDI,
ACPI_DMT_ASF,
+ ACPI_DMT_ASPT,
+ ACPI_DMT_CDAT,
ACPI_DMT_CEDT,
ACPI_DMT_DMAR,
ACPI_DMT_DMAR_SCOPE,
ACPI_DMT_EINJACT,
ACPI_DMT_EINJINST,
+ ACPI_DMT_ERDT,
ACPI_DMT_ERSTACT,
ACPI_DMT_ERSTINST,
ACPI_DMT_FADTPM,
@@ -279,20 +287,16 @@ typedef enum
ACPI_DMT_IVRS_UNTERMINATED_STRING,
ACPI_DMT_LPIT,
ACPI_DMT_MADT,
+ ACPI_DMT_MPAM_LOCATOR,
ACPI_DMT_NFIT,
- ACPI_DMT_NHLT1,
- ACPI_DMT_NHLT1a,
- ACPI_DMT_NHLT1b,
- ACPI_DMT_NHLT1c,
- ACPI_DMT_NHLT1d,
- ACPI_DMT_NHLT1e,
- ACPI_DMT_NHLT1f,
ACPI_DMT_PCCT,
ACPI_DMT_PHAT,
ACPI_DMT_PMTT,
ACPI_DMT_PMTT_VENDOR,
ACPI_DMT_PPTT,
ACPI_DMT_RGRT,
+ ACPI_DMT_RHCT,
+ ACPI_DMT_RIMT,
ACPI_DMT_SDEI,
ACPI_DMT_SDEV,
ACPI_DMT_SLIC,
@@ -385,9 +389,17 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorV2Error[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestPCIeError[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestProxyError[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXfaceHeader[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface4k[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface16k[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface64k[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXruptV2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[];
@@ -398,14 +410,31 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsptHdr[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt0[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt1[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAspt2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBdat[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCcel[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatTableHdr[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatHeader[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat0[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat1[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat2[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat3[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat4[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdat5[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCdatEntries[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2_te[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[];
@@ -428,6 +457,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar5[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar6[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[];
@@ -437,6 +467,24 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdt[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtHdr[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCacd[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCacdX2apic[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCarc[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCard[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCmrc[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtCmrd[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacd[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacdPath[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtDacdScope[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbad[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbrd[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtIbrdCorrFactor[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMarc[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMmrc[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtMmrcCorrFactor[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoErdtRmdd[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[];
@@ -529,22 +577,50 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11a[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11b[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14a[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15a[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt17[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt18[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt19[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt20[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt21[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt22[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt23[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam0[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1A[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1B[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1C[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1D[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1E[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1F[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1G[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam1Deps[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpam2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMrrm[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoMrrm0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[];
@@ -560,24 +636,6 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit7[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt0[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt1[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt2[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt3a[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt4[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5a[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5b[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt5c[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6a[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt6b[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7a[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt7b[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoNhlt9[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhatHdr[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPhat0a[];
@@ -610,8 +668,26 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHdr[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtModule[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoPrmtHandler[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRas2[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRas2PccDesc[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRgrt0[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhct[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctNodeHdr[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsa1[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctIsaPad[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctCmo1[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctMmu1[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo1[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRhctHartInfo2[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRimt[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRimtNodeHdr[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRimtIommu[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRimtIommuWire[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRimtPcieRc[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRimtIdMapping[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRimtPlatDev[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoRimtPlatDevPad[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[];
@@ -644,6 +720,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat6[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat7[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[];
@@ -748,6 +825,18 @@ AcpiDmDumpAsf (
ACPI_TABLE_HEADER *Table);
void
+AcpiDmDumpAspt (
+ ACPI_TABLE_HEADER *Table);
+
+void
+AcpiDmDumpCcel (
+ ACPI_TABLE_HEADER *Table);
+
+void
+AcpiDmDumpCdat (
+ ACPI_TABLE_HEADER *Table);
+
+void
AcpiDmDumpCedt (
ACPI_TABLE_HEADER *Table);
@@ -776,6 +865,10 @@ AcpiDmDumpEinj (
ACPI_TABLE_HEADER *Table);
void
+AcpiDmDumpErdt (
+ ACPI_TABLE_HEADER *Table);
+
+void
AcpiDmDumpErst (
ACPI_TABLE_HEADER *Table);
@@ -820,19 +913,23 @@ AcpiDmDumpMcfg (
ACPI_TABLE_HEADER *Table);
void
+AcpiDmDumpMpam (
+ ACPI_TABLE_HEADER *Table);
+
+void
AcpiDmDumpMpst (
ACPI_TABLE_HEADER *Table);
void
-AcpiDmDumpMsct (
+AcpiDmDumpMrrm (
ACPI_TABLE_HEADER *Table);
void
-AcpiDmDumpNfit (
+AcpiDmDumpMsct (
ACPI_TABLE_HEADER *Table);
void
-AcpiDmDumpNhlt (
+AcpiDmDumpNfit (
ACPI_TABLE_HEADER *Table);
void
@@ -860,9 +957,21 @@ AcpiDmDumpPrmt (
ACPI_TABLE_HEADER *Table);
void
+AcpiDmDumpRas2 (
+ ACPI_TABLE_HEADER *Table);
+
+void
AcpiDmDumpRgrt (
ACPI_TABLE_HEADER *Table);
+void
+AcpiDmDumpRhct (
+ ACPI_TABLE_HEADER *Table);
+
+void
+AcpiDmDumpRimt (
+ ACPI_TABLE_HEADER *Table);
+
UINT32
AcpiDmDumpRsdp (
ACPI_TABLE_HEADER *Table);
@@ -1304,6 +1413,12 @@ AcpiDmVendorCommon (
UINT32 Length,
UINT32 Level);
+void
+AcpiDmClockInputDescriptor (
+ ACPI_OP_WALK_INFO *Info,
+ AML_RESOURCE *Resource,
+ UINT32 Length,
+ UINT32 Level);
/*
* dmresrcs
diff --git a/sys/contrib/dev/acpica/include/acdispat.h b/sys/contrib/dev/acpica/include/acdispat.h
index 2c44c9f19613..0573e5817dff 100644
--- a/sys/contrib/dev/acpica/include/acdispat.h
+++ b/sys/contrib/dev/acpica/include/acdispat.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acevents.h b/sys/contrib/dev/acpica/include/acevents.h
index f8c5d77699a0..22eff360559c 100644
--- a/sys/contrib/dev/acpica/include/acevents.h
+++ b/sys/contrib/dev/acpica/include/acevents.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acexcep.h b/sys/contrib/dev/acpica/include/acexcep.h
index 92e949722940..7216e0d49148 100644
--- a/sys/contrib/dev/acpica/include/acexcep.h
+++ b/sys/contrib/dev/acpica/include/acexcep.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -322,8 +322,11 @@ typedef struct acpi_exception_info
#define AE_AML_TARGET_TYPE EXCEP_AML (0x0023)
#define AE_AML_PROTOCOL EXCEP_AML (0x0024)
#define AE_AML_BUFFER_LENGTH EXCEP_AML (0x0025)
+#define AE_AML_TOO_FEW_ARGUMENTS EXCEP_AML (0x0026)
+#define AE_AML_TOO_MANY_ARGUMENTS EXCEP_AML (0x0027)
-#define AE_CODE_AML_MAX 0x0025
+
+#define AE_CODE_AML_MAX 0x0027
/*
@@ -456,7 +459,9 @@ static const ACPI_EXCEPTION_INFO AcpiGbl_ExceptionNames_Aml[] =
EXCEP_TXT ("AE_AML_UNINITIALIZED_NODE", "A namespace node is uninitialized or unresolved"),
EXCEP_TXT ("AE_AML_TARGET_TYPE", "A target operand of an incorrect type was encountered"),
EXCEP_TXT ("AE_AML_PROTOCOL", "Violation of a fixed ACPI protocol"),
- EXCEP_TXT ("AE_AML_BUFFER_LENGTH", "The length of the buffer is invalid/incorrect")
+ EXCEP_TXT ("AE_AML_BUFFER_LENGTH", "The length of the buffer is invalid/incorrect"),
+ EXCEP_TXT ("AE_AML_TOO_FEW_ARGUMENTS", "There are fewer than expected method arguments"),
+ EXCEP_TXT ("AE_AML_TOO_MANY_ARGUMENTS", "There are too many arguments for this method")
};
static const ACPI_EXCEPTION_INFO AcpiGbl_ExceptionNames_Ctrl[] =
diff --git a/sys/contrib/dev/acpica/include/acglobal.h b/sys/contrib/dev/acpica/include/acglobal.h
index b8831b467232..02167c3af092 100644
--- a/sys/contrib/dev/acpica/include/acglobal.h
+++ b/sys/contrib/dev/acpica/include/acglobal.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -167,15 +167,12 @@ ACPI_GLOBAL (ACPI_TABLE_LIST, AcpiGbl_RootTableList);
ACPI_GLOBAL (ACPI_TABLE_HEADER *, AcpiGbl_DSDT);
ACPI_GLOBAL (ACPI_TABLE_HEADER, AcpiGbl_OriginalDsdtHeader);
+ACPI_INIT_GLOBAL (char *, AcpiGbl_CDAT, NULL);
ACPI_INIT_GLOBAL (UINT32, AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_INDEX);
ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX);
ACPI_INIT_GLOBAL (UINT32, AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX);
ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX);
-
-#if (!ACPI_REDUCED_HARDWARE)
-ACPI_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS);
-
-#endif /* !ACPI_REDUCED_HARDWARE */
+ACPI_INIT_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS, NULL);
/* These addresses are calculated from the FADT Event Block addresses */
@@ -267,6 +264,7 @@ ACPI_GLOBAL (ACPI_TABLE_HANDLER, AcpiGbl_TableHandler);
ACPI_GLOBAL (void *, AcpiGbl_TableHandlerContext);
ACPI_GLOBAL (ACPI_INTERFACE_HANDLER, AcpiGbl_InterfaceHandler);
ACPI_GLOBAL (ACPI_SCI_HANDLER_INFO *, AcpiGbl_SciHandlerList);
+ACPI_GLOBAL (ACPI_GED_HANDLER_INFO *, AcpiGbl_GedHandlerList);
/* Owner ID support */
diff --git a/sys/contrib/dev/acpica/include/achware.h b/sys/contrib/dev/acpica/include/achware.h
index 256008c74c7a..46efffb50708 100644
--- a/sys/contrib/dev/acpica/include/achware.h
+++ b/sys/contrib/dev/acpica/include/achware.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acinterp.h b/sys/contrib/dev/acpica/include/acinterp.h
index d9cec3455d7b..b7f9e8f615e4 100644
--- a/sys/contrib/dev/acpica/include/acinterp.h
+++ b/sys/contrib/dev/acpica/include/acinterp.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -280,6 +280,10 @@ AcpiExTracePoint (
UINT8 *Aml,
char *Pathname);
+void
+AcpiExTraceArgs(
+ ACPI_OPERAND_OBJECT **Params,
+ UINT32 Count);
/*
* exfield - ACPI AML (p-code) execution - field manipulation
diff --git a/sys/contrib/dev/acpica/include/aclocal.h b/sys/contrib/dev/acpica/include/aclocal.h
index 74eb6e27f08c..56ce42ba89fc 100644
--- a/sys/contrib/dev/acpica/include/aclocal.h
+++ b/sys/contrib/dev/acpica/include/aclocal.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -480,7 +480,7 @@ ACPI_STATUS (*ACPI_INTERNAL_METHOD) (
*/
typedef struct acpi_name_info
{
- char Name[ACPI_NAMESEG_SIZE];
+ char Name[ACPI_NAMESEG_SIZE] ACPI_NONSTRING;
UINT16 ArgumentList;
UINT8 ExpectedBtypes;
@@ -568,7 +568,7 @@ typedef ACPI_STATUS (*ACPI_OBJECT_CONVERTER) (
typedef struct acpi_simple_repair_info
{
- char Name[ACPI_NAMESEG_SIZE];
+ char Name[ACPI_NAMESEG_SIZE] ACPI_NONSTRING;
UINT32 UnexpectedBtypes;
UINT32 PackageIndex;
ACPI_OBJECT_CONVERTER ObjectConverter;
@@ -767,6 +767,15 @@ typedef struct acpi_field_info
} ACPI_FIELD_INFO;
+/* Information about the interrupt ID and _EVT of a GED device */
+
+typedef struct acpi_ged_handler_info
+{
+ struct acpi_ged_handler_info *Next;
+ UINT32 IntId; /* The interrupt ID that triggers the execution of the EvtMethod. */
+ ACPI_NAMESPACE_NODE *EvtMethod; /* The _EVT method to be executed when an interrupt with ID = IntID is received */
+
+} ACPI_GED_HANDLER_INFO;
/*****************************************************************************
*
@@ -786,13 +795,13 @@ typedef struct acpi_field_info
UINT8 DescriptorType; /* To differentiate various internal objs */\
UINT8 Flags; \
UINT16 Value; \
- UINT16 State;
+ UINT16 State
/* There are 2 bytes available here until the next natural alignment boundary */
typedef struct acpi_common_state
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
} ACPI_COMMON_STATE;
@@ -801,7 +810,7 @@ typedef struct acpi_common_state
*/
typedef struct acpi_update_state
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
union acpi_operand_object *Object;
} ACPI_UPDATE_STATE;
@@ -812,7 +821,7 @@ typedef struct acpi_update_state
*/
typedef struct acpi_pkg_state
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
UINT32 Index;
union acpi_operand_object *SourceObject;
union acpi_operand_object *DestObject;
@@ -829,7 +838,7 @@ typedef struct acpi_pkg_state
*/
typedef struct acpi_control_state
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
UINT16 Opcode;
union acpi_parse_object *PredicateOp;
UINT8 *AmlPredicateStart; /* Start of if/while predicate */
@@ -844,7 +853,7 @@ typedef struct acpi_control_state
*/
typedef struct acpi_scope_state
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
ACPI_NAMESPACE_NODE *Node;
} ACPI_SCOPE_STATE;
@@ -852,7 +861,7 @@ typedef struct acpi_scope_state
typedef struct acpi_pscope_state
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
UINT32 ArgCount; /* Number of fixed arguments */
union acpi_parse_object *Op; /* Current op being parsed */
UINT8 *ArgEnd; /* Current argument end */
@@ -868,7 +877,7 @@ typedef struct acpi_pscope_state
*/
typedef struct acpi_thread_state
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
UINT8 CurrentSyncLevel; /* Mutex Sync (nested acquire) level */
struct acpi_walk_state *WalkStateList; /* Head of list of WalkStates for this thread */
union acpi_operand_object *AcquiredMutexList; /* List of all currently acquired mutexes */
@@ -883,7 +892,7 @@ typedef struct acpi_thread_state
*/
typedef struct acpi_result_values
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
union acpi_operand_object *ObjDesc [ACPI_RESULTS_FRAME_OBJ_NUM];
} ACPI_RESULT_VALUES;
@@ -914,7 +923,7 @@ typedef struct acpi_global_notify_handler
*/
typedef struct acpi_notify_info
{
- ACPI_STATE_COMMON
+ ACPI_STATE_COMMON;
UINT8 HandlerListId;
ACPI_NAMESPACE_NODE *Node;
union acpi_operand_object *HandlerListHead;
@@ -1403,6 +1412,8 @@ typedef struct acpi_port_info
#define ACPI_ADDRESS_TYPE_IO_RANGE 1
#define ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE 2
+#define ACPI_ADDRESS_TYPE_PCC_NUMBER 0xA
+
/* Resource descriptor types and masks */
#define ACPI_RESOURCE_NAME_LARGE 0x80
@@ -1452,7 +1463,8 @@ typedef struct acpi_port_info
#define ACPI_RESOURCE_NAME_PIN_GROUP 0x90
#define ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION 0x91
#define ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG 0x92
-#define ACPI_RESOURCE_NAME_LARGE_MAX 0x92
+#define ACPI_RESOURCE_NAME_CLOCK_INPUT 0x93
+#define ACPI_RESOURCE_NAME_LARGE_MAX 0x94
/*****************************************************************************
diff --git a/sys/contrib/dev/acpica/include/acmacros.h b/sys/contrib/dev/acpica/include/acmacros.h
index 11fd47cc3cab..eabe403b3998 100644
--- a/sys/contrib/dev/acpica/include/acmacros.h
+++ b/sys/contrib/dev/acpica/include/acmacros.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acnames.h b/sys/contrib/dev/acpica/include/acnames.h
index 846d192b229d..070e318fb8cc 100644
--- a/sys/contrib/dev/acpica/include/acnames.h
+++ b/sys/contrib/dev/acpica/include/acnames.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -164,6 +164,7 @@
#define METHOD_NAME__DDN "_DDN"
#define METHOD_NAME__DIS "_DIS"
#define METHOD_NAME__DMA "_DMA"
+#define METHOD_NAME__EVT "_EVT"
#define METHOD_NAME__HID "_HID"
#define METHOD_NAME__INI "_INI"
#define METHOD_NAME__PLD "_PLD"
diff --git a/sys/contrib/dev/acpica/include/acnamesp.h b/sys/contrib/dev/acpica/include/acnamesp.h
index 7b8d069d6b26..41f704b3d74b 100644
--- a/sys/contrib/dev/acpica/include/acnamesp.h
+++ b/sys/contrib/dev/acpica/include/acnamesp.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acobject.h b/sys/contrib/dev/acpica/include/acobject.h
index b2c9dd9b7a0f..95be1a95b4c7 100644
--- a/sys/contrib/dev/acpica/include/acobject.h
+++ b/sys/contrib/dev/acpica/include/acobject.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -191,7 +191,7 @@
UINT8 DescriptorType; /* To differentiate various internal objs */\
UINT8 Type; /* ACPI_OBJECT_TYPE */\
UINT16 ReferenceCount; /* For object deletion management */\
- UINT8 Flags;
+ UINT8 Flags
/*
* Note: There are 3 bytes available here before the
* next natural alignment boundary (for both 32/64 cases)
@@ -216,14 +216,14 @@
typedef struct acpi_object_common
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
} ACPI_OBJECT_COMMON;
typedef struct acpi_object_integer
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
UINT8 Fill[3]; /* Prevent warning on some compilers */
UINT64 Value;
@@ -238,23 +238,23 @@ typedef struct acpi_object_integer
*/
#define ACPI_COMMON_BUFFER_INFO(_Type) \
_Type *Pointer; \
- UINT32 Length;
+ UINT32 Length
/* Null terminated, ASCII characters only */
typedef struct acpi_object_string
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_BUFFER_INFO (char) /* String in AML stream or allocated string */
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_BUFFER_INFO(char); /* String in AML stream or allocated string */
} ACPI_OBJECT_STRING;
typedef struct acpi_object_buffer
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_BUFFER_INFO (UINT8) /* Buffer in AML stream or allocated buffer */
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_BUFFER_INFO(UINT8); /* Buffer in AML stream or allocated buffer */
UINT32 AmlLength;
UINT8 *AmlStart;
ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */
@@ -264,7 +264,7 @@ typedef struct acpi_object_buffer
typedef struct acpi_object_package
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */
union acpi_operand_object **Elements; /* Array of pointers to AcpiObjects */
UINT8 *AmlStart;
@@ -282,7 +282,7 @@ typedef struct acpi_object_package
typedef struct acpi_object_event
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
ACPI_SEMAPHORE OsSemaphore; /* Actual OS synchronization object */
} ACPI_OBJECT_EVENT;
@@ -290,7 +290,7 @@ typedef struct acpi_object_event
typedef struct acpi_object_mutex
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
UINT8 SyncLevel; /* 0-15, specified in Mutex() call */
UINT16 AcquisitionDepth; /* Allow multiple Acquires, same thread */
ACPI_MUTEX OsMutex; /* Actual OS synchronization object */
@@ -306,7 +306,7 @@ typedef struct acpi_object_mutex
typedef struct acpi_object_region
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
UINT8 SpaceId;
ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */
union acpi_operand_object *Handler; /* Handler for region access */
@@ -320,7 +320,7 @@ typedef struct acpi_object_region
typedef struct acpi_object_method
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
UINT8 InfoFlags;
UINT8 ParamCount;
UINT8 SyncLevel;
@@ -360,22 +360,22 @@ typedef struct acpi_object_method
*/
#define ACPI_COMMON_NOTIFY_INFO \
union acpi_operand_object *NotifyList[2]; /* Handlers for system/device notifies */\
- union acpi_operand_object *Handler; /* Handler for Address space */
+ union acpi_operand_object *Handler /* Handler for Address space */
/* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
typedef struct acpi_object_notify_common
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_NOTIFY_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_NOTIFY_INFO;
} ACPI_OBJECT_NOTIFY_COMMON;
typedef struct acpi_object_device
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_NOTIFY_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_NOTIFY_INFO;
ACPI_GPE_BLOCK_INFO *GpeBlock;
} ACPI_OBJECT_DEVICE;
@@ -383,8 +383,8 @@ typedef struct acpi_object_device
typedef struct acpi_object_power_resource
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_NOTIFY_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_NOTIFY_INFO;
UINT32 SystemLevel;
UINT32 ResourceOrder;
@@ -393,13 +393,13 @@ typedef struct acpi_object_power_resource
typedef struct acpi_object_processor
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
/* The next two fields take advantage of the 3-byte space before NOTIFY_INFO */
UINT8 ProcId;
UINT8 Length;
- ACPI_COMMON_NOTIFY_INFO
+ ACPI_COMMON_NOTIFY_INFO;
ACPI_IO_ADDRESS Address;
} ACPI_OBJECT_PROCESSOR;
@@ -407,8 +407,8 @@ typedef struct acpi_object_processor
typedef struct acpi_object_thermal_zone
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_NOTIFY_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_NOTIFY_INFO;
} ACPI_OBJECT_THERMAL_ZONE;
@@ -433,14 +433,14 @@ typedef struct acpi_object_thermal_zone
UINT32 BaseByteOffset; /* Byte offset within containing object */\
UINT32 Value; /* Value to store into the Bank or Index register */\
UINT8 StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\
- UINT8 AccessLength; /* For serial regions/fields */
+ UINT8 AccessLength /* For serial regions/fields */
/* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
typedef struct acpi_object_field_common
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_FIELD_INFO;
union acpi_operand_object *RegionObj; /* Parent Operation Region object (REGION/BANK fields only) */
} ACPI_OBJECT_FIELD_COMMON;
@@ -448,8 +448,8 @@ typedef struct acpi_object_field_common
typedef struct acpi_object_region_field
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_FIELD_INFO;
UINT16 ResourceLength;
union acpi_operand_object *RegionObj; /* Containing OpRegion object */
UINT8 *ResourceBuffer; /* ResourceTemplate for serial regions/fields */
@@ -461,8 +461,8 @@ typedef struct acpi_object_region_field
typedef struct acpi_object_bank_field
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_FIELD_INFO;
union acpi_operand_object *RegionObj; /* Containing OpRegion object */
union acpi_operand_object *BankObj; /* BankSelect Register object */
@@ -471,8 +471,8 @@ typedef struct acpi_object_bank_field
typedef struct acpi_object_index_field
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_FIELD_INFO;
/*
* No "RegionObj" pointer needed since the Index and Data registers
@@ -488,8 +488,8 @@ typedef struct acpi_object_index_field
typedef struct acpi_object_buffer_field
{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
+ ACPI_OBJECT_COMMON_HEADER;
+ ACPI_COMMON_FIELD_INFO;
BOOLEAN IsCreateField; /* Special case for objects created by CreateField() */
union acpi_operand_object *BufferObj; /* Containing Buffer object */
@@ -504,7 +504,7 @@ typedef struct acpi_object_buffer_field
typedef struct acpi_object_notify_handler
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
ACPI_NAMESPACE_NODE *Node; /* Parent device */
UINT32 HandlerType; /* Type: Device/System/Both */
ACPI_NOTIFY_HANDLER Handler; /* Handler address */
@@ -516,7 +516,7 @@ typedef struct acpi_object_notify_handler
typedef struct acpi_object_addr_handler
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
UINT8 SpaceId;
UINT8 HandlerFlags;
ACPI_ADR_SPACE_HANDLER Handler;
@@ -547,7 +547,7 @@ typedef struct acpi_object_addr_handler
*/
typedef struct acpi_object_reference
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
UINT8 Class; /* Reference Class */
UINT8 TargetType; /* Used for Index Op */
UINT8 Resolved; /* Reference has been resolved to a value */
@@ -585,7 +585,7 @@ typedef enum
*/
typedef struct acpi_object_extra
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
ACPI_NAMESPACE_NODE *Method_REG; /* _REG method for this region (if any) */
ACPI_NAMESPACE_NODE *ScopeNode;
void *RegionContext; /* Region-specific data */
@@ -599,7 +599,7 @@ typedef struct acpi_object_extra
typedef struct acpi_object_data
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
ACPI_OBJECT_HANDLER Handler;
void *Pointer;
@@ -610,7 +610,7 @@ typedef struct acpi_object_data
typedef struct acpi_object_cache_list
{
- ACPI_OBJECT_COMMON_HEADER
+ ACPI_OBJECT_COMMON_HEADER;
union acpi_operand_object *Next; /* Link for object cache and internal lists*/
} ACPI_OBJECT_CACHE_LIST;
diff --git a/sys/contrib/dev/acpica/include/acopcode.h b/sys/contrib/dev/acpica/include/acopcode.h
index 7e54a47f7063..c8d17c3554d0 100644
--- a/sys/contrib/dev/acpica/include/acopcode.h
+++ b/sys/contrib/dev/acpica/include/acopcode.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acoutput.h b/sys/contrib/dev/acpica/include/acoutput.h
index cd3d26d52a22..49a466dba33a 100644
--- a/sys/contrib/dev/acpica/include/acoutput.h
+++ b/sys/contrib/dev/acpica/include/acoutput.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -336,6 +336,7 @@
*/
#ifndef ACPI_NO_ERROR_MESSAGES
#define AE_INFO _AcpiModuleName, __LINE__
+#define ACPI_ONCE(_fn, _plist) { static char _done; if (!_done) { _done = 1; _fn _plist; } }
/*
* Error reporting. Callers module and line number are inserted by AE_INFO,
@@ -344,8 +345,10 @@
*/
#define ACPI_INFO(plist) AcpiInfo plist
#define ACPI_WARNING(plist) AcpiWarning plist
+#define ACPI_WARNING_ONCE(plist) ACPI_ONCE(AcpiWarning, plist)
#define ACPI_EXCEPTION(plist) AcpiException plist
#define ACPI_ERROR(plist) AcpiError plist
+#define ACPI_ERROR_ONCE(plist) ACPI_ONCE(AcpiError, plist)
#define ACPI_BIOS_WARNING(plist) AcpiBiosWarning plist
#define ACPI_BIOS_EXCEPTION(plist) AcpiBiosException plist
#define ACPI_BIOS_ERROR(plist) AcpiBiosError plist
@@ -357,8 +360,10 @@
#define ACPI_INFO(plist)
#define ACPI_WARNING(plist)
+#define ACPI_WARNING_ONCE(plist)
#define ACPI_EXCEPTION(plist)
#define ACPI_ERROR(plist)
+#define ACPI_ERROR_ONCE(plist)
#define ACPI_BIOS_WARNING(plist)
#define ACPI_BIOS_EXCEPTION(plist)
#define ACPI_BIOS_ERROR(plist)
diff --git a/sys/contrib/dev/acpica/include/acparser.h b/sys/contrib/dev/acpica/include/acparser.h
index 4437d612ea63..8b3d3702f4a2 100644
--- a/sys/contrib/dev/acpica/include/acparser.h
+++ b/sys/contrib/dev/acpica/include/acparser.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acpi.h b/sys/contrib/dev/acpica/include/acpi.h
index a07055d2e895..07e5e93e2309 100644
--- a/sys/contrib/dev/acpica/include/acpi.h
+++ b/sys/contrib/dev/acpica/include/acpi.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acpiosxf.h b/sys/contrib/dev/acpica/include/acpiosxf.h
index 98b8ad6e880b..77a22eee7442 100644
--- a/sys/contrib/dev/acpica/include/acpiosxf.h
+++ b/sys/contrib/dev/acpica/include/acpiosxf.h
@@ -10,7 +10,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/acpixf.h b/sys/contrib/dev/acpica/include/acpixf.h
index 6f992916708e..b5961e21bb9b 100644
--- a/sys/contrib/dev/acpica/include/acpixf.h
+++ b/sys/contrib/dev/acpica/include/acpixf.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -154,7 +154,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
-#define ACPI_CA_VERSION 0x20220331
+#define ACPI_CA_VERSION 0x20250807
#include <contrib/dev/acpica/include/acconfig.h>
#include <contrib/dev/acpica/include/actypes.h>
@@ -358,6 +358,12 @@ ACPI_INIT_GLOBAL (UINT8, AcpiGbl_OsiData, 0);
ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_ReducedHardware, FALSE);
/*
+ * ACPI Global Lock is mainly used for systems with SMM, so no-SMM systems
+ * (such as LoongArch) may not have and not use Global Lock.
+ */
+ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_UseGlobalLock, TRUE);
+
+/*
* Maximum timeout for While() loop iterations before forced method abort.
* This mechanism is intended to prevent infinite loops during interpreter
* execution within a host kernel.
@@ -770,7 +776,7 @@ ACPI_EXTERNAL_RETURN_STATUS (
ACPI_STATUS
AcpiGetHandle (
ACPI_HANDLE Parent,
- ACPI_STRING Pathname,
+ const char *Pathname,
ACPI_HANDLE *RetHandle))
ACPI_EXTERNAL_RETURN_STATUS (
@@ -944,6 +950,21 @@ AcpiInstallAddressSpaceHandler (
ACPI_EXTERNAL_RETURN_STATUS (
ACPI_STATUS
+AcpiInstallAddressSpaceHandlerNo_Reg(
+ ACPI_HANDLE Device,
+ ACPI_ADR_SPACE_TYPE SpaceId,
+ ACPI_ADR_SPACE_HANDLER Handler,
+ ACPI_ADR_SPACE_SETUP Setup,
+ void *Context))
+
+ACPI_EXTERNAL_RETURN_STATUS (
+ACPI_STATUS
+AcpiExecuteRegMethods (
+ ACPI_HANDLE Device,
+ ACPI_ADR_SPACE_TYPE SpaceId))
+
+ACPI_EXTERNAL_RETURN_STATUS (
+ACPI_STATUS
AcpiRemoveAddressSpaceHandler (
ACPI_HANDLE Device,
ACPI_ADR_SPACE_TYPE SpaceId,
@@ -1280,7 +1301,7 @@ ACPI_STATUS
AcpiLeaveSleepState (
UINT8 SleepState))
-ACPI_HW_DEPENDENT_RETURN_STATUS (
+ACPI_EXTERNAL_RETURN_STATUS (
ACPI_STATUS
AcpiSetFirmwareWakingVector (
ACPI_PHYSICAL_ADDRESS PhysicalAddress,
diff --git a/sys/contrib/dev/acpica/include/acpredef.h b/sys/contrib/dev/acpica/include/acpredef.h
index 9ad8c0ffcc38..91fd49723b7f 100644
--- a/sys/contrib/dev/acpica/include/acpredef.h
+++ b/sys/contrib/dev/acpica/include/acpredef.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -579,12 +579,15 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] =
{{"_DOS", METHOD_1ARGS (ACPI_TYPE_INTEGER),
METHOD_NO_RETURN_VALUE}},
+
+ { {"_DSC", METHOD_0ARGS,
+ METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
{{"_DSD", METHOD_0ARGS, /* ACPI 6.0 */
METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */
PACKAGE_INFO (ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1, ACPI_RTYPE_PACKAGE, 1,0),
- {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_PACKAGE),
+ {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_ANY) | ARG_COUNT_IS_MINIMUM,
METHOD_RETURNS (ACPI_RTYPE_ALL)}}, /* Must return a value, but it can be of any type */
{{"_DSS", METHOD_1ARGS (ACPI_TYPE_INTEGER),
diff --git a/sys/contrib/dev/acpica/include/acresrc.h b/sys/contrib/dev/acpica/include/acresrc.h
index 36eb9ba8dbbb..2e3c7d3d1d40 100644
--- a/sys/contrib/dev/acpica/include/acresrc.h
+++ b/sys/contrib/dev/acpica/include/acresrc.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -506,6 +506,7 @@ extern ACPI_RSCONVERT_INFO AcpiRsConvertPinConfig[];
extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroup[];
extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupFunction[];
extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupConfig[];
+extern ACPI_RSCONVERT_INFO AcpiRsConvertClockInput[];
/* These resources require separate get/set tables */
@@ -562,6 +563,7 @@ extern ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[];
extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroup[];
extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroupFunction[];
extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroupConfig[];
+extern ACPI_RSDUMP_INFO AcpiRsDumpClockInput[];
#endif
#endif /* __ACRESRC_H__ */
diff --git a/sys/contrib/dev/acpica/include/acrestyp.h b/sys/contrib/dev/acpica/include/acrestyp.h
index f045c2000b71..ab48a3911ae6 100644
--- a/sys/contrib/dev/acpica/include/acrestyp.h
+++ b/sys/contrib/dev/acpica/include/acrestyp.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -290,7 +290,10 @@ typedef struct acpi_resource_irq
UINT8 Shareable;
UINT8 WakeCapable;
UINT8 InterruptCount;
- UINT8 Interrupts[1];
+ union {
+ UINT8 Interrupt;
+ ACPI_FLEX_ARRAY(UINT8, Interrupts);
+ };
} ACPI_RESOURCE_IRQ;
@@ -300,7 +303,10 @@ typedef struct acpi_resource_dma
UINT8 BusMaster;
UINT8 Transfer;
UINT8 ChannelCount;
- UINT8 Channels[1];
+ union {
+ UINT8 Channel;
+ ACPI_FLEX_ARRAY(UINT8, Channels);
+ };
} ACPI_RESOURCE_DMA;
@@ -357,7 +363,7 @@ typedef struct acpi_resource_fixed_dma
typedef struct acpi_resource_vendor
{
UINT16 ByteLength;
- UINT8 ByteData[1];
+ UINT8 ByteData[];
} ACPI_RESOURCE_VENDOR;
@@ -368,7 +374,7 @@ typedef struct acpi_resource_vendor_typed
UINT16 ByteLength;
UINT8 UuidSubtype;
UINT8 Uuid[ACPI_UUID_LENGTH];
- UINT8 ByteData[1];
+ UINT8 ByteData[];
} ACPI_RESOURCE_VENDOR_TYPED;
@@ -538,7 +544,10 @@ typedef struct acpi_resource_extended_irq
UINT8 WakeCapable;
UINT8 InterruptCount;
ACPI_RESOURCE_SOURCE ResourceSource;
- UINT32 Interrupts[1];
+ union {
+ UINT32 Interrupt;
+ ACPI_FLEX_ARRAY(UINT32, Interrupts);
+ };
} ACPI_RESOURCE_EXTENDED_IRQ;
@@ -770,6 +779,16 @@ typedef struct acpi_resource_pin_config
} ACPI_RESOURCE_PIN_CONFIG;
+typedef struct acpi_resource_clock_input
+{
+ UINT8 RevisionId;
+ UINT8 Mode;
+ UINT8 Scale;
+ UINT16 FrequencyDivisor;
+ UINT32 FrequencyNumerator;
+ ACPI_RESOURCE_SOURCE ResourceSource;
+} ACPI_RESOURCE_CLOCK_INPUT;
+
/* Values for PinConfigType field above */
#define ACPI_PIN_CONFIG_DEFAULT 0
@@ -853,7 +872,8 @@ typedef struct acpi_resource_pin_group_config
#define ACPI_RESOURCE_TYPE_PIN_GROUP 22 /* ACPI 6.2 */
#define ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION 23 /* ACPI 6.2 */
#define ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG 24 /* ACPI 6.2 */
-#define ACPI_RESOURCE_TYPE_MAX 24
+#define ACPI_RESOURCE_TYPE_CLOCK_INPUT 25 /* ACPI 6.5 */
+#define ACPI_RESOURCE_TYPE_MAX 25
/* Master union for resource descriptors */
@@ -888,6 +908,7 @@ typedef union acpi_resource_data
ACPI_RESOURCE_PIN_GROUP PinGroup;
ACPI_RESOURCE_PIN_GROUP_FUNCTION PinGroupFunction;
ACPI_RESOURCE_PIN_GROUP_CONFIG PinGroupConfig;
+ ACPI_RESOURCE_CLOCK_INPUT ClockInput;
/* Common fields */
@@ -927,8 +948,10 @@ typedef struct acpi_pci_routing_table
UINT32 Pin;
UINT64 Address; /* here for 64-bit alignment */
UINT32 SourceIndex;
- char Source[4]; /* pad to 64 bits so sizeof() works in all cases */
-
+ union {
+ char Pad[4]; /* pad to 64 bits so sizeof() works in all cases */
+ ACPI_FLEX_ARRAY(char, Source);
+ };
} ACPI_PCI_ROUTING_TABLE;
#endif /* __ACRESTYP_H__ */
diff --git a/sys/contrib/dev/acpica/include/acstruct.h b/sys/contrib/dev/acpica/include/acstruct.h
index d50c7a1b6468..b1c54f09fe55 100644
--- a/sys/contrib/dev/acpica/include/acstruct.h
+++ b/sys/contrib/dev/acpica/include/acstruct.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/actables.h b/sys/contrib/dev/acpica/include/actables.h
index 40b79a47c219..6f2cacbde3a1 100644
--- a/sys/contrib/dev/acpica/include/actables.h
+++ b/sys/contrib/dev/acpica/include/actables.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -345,16 +345,6 @@ AcpiTbPrintTableHeader(
ACPI_PHYSICAL_ADDRESS Address,
ACPI_TABLE_HEADER *Header);
-UINT8
-AcpiTbChecksum (
- UINT8 *Buffer,
- UINT32 Length);
-
-ACPI_STATUS
-AcpiTbVerifyChecksum (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length);
-
void
AcpiTbCheckDsdtHeader (
void);
diff --git a/sys/contrib/dev/acpica/include/actbinfo.h b/sys/contrib/dev/acpica/include/actbinfo.h
index 633f7349b390..fdf2a989ef6b 100644
--- a/sys/contrib/dev/acpica/include/actbinfo.h
+++ b/sys/contrib/dev/acpica/include/actbinfo.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -153,6 +153,7 @@
* Macros used to generate offsets to specific table fields
*/
#define ACPI_AGDI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_AGDI,f)
+#define ACPI_ASPT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_ASPT,f)
#define ACPI_FACS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_FACS,f)
#define ACPI_GAS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f)
#define ACPI_HDR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_HEADER,f)
@@ -161,6 +162,7 @@
#define ACPI_BERT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BERT,f)
#define ACPI_BGRT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BGRT,f)
#define ACPI_BOOT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_BOOT,f)
+#define ACPI_CCEL_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_CCEL,f)
#define ACPI_CPEP_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_CPEP,f)
#define ACPI_DBG2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DBG2,f)
#define ACPI_DBGP_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DBGP,f)
@@ -168,6 +170,7 @@
#define ACPI_DRTM_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_DRTM,f)
#define ACPI_ECDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_ECDT,f)
#define ACPI_EINJ_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_EINJ,f)
+#define ACPI_ERDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_ERDT,f)
#define ACPI_ERST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_ERST,f)
#define ACPI_GTDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_GTDT,f)
#define ACPI_HEST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_HEST,f)
@@ -179,14 +182,17 @@
#define ACPI_MCFG_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MCFG,f)
#define ACPI_MCHI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MCHI,f)
#define ACPI_MPST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MPST,f)
+#define ACPI_MRRM_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MRRM,f)
#define ACPI_MSCT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MSCT,f)
#define ACPI_NFIT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_NFIT,f)
-#define ACPI_NHLT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_NHLT,f)
#define ACPI_PCCT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PCCT,f)
#define ACPI_PDTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PDTT,f)
#define ACPI_PMTT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PMTT,f)
#define ACPI_RASF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RASF,f)
+#define ACPI_RAS2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RAS2,f)
#define ACPI_RGRT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RGRT,f)
+#define ACPI_RHCT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RHCT,f)
+#define ACPI_RIMT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_RIMT,f)
#define ACPI_S3PT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_S3PT,f)
#define ACPI_SBST_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SBST,f)
#define ACPI_SDEI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SDEI,f)
@@ -222,9 +228,17 @@
#define ACPI_AEST1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_MEMORY,f)
#define ACPI_AEST2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_SMMU,f)
#define ACPI_AEST3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_VENDOR,f)
+#define ACPI_AEST3A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_VENDOR_V2,f)
#define ACPI_AEST4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_GIC,f)
+#define ACPI_AEST5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PCIE,f)
+#define ACPI_AEST6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PROXY,f)
#define ACPI_AEST0D_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE,f)
+#define ACPI_AEST0DH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_HEADER,f)
+#define ACPI_AEST0D4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_4K,f)
+#define ACPI_AEST0D16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_16K,f)
+#define ACPI_AEST0D64_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_64K,f)
#define ACPI_AEST0E_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERRUPT,f)
+#define ACPI_AEST0EA_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERRUPT_V2,f)
#define ACPI_APMTN_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_APMT_NODE,f)
#define ACPI_ASF0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_INFO,f)
#define ACPI_ASF1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT,f)
@@ -233,10 +247,25 @@
#define ACPI_ASF2a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f)
#define ACPI_ASF3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_RMCP,f)
#define ACPI_ASF4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ADDRESS,f)
+#define ACPI_ASPTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_HEADER,f)
+#define ACPI_ASPT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_GLOBAL_REGS,f)
+#define ACPI_ASPT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_SEV_MBOX_REGS,f)
+#define ACPI_ASPT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASPT_ACPI_MBOX_REGS,f)
+#define ACPI_CDAT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_CDAT,f)
+#define ACPI_CDATH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_HEADER,f)
+#define ACPI_CDAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSMAS,f)
+#define ACPI_CDAT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSLBIS,f)
+#define ACPI_CDAT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSMSCIS,f)
+#define ACPI_CDAT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSIS,f)
+#define ACPI_CDAT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_DSEMTS,f)
+#define ACPI_CDAT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_SSLBIS,f)
+#define ACPI_CDATE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CDAT_SSLBE,f)
#define ACPI_CEDT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_HEADER, f)
#define ACPI_CEDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CHBS, f)
#define ACPI_CEDT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS, f)
#define ACPI_CEDT1_TE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS_TARGET_ELEMENT, f)
+#define ACPI_CEDT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CXIMS, f)
+#define ACPI_CEDT2_TE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CXIMS_TARGET_ELEMENT, f)
#define ACPI_CPEP0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
#define ACPI_CSRT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_GROUP,f)
#define ACPI_CSRT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_SHARED_INFO,f)
@@ -249,11 +278,25 @@
#define ACPI_DMAR3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_RHSA,f)
#define ACPI_DMAR4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_ANDD,f)
#define ACPI_DMAR5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_SATC,f)
+#define ACPI_DMAR6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DMAR_SIDP,f)
#define ACPI_DRTM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST,f)
#define ACPI_DRTM1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST,f)
#define ACPI_DRTM1a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_RESOURCE,f)
#define ACPI_DRTM2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_DRTM_DPS_ID,f)
#define ACPI_EINJ0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_WHEA_HEADER,f)
+#define ACPI_ERDT_HDR_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTBL_HDR_16,f)
+#define ACPI_ERDT_CACD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_CACD,f)
+#define ACPI_ERDT_CARC_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_CARC,f)
+#define ACPI_ERDT_CARD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_CARD,f)
+#define ACPI_ERDT_CMRC_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_CMRC,f)
+#define ACPI_ERDT_CMRD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_CMRD,f)
+#define ACPI_ERDT_DACD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_DACD,f)
+#define ACPI_ERDT_DACD_PATH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_DACD_PATHS,f)
+#define ACPI_ERDT_IBAD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_IBAD,f)
+#define ACPI_ERDT_IBRD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_IBRD,f)
+#define ACPI_ERDT_MARC_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_MARC,f)
+#define ACPI_ERDT_MMRC_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_MMRC,f)
+#define ACPI_ERDT_RMDD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ERDT_RMDD,f)
#define ACPI_ERST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_WHEA_HEADER,f)
#define ACPI_FPDTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f)
#define ACPI_FPDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_BOOT_POINTER,f)
@@ -318,14 +361,36 @@
#define ACPI_MADT14_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f)
#define ACPI_MADT15_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f)
#define ACPI_MADT16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MULTIPROC_WAKEUP,f)
-#define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f)
+#define ACPI_MADT17_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_CORE_PIC,f)
+#define ACPI_MADT18_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_LIO_PIC,f)
+#define ACPI_MADT19_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_HT_PIC,f)
+#define ACPI_MADT20_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_EIO_PIC,f)
+#define ACPI_MADT21_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MSI_PIC,f)
+#define ACPI_MADT22_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_BIO_PIC,f)
+#define ACPI_MADT23_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_LPC_PIC,f)
+#define ACPI_MADT24_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_RINTC,f)
+#define ACPI_MADT25_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_IMSIC,f)
+#define ACPI_MADT26_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_APLIC,f)
+#define ACPI_MADT27_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_PLIC,f)
+#define ACPI_MADT128_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,f)
#define ACPI_MADTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f)
#define ACPI_MCFG0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f)
+#define ACPI_MPAM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_MSC_NODE,f)
+#define ACPI_MPAM1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_NODE,f)
+#define ACPI_MPAM1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_CACHE_LOCATOR,f)
+#define ACPI_MPAM1B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_MEMORY_LOCATOR,f)
+#define ACPI_MPAM1C_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_SMMU_INTERFACE,f)
+#define ACPI_MPAM1D_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE,f)
+#define ACPI_MPAM1E_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_ACPI_INTERFACE,f)
+#define ACPI_MPAM1F_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE,f)
+#define ACPI_MPAM1G_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_RESOURCE_GENERIC_LOCATOR,f)
+#define ACPI_MPAM2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPAM_FUNC_DEPS,f)
#define ACPI_MPST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_NODE,f)
#define ACPI_MPST0A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_STATE,f)
#define ACPI_MPST0B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_COMPONENT,f)
#define ACPI_MPST1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_DATA_HDR,f)
#define ACPI_MPST2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_DATA,f)
+#define ACPI_MRRM0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MRRM_MEM_RANGE_ENTRY,f)
#define ACPI_MSCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MSCT_PROXIMITY,f)
#define ACPI_NFITH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_HEADER,f)
#define ACPI_NFIT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_SYSTEM_ADDRESS,f)
@@ -336,21 +401,6 @@
#define ACPI_NFIT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_DATA_REGION,f)
#define ACPI_NFIT6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_FLUSH_ADDRESS,f)
#define ACPI_NFIT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NFIT_CAPABILITIES,f)
-#define ACPI_NHLT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_ENDPOINT,f)
-#define ACPI_NHLT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG,f)
-#define ACPI_NHLT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_WAVE_EXTENSIBLE,f)
-#define ACPI_NHLT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_FORMAT_CONFIG,f)
-#define ACPI_NHLT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_FORMATS_CONFIG,f)
-#define ACPI_NHLT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG,f)
-#define ACPI_NHLT5A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A,f)
-#define ACPI_NHLT5B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B,f)
-#define ACPI_NHLT5C_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C,f)
-#define ACPI_NHLT6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_VENDOR_MIC_CONFIG,f)
-#define ACPI_NHLT6A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_VENDOR_MIC_COUNT,f)
-#define ACPI_NHLT6B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG,f)
-#define ACPI_NHLT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_INFO_COUNT,f)
-#define ACPI_NHLT7A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_DEVICE_INFO,f)
-#define ACPI_NHLT9_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION,f)
#define ACPI_PCCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_SUBSPACE,f)
#define ACPI_PCCT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED,f)
#define ACPI_PCCT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED_TYPE2,f)
@@ -375,6 +425,18 @@
#define ACPI_PRMTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_PRMT_HEADER,f)
#define ACPI_PRMT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_MODULE_INFO,f)
#define ACPI_PRMT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PRMT_HANDLER_INFO,f)
+#define ACPI_RAS2_PCC_DESC_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RAS2_PCC_DESC,f)
+#define ACPI_RHCTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_NODE_HEADER,f)
+#define ACPI_RHCT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_ISA_STRING,f)
+#define ACPI_RHCT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_CMO_NODE,f)
+#define ACPI_RHCT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_MMU_NODE,f)
+#define ACPI_RHCTFFFF_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RHCT_HART_INFO,f)
+#define ACPI_RIMTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RIMT_NODE,f)
+#define ACPI_RIMTI_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RIMT_IOMMU,f)
+#define ACPI_RIMTW_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RIMT_IOMMU_WIRE_GSI,f)
+#define ACPI_RIMTP_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RIMT_PCIE_RC,f)
+#define ACPI_RIMTM_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RIMT_ID_MAPPING,f)
+#define ACPI_RIMTN_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_RIMT_PLATFORM_DEVICE,f)
#define ACPI_S3PTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f)
#define ACPI_S3PT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f)
#define ACPI_S3PT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_SUSPEND,f)
@@ -394,6 +456,7 @@
#define ACPI_SRAT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GICC_AFFINITY,f)
#define ACPI_SRAT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GIC_ITS_AFFINITY,f)
#define ACPI_SRAT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f)
+#define ACPI_SRAT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_RINTC_AFFINITY,f)
#define ACPI_SVKL0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SVKL_KEY,f)
#define ACPI_TCPA_CLIENT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_CLIENT,f)
#define ACPI_TCPA_SERVER_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_SERVER,f)
@@ -417,11 +480,14 @@
#define ACPI_AEST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_PROCESSOR,f,o)
#define ACPI_AEST0D_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERFACE,f,o)
#define ACPI_AEST0E_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERRUPT,f,o)
+#define ACPI_AEST0EA_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERRUPT_V2,f,o)
#define ACPI_AGDI_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_AGDI,f,o)
#define ACPI_APMTN_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_APMT_NODE,f,o)
#define ACPI_BGRT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_BGRT,f,o)
+#define ACPI_DMAR0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_DMAR_HARDWARE_UNIT,f,o)
#define ACPI_DRTM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_DRTM,f,o)
#define ACPI_DRTM1a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_DRTM_RESOURCE,f,o)
+#define ACPI_ERDT_RMDD_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_ERDT_RMDD,f,o)
#define ACPI_FADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_FADT,f,o)
#define ACPI_FACS_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_FACS,f,o)
#define ACPI_HPET_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_HPET,f,o)
@@ -433,6 +499,7 @@
#define ACPI_SRAT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o)
#define ACPI_SRAT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_GICC_AFFINITY,f,o)
#define ACPI_SRAT5_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f,o)
+#define ACPI_SRAT7_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_RINTC_AFFINITY,f,o)
#define ACPI_GTDT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_GTDT,f,o)
#define ACPI_GTDT0a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_GTDT_TIMER_ENTRY,f,o)
#define ACPI_GTDT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_GTDT_WATCHDOG,f,o)
@@ -459,6 +526,8 @@
#define ACPI_MADT10_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC_NMI,f,o)
#define ACPI_MADT11_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_INTERRUPT,f,o)
#define ACPI_MADT13_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_MSI_FRAME,f,o)
+#define ACPI_MADT14_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f,o)
+#define ACPI_MADT15_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f,o)
#define ACPI_MPST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MPST_POWER_NODE,f,o)
#define ACPI_MPST2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MPST_POWER_DATA,f,o)
#define ACPI_NFIT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_NFIT_SYSTEM_ADDRESS,f,o)
diff --git a/sys/contrib/dev/acpica/include/actbl.h b/sys/contrib/dev/acpica/include/actbl.h
index ae3801f43450..ae52bd452c90 100644
--- a/sys/contrib/dev/acpica/include/actbl.h
+++ b/sys/contrib/dev/acpica/include/actbl.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -213,15 +213,15 @@
typedef struct acpi_table_header
{
- char Signature[ACPI_NAMESEG_SIZE]; /* ASCII table signature */
- UINT32 Length; /* Length of table in bytes, including this header */
- UINT8 Revision; /* ACPI Specification minor version number */
- UINT8 Checksum; /* To make sum of entire table == 0 */
- char OemId[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */
- char OemTableId[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
- UINT32 OemRevision; /* OEM revision number */
- char AslCompilerId[ACPI_NAMESEG_SIZE]; /* ASCII ASL compiler vendor ID */
- UINT32 AslCompilerRevision; /* ASL compiler version */
+ char Signature[ACPI_NAMESEG_SIZE] ACPI_NONSTRING; /* ASCII table signature */
+ UINT32 Length; /* Length of table in bytes, including this header */
+ UINT8 Revision; /* ACPI Specification minor version number */
+ UINT8 Checksum; /* To make sum of entire table == 0 */
+ char OemId[ACPI_OEM_ID_SIZE] ACPI_NONSTRING; /* ASCII OEM identification */
+ char OemTableId[ACPI_OEM_TABLE_ID_SIZE] ACPI_NONSTRING; /* ASCII OEM table identification */
+ UINT32 OemRevision; /* OEM revision number */
+ char AslCompilerId[ACPI_NAMESEG_SIZE] ACPI_NONSTRING; /* ASCII ASL compiler vendor ID */
+ UINT32 AslCompilerRevision; /* ASL compiler version */
} ACPI_TABLE_HEADER;
diff --git a/sys/contrib/dev/acpica/include/actbl1.h b/sys/contrib/dev/acpica/include/actbl1.h
index 3de78b0d8f01..ec04f0a0ab9f 100644
--- a/sys/contrib/dev/acpica/include/actbl1.h
+++ b/sys/contrib/dev/acpica/include/actbl1.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -170,6 +170,7 @@
*/
#define ACPI_SIG_AEST "AEST" /* Arm Error Source Table */
#define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */
+#define ACPI_SIG_ASPT "ASPT" /* AMD Secure Processor Table */
#define ACPI_SIG_BERT "BERT" /* Boot Error Record Table */
#define ACPI_SIG_BGRT "BGRT" /* Boot Graphics Resource Table */
#define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */
@@ -189,6 +190,7 @@
#define ACPI_SIG_HMAT "HMAT" /* Heterogeneous Memory Attributes Table */
#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */
#define ACPI_SIG_IBFT "IBFT" /* iSCSI Boot Firmware Table */
+#define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table*/
#define ACPI_SIG_S3PT "S3PT" /* S3 Performance (sub)Table */
#define ACPI_SIG_PCCS "PCC" /* PCC Shared Memory Region */
@@ -258,6 +260,16 @@ typedef struct acpi_whea_header
} ACPI_WHEA_HEADER;
+/* Larger subtable header (when Length can exceed 255) */
+
+typedef struct acpi_subtbl_hdr_16
+{
+ UINT16 Type;
+ UINT16 Length;
+
+} ACPI_SUBTBL_HDR_16;
+
+
/*******************************************************************************
*
* ASF - Alert Standard Format table (Signature "ASF!")
@@ -397,6 +409,86 @@ typedef struct acpi_asf_address
} ACPI_ASF_ADDRESS;
+/*******************************************************************************
+ *
+ * ASPT - AMD Secure Processor Table (Signature "ASPT")
+ * Revision 0x1
+ *
+ * Conforms to AMD Socket SP5/SP6 Platform ASPT Rev1 Specification,
+ * 12 September 2022
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_aspt
+{
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT32 NumEntries;
+
+} ACPI_TABLE_ASPT;
+
+
+/* ASPT subtable header */
+
+typedef struct acpi_aspt_header
+{
+ UINT16 Type;
+ UINT16 Length;
+
+} ACPI_ASPT_HEADER;
+
+
+/* Values for Type field above */
+
+enum AcpiAsptType
+{
+ ACPI_ASPT_TYPE_GLOBAL_REGS = 0,
+ ACPI_ASPT_TYPE_SEV_MBOX_REGS = 1,
+ ACPI_ASPT_TYPE_ACPI_MBOX_REGS = 2,
+ ACPI_ASPT_TYPE_UNKNOWN = 3,
+};
+
+/*
+ * ASPT subtables
+ */
+
+/* 0: ASPT Global Registers */
+
+typedef struct acpi_aspt_global_regs
+{
+ ACPI_ASPT_HEADER Header;
+ UINT32 Reserved;
+ UINT64 FeatureRegAddr;
+ UINT64 IrqEnRegAddr;
+ UINT64 IrqStRegAddr;
+
+} ACPI_ASPT_GLOBAL_REGS;
+
+
+/* 1: ASPT SEV Mailbox Registers */
+
+typedef struct acpi_aspt_sev_mbox_regs
+{
+ ACPI_ASPT_HEADER Header;
+ UINT8 MboxIrqId;
+ UINT8 Reserved[3];
+ UINT64 CmdRespRegAddr;
+ UINT64 CmdBufLoRegAddr;
+ UINT64 CmdBufHiRegAddr;
+
+} ACPI_ASPT_SEV_MBOX_REGS;
+
+
+/* 2: ASPT ACPI Mailbox Registers */
+
+typedef struct acpi_aspt_acpi_mbox_regs
+{
+ ACPI_ASPT_HEADER Header;
+ UINT32 Reserved1;
+ UINT64 CmdRespRegAddr;
+ UINT64 Reserved2[2];
+
+} ACPI_ASPT_ACPI_MBOX_REGS;
+
/*******************************************************************************
*
@@ -496,10 +588,155 @@ typedef struct acpi_table_boot
/*******************************************************************************
*
+ * CDAT - Coherent Device Attribute Table
+ * Version 1
+ *
+ * Conforms to the "Coherent Device Attribute Table (CDAT) Specification
+ " (Revision 1.01, October 2020.)
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_cdat
+{
+ UINT32 Length; /* Length of table in bytes, including this header */
+ UINT8 Revision; /* ACPI Specification minor version number */
+ UINT8 Checksum; /* To make sum of entire table == 0 */
+ UINT8 Reserved[6];
+ UINT32 Sequence; /* Used to detect runtime CDAT table changes */
+
+} ACPI_TABLE_CDAT;
+
+
+/* CDAT common subtable header */
+
+typedef struct acpi_cdat_header
+{
+ UINT8 Type;
+ UINT8 Reserved;
+ UINT16 Length;
+
+} ACPI_CDAT_HEADER;
+
+/* Values for Type field above */
+
+enum AcpiCdatType
+{
+ ACPI_CDAT_TYPE_DSMAS = 0,
+ ACPI_CDAT_TYPE_DSLBIS = 1,
+ ACPI_CDAT_TYPE_DSMSCIS = 2,
+ ACPI_CDAT_TYPE_DSIS = 3,
+ ACPI_CDAT_TYPE_DSEMTS = 4,
+ ACPI_CDAT_TYPE_SSLBIS = 5,
+ ACPI_CDAT_TYPE_RESERVED = 6 /* 6 through 0xFF are reserved */
+};
+
+
+/* Subtable 0: Device Scoped Memory Affinity Structure (DSMAS) */
+
+typedef struct acpi_cdat_dsmas
+{
+ UINT8 DsmadHandle;
+ UINT8 Flags;
+ UINT16 Reserved;
+ UINT64 DpaBaseAddress;
+ UINT64 DpaLength;
+
+} ACPI_CDAT_DSMAS;
+
+/* Flags for subtable above */
+
+#define ACPI_CDAT_DSMAS_NON_VOLATILE (1 << 2)
+#define ACPI_CDAT_DSMAS_SHAREABLE (1 << 3)
+#define ACPI_CDAT_DSMAS_READ_ONLY (1 << 6)
+
+
+/* Subtable 1: Device scoped Latency and Bandwidth Information Structure (DSLBIS) */
+
+typedef struct acpi_cdat_dslbis
+{
+ UINT8 Handle;
+ UINT8 Flags; /* If Handle matches a DSMAS handle, the definition of this field matches
+ * Flags field in HMAT System Locality Latency */
+ UINT8 DataType;
+ UINT8 Reserved;
+ UINT64 EntryBaseUnit;
+ UINT16 Entry[3];
+ UINT16 Reserved2;
+
+} ACPI_CDAT_DSLBIS;
+
+
+/* Subtable 2: Device Scoped Memory Side Cache Information Structure (DSMSCIS) */
+
+typedef struct acpi_cdat_dsmscis
+{
+ UINT8 DsmasHandle;
+ UINT8 Reserved[3];
+ UINT64 SideCacheSize;
+ UINT32 CacheAttributes;
+
+} ACPI_CDAT_DSMSCIS;
+
+
+/* Subtable 3: Device Scoped Initiator Structure (DSIS) */
+
+typedef struct acpi_cdat_dsis
+{
+ UINT8 Flags;
+ UINT8 Handle;
+ UINT16 Reserved;
+
+} ACPI_CDAT_DSIS;
+
+/* Flags for above subtable */
+
+#define ACPI_CDAT_DSIS_MEM_ATTACHED (1 << 0)
+
+
+/* Subtable 4: Device Scoped EFI Memory Type Structure (DSEMTS) */
+
+typedef struct acpi_cdat_dsemts
+{
+ UINT8 DsmasHandle;
+ UINT8 MemoryType;
+ UINT16 Reserved;
+ UINT64 DpaOffset;
+ UINT64 RangeLength;
+
+} ACPI_CDAT_DSEMTS;
+
+
+/* Subtable 5: Switch Scoped Latency and Bandwidth Information Structure (SSLBIS) */
+
+typedef struct acpi_cdat_sslbis
+{
+ UINT8 DataType;
+ UINT8 Reserved[3];
+ UINT64 EntryBaseUnit;
+
+} ACPI_CDAT_SSLBIS;
+
+
+/* Sub-subtable for above, SslbeEntries field */
+
+typedef struct acpi_cdat_sslbe
+{
+ UINT16 PortxId;
+ UINT16 PortyId;
+ UINT16 LatencyOrBandwidth;
+ UINT16 Reserved;
+
+} ACPI_CDAT_SSLBE;
+
+#define ACPI_CDAT_SSLBIS_US_PORT 0x0100
+#define ACPI_CDAT_SSLBIS_ANY_PORT 0xffff
+
+/*******************************************************************************
+ *
* CEDT - CXL Early Discovery Table
* Version 1
*
- * Conforms to the "CXL Early Discovery Table" (CXL 2.0)
+ * Conforms to the "CXL Early Discovery Table" (CXL 2.0, October 2020)
*
******************************************************************************/
@@ -525,7 +762,9 @@ enum AcpiCedtType
{
ACPI_CEDT_TYPE_CHBS = 0,
ACPI_CEDT_TYPE_CFMWS = 1,
- ACPI_CEDT_TYPE_RESERVED = 2,
+ ACPI_CEDT_TYPE_CXIMS = 2,
+ ACPI_CEDT_TYPE_RDPAS = 3,
+ ACPI_CEDT_TYPE_RESERVED = 4,
};
/* Values for version field above */
@@ -583,6 +822,7 @@ typedef struct acpi_cedt_cfmws_target_element
/* Values for Interleave Arithmetic field above */
#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO (0)
+#define ACPI_CEDT_CFMWS_ARITHMETIC_XOR (1)
/* Values for Restrictions field above */
@@ -592,6 +832,40 @@ typedef struct acpi_cedt_cfmws_target_element
#define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3)
#define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4)
+/* 2: CXL XOR Interleave Math Structure */
+
+typedef struct acpi_cedt_cxims {
+ ACPI_CEDT_HEADER Header;
+ UINT16 Reserved1;
+ UINT8 Hbig;
+ UINT8 NrXormaps;
+ UINT64 XormapList[];
+} ACPI_CEDT_CXIMS;
+
+typedef struct acpi_cedt_cxims_target_element
+{
+ UINT64 Xormap;
+
+} ACPI_CEDT_CXIMS_TARGET_ELEMENT;
+
+
+/* 3: CXL RCEC Downstream Port Association Structure */
+
+struct acpi_cedt_rdpas {
+ ACPI_CEDT_HEADER Header;
+ UINT16 Segment;
+ UINT16 Bdf;
+ UINT8 Protocol;
+ UINT64 Address;
+};
+
+/* Masks for bdf field above */
+#define ACPI_CEDT_RDPAS_BUS_MASK 0xff00
+#define ACPI_CEDT_RDPAS_DEVICE_MASK 0x00f8
+#define ACPI_CEDT_RDPAS_FUNCTION_MASK 0x0007
+
+#define ACPI_CEDT_RDPAS_PROTOCOL_IO (0)
+#define ACPI_CEDT_RDPAS_PROTOCOL_CACHEMEM (1)
/*******************************************************************************
*
@@ -783,6 +1057,7 @@ typedef struct acpi_dbg2_device
#define ACPI_DBG2_16550_WITH_GAS 0x0012
#define ACPI_DBG2_SDM845_7_372MHZ 0x0013
#define ACPI_DBG2_INTEL_LPSS 0x0014
+#define ACPI_DBG2_RISCV_SBI_CON 0x0015
#define ACPI_DBG2_1394_STANDARD 0x0000
@@ -854,7 +1129,8 @@ enum AcpiDmarType
ACPI_DMAR_TYPE_HARDWARE_AFFINITY = 3,
ACPI_DMAR_TYPE_NAMESPACE = 4,
ACPI_DMAR_TYPE_SATC = 5,
- ACPI_DMAR_TYPE_RESERVED = 6 /* 6 and greater are reserved */
+ ACPI_DMAR_TYPE_SIDP = 6,
+ ACPI_DMAR_TYPE_RESERVED = 7 /* 7 and greater are reserved */
};
@@ -864,7 +1140,8 @@ typedef struct acpi_dmar_device_scope
{
UINT8 EntryType;
UINT8 Length;
- UINT16 Reserved;
+ UINT8 Flags;
+ UINT8 Reserved;
UINT8 EnumerationId;
UINT8 Bus;
@@ -901,7 +1178,7 @@ typedef struct acpi_dmar_hardware_unit
{
ACPI_DMAR_HEADER Header;
UINT8 Flags;
- UINT8 Reserved;
+ UINT8 Size;
UINT16 Segment;
UINT64 Address; /* Register Base Address */
@@ -964,7 +1241,10 @@ typedef struct acpi_dmar_andd
ACPI_DMAR_HEADER Header;
UINT8 Reserved[3];
UINT8 DeviceNumber;
- char DeviceName[1];
+ union {
+ char __pad;
+ ACPI_FLEX_ARRAY(char, DeviceName);
+ };
} ACPI_DMAR_ANDD;
@@ -978,9 +1258,20 @@ typedef struct acpi_dmar_satc
UINT8 Reserved;
UINT16 Segment;
-} ACPI_DMAR_SATC
+} ACPI_DMAR_SATC;
+
+
+/* 6: SoC Integrated Device Property Reporting Structure */
+
+typedef struct acpi_dmar_sidp
+{
+ ACPI_DMAR_HEADER Header;
+ UINT16 Reserved;
+ UINT16 Segment;
+
+} ACPI_DMAR_SIDP;
+
-;
/*******************************************************************************
*
* DRTM - Dynamic Root of Trust for Measurement table
@@ -1017,7 +1308,7 @@ typedef struct acpi_table_drtm
typedef struct acpi_drtm_vtable_list
{
UINT32 ValidatedTableCount;
- UINT64 ValidatedTables[1];
+ UINT64 ValidatedTables[];
} ACPI_DRTM_VTABLE_LIST;
@@ -1036,7 +1327,7 @@ typedef struct acpi_drtm_resource
typedef struct acpi_drtm_resource_list
{
UINT32 ResourceCount;
- ACPI_DRTM_RESOURCE Resources[1];
+ ACPI_DRTM_RESOURCE Resources[];
} ACPI_DRTM_RESOURCE_LIST;
@@ -1064,7 +1355,7 @@ typedef struct acpi_table_ecdt
ACPI_GENERIC_ADDRESS Data; /* Address of EC data register */
UINT32 Uid; /* Unique ID - must be same as the EC _UID method */
UINT8 Gpe; /* The GPE for the EC */
- UINT8 Id[1]; /* Full namepath of the EC in the ACPI namespace */
+ UINT8 Id[]; /* Full namepath of the EC in the ACPI namespace */
} ACPI_TABLE_ECDT;
@@ -1103,17 +1394,18 @@ typedef struct acpi_einj_entry
enum AcpiEinjActions
{
- ACPI_EINJ_BEGIN_OPERATION = 0,
- ACPI_EINJ_GET_TRIGGER_TABLE = 1,
- ACPI_EINJ_SET_ERROR_TYPE = 2,
- ACPI_EINJ_GET_ERROR_TYPE = 3,
- ACPI_EINJ_END_OPERATION = 4,
- ACPI_EINJ_EXECUTE_OPERATION = 5,
- ACPI_EINJ_CHECK_BUSY_STATUS = 6,
- ACPI_EINJ_GET_COMMAND_STATUS = 7,
- ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 8,
- ACPI_EINJ_GET_EXECUTE_TIMINGS = 9,
- ACPI_EINJ_ACTION_RESERVED = 10, /* 10 and greater are reserved */
+ ACPI_EINJ_BEGIN_OPERATION = 0x0,
+ ACPI_EINJ_GET_TRIGGER_TABLE = 0x1,
+ ACPI_EINJ_SET_ERROR_TYPE = 0x2,
+ ACPI_EINJ_GET_ERROR_TYPE = 0x3,
+ ACPI_EINJ_END_OPERATION = 0x4,
+ ACPI_EINJ_EXECUTE_OPERATION = 0x5,
+ ACPI_EINJ_CHECK_BUSY_STATUS = 0x6,
+ ACPI_EINJ_GET_COMMAND_STATUS = 0x7,
+ ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 0x8,
+ ACPI_EINJ_GET_EXECUTE_TIMINGS = 0x9,
+ ACPI_EINJV2_GET_ERROR_TYPE = 0x11,
+ ACPI_EINJ_ACTION_RESERVED = 0x12, /* 0x12 and greater are reserved */
ACPI_EINJ_TRIGGER_ERROR = 0xFF /* Except for this value */
};
@@ -1190,6 +1482,12 @@ enum AcpiEinjCommandStatus
#define ACPI_EINJ_PLATFORM_CORRECTABLE (1<<9)
#define ACPI_EINJ_PLATFORM_UNCORRECTABLE (1<<10)
#define ACPI_EINJ_PLATFORM_FATAL (1<<11)
+#define ACPI_EINJ_CXL_CACHE_CORRECTABLE (1<<12)
+#define ACPI_EINJ_CXL_CACHE_UNCORRECTABLE (1<<13)
+#define ACPI_EINJ_CXL_CACHE_FATAL (1<<14)
+#define ACPI_EINJ_CXL_MEM_CORRECTABLE (1<<15)
+#define ACPI_EINJ_CXL_MEM_UNCORRECTABLE (1<<16)
+#define ACPI_EINJ_CXL_MEM_FATAL (1<<17)
#define ACPI_EINJ_VENDOR_DEFINED (1<<31)
@@ -1998,7 +2296,7 @@ typedef struct acpi_hmat_cache
UINT32 Reserved1;
UINT64 CacheSize;
UINT32 CacheAttributes;
- UINT16 Reserved2;
+ UINT16 AddressMode;
UINT16 NumberOfSMBIOSHandles;
} ACPI_HMAT_CACHE;
@@ -2011,6 +2309,9 @@ typedef struct acpi_hmat_cache
#define ACPI_HMAT_WRITE_POLICY (0x0000F000)
#define ACPI_HMAT_CACHE_LINE_SIZE (0xFFFF0000)
+#define ACPI_HMAT_CACHE_MODE_UNKNOWN (0)
+#define ACPI_HMAT_CACHE_MODE_EXTENDED_LINEAR (1)
+
/* Values for cache associativity flag */
#define ACPI_HMAT_CA_NONE (0)
diff --git a/sys/contrib/dev/acpica/include/actbl2.h b/sys/contrib/dev/acpica/include/actbl2.h
index 3032c5e25003..a74b6d555a3a 100644
--- a/sys/contrib/dev/acpica/include/actbl2.h
+++ b/sys/contrib/dev/acpica/include/actbl2.h
@@ -1,6 +1,6 @@
/******************************************************************************
*
- * Name: actbl2.h - ACPI Table Definitions (tables not in ACPI spec)
+ * Name: actbl2.h - ACPI Table Definitions
*
*****************************************************************************/
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -171,14 +171,18 @@
#define ACPI_SIG_AGDI "AGDI" /* Arm Generic Diagnostic Dump and Reset Device Interface */
#define ACPI_SIG_APMT "APMT" /* Arm Performance Monitoring Unit table */
#define ACPI_SIG_BDAT "BDAT" /* BIOS Data ACPI Table */
+#define ACPI_SIG_CCEL "CCEL" /* CC Event Log Table */
+#define ACPI_SIG_CDAT "CDAT" /* Coherent Device Attribute Table */
+#define ACPI_SIG_ERDT "ERDT" /* Enhanced Resource Director Technology */
#define ACPI_SIG_IORT "IORT" /* IO Remapping Table */
#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */
#define ACPI_SIG_LPIT "LPIT" /* Low Power Idle Table */
#define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */
#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */
#define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */
+#define ACPI_SIG_MPAM "MPAM" /* Memory System Resource Partitioning and Monitoring Table */
#define ACPI_SIG_MPST "MPST" /* Memory Power State Table */
-#define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table */
+#define ACPI_SIG_MRRM "MRRM" /* Memory Range and Region Mapping table */
#define ACPI_SIG_MSDM "MSDM" /* Microsoft Data Management Table */
#define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */
#define ACPI_SIG_NHLT "NHLT" /* Non HD Audio Link Table */
@@ -189,11 +193,15 @@
#define ACPI_SIG_PPTT "PPTT" /* Processor Properties Topology Table */
#define ACPI_SIG_PRMT "PRMT" /* Platform Runtime Mechanism Table */
#define ACPI_SIG_RASF "RASF" /* RAS Feature table */
+#define ACPI_SIG_RAS2 "RAS2" /* RAS2 Feature table */
#define ACPI_SIG_RGRT "RGRT" /* Regulatory Graphics Resource Table */
+#define ACPI_SIG_RHCT "RHCT" /* RISC-V Hart Capabilities Table */
+#define ACPI_SIG_RIMT "RIMT" /* RISC-V IO Mapping Table */
#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
#define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */
#define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */
#define ACPI_SIG_SVKL "SVKL" /* Storage Volume Key Location Table */
+#define ACPI_SIG_SWFT "SWFT" /* SoundWire File Table */
#define ACPI_SIG_TDEL "TDEL" /* TD Event Log Table */
@@ -228,13 +236,12 @@
typedef struct acpi_table_aest
{
ACPI_TABLE_HEADER Header;
- void *NodeArray[];
} ACPI_TABLE_AEST;
/* Common Subtable header - one per Node Structure (Subtable) */
-typedef struct acpi_aest_hdr
+typedef struct acpi_aest_hdr
{
UINT8 Type;
UINT16 Length;
@@ -256,7 +263,9 @@ typedef struct acpi_aest_hdr
#define ACPI_AEST_SMMU_ERROR_NODE 2
#define ACPI_AEST_VENDOR_ERROR_NODE 3
#define ACPI_AEST_GIC_ERROR_NODE 4
-#define ACPI_AEST_NODE_TYPE_RESERVED 5 /* 5 and above are reserved */
+#define ACPI_AEST_PCIE_ERROR_NODE 5
+#define ACPI_AEST_PROXY_ERROR_NODE 6
+#define ACPI_AEST_NODE_TYPE_RESERVED 7 /* 7 and above are reserved */
/*
@@ -265,7 +274,7 @@ typedef struct acpi_aest_hdr
/* 0: Processor Error */
-typedef struct acpi_aest_processor
+typedef struct acpi_aest_processor
{
UINT32 ProcessorId;
UINT8 ResourceType;
@@ -285,7 +294,7 @@ typedef struct acpi_aest_processor
/* 0R: Processor Cache Resource Substructure */
-typedef struct acpi_aest_processor_cache
+typedef struct acpi_aest_processor_cache
{
UINT32 CacheReference;
UINT32 Reserved;
@@ -301,7 +310,7 @@ typedef struct acpi_aest_processor_cache
/* 1R: Processor TLB Resource Substructure */
-typedef struct acpi_aest_processor_tlb
+typedef struct acpi_aest_processor_tlb
{
UINT32 TlbLevel;
UINT32 Reserved;
@@ -310,7 +319,7 @@ typedef struct acpi_aest_processor_tlb
/* 2R: Processor Generic Resource Substructure */
-typedef struct acpi_aest_processor_generic
+typedef struct acpi_aest_processor_generic
{
UINT32 Resource;
@@ -318,7 +327,7 @@ typedef struct acpi_aest_processor_generic
/* 1: Memory Error */
-typedef struct acpi_aest_memory
+typedef struct acpi_aest_memory
{
UINT32 SratProximityDomain;
@@ -326,7 +335,7 @@ typedef struct acpi_aest_memory
/* 2: Smmu Error */
-typedef struct acpi_aest_smmu
+typedef struct acpi_aest_smmu
{
UINT32 IortNodeReference;
UINT32 SubcomponentReference;
@@ -335,7 +344,7 @@ typedef struct acpi_aest_smmu
/* 3: Vendor Defined */
-typedef struct acpi_aest_vendor
+typedef struct acpi_aest_vendor
{
UINT32 AcpiHid;
UINT32 AcpiUid;
@@ -343,9 +352,19 @@ typedef struct acpi_aest_vendor
} ACPI_AEST_VENDOR;
+/* 3: Vendor Defined V2 */
+
+typedef struct acpi_aest_vendor_v2
+{
+ UINT64 AcpiHid;
+ UINT32 AcpiUid;
+ UINT8 VendorSpecificData[16];
+
+} ACPI_AEST_VENDOR_V2;
+
/* 4: Gic Error */
-typedef struct acpi_aest_gic
+typedef struct acpi_aest_gic
{
UINT32 InterfaceType;
UINT32 InstanceId;
@@ -360,10 +379,26 @@ typedef struct acpi_aest_gic
#define ACPI_AEST_GIC_ITS 3
#define ACPI_AEST_GIC_RESERVED 4 /* 4 and above are reserved */
+/* 5: PCIe Error */
+
+typedef struct acpi_aest_pcie
+{
+ UINT32 IortNodeReference;
+
+} ACPI_AEST_PCIE;
+
+
+/* 6: Proxy Error */
+
+typedef struct acpi_aest_proxy
+{
+ UINT64 NodeAddress;
+
+} ACPI_AEST_PROXY;
/* Node Interface Structure */
-typedef struct acpi_aest_node_interface
+typedef struct acpi_aest_node_interface
{
UINT8 Type;
UINT8 Reserved[3];
@@ -377,15 +412,71 @@ typedef struct acpi_aest_node_interface
} ACPI_AEST_NODE_INTERFACE;
+/* Node Interface Structure V2*/
+
+typedef struct acpi_aest_node_interface_header
+{
+ UINT8 Type;
+ UINT8 GroupFormat;
+ UINT8 Reserved[2];
+ UINT32 Flags;
+ UINT64 Address;
+ UINT32 ErrorRecordIndex;
+ UINT32 ErrorRecordCount;
+
+} ACPI_AEST_NODE_INTERFACE_HEADER;
+
+#define ACPI_AEST_NODE_GROUP_FORMAT_4K 0
+#define ACPI_AEST_NODE_GROUP_FORMAT_16K 1
+#define ACPI_AEST_NODE_GROUP_FORMAT_64K 2
+
+typedef struct acpi_aest_node_interface_common
+{
+ UINT32 ErrorNodeDevice;
+ UINT32 ProcessorAffinity;
+ UINT64 ErrorGroupRegisterBase;
+ UINT64 FaultInjectRegisterBase;
+ UINT64 InterruptConfigRegisterBase;
+
+} ACPI_AEST_NODE_INTERFACE_COMMON;
+
+typedef struct acpi_aest_node_interface_4k
+{
+ UINT64 ErrorRecordImplemented;
+ UINT64 ErrorStatusReporting;
+ UINT64 AddressingMode;
+ ACPI_AEST_NODE_INTERFACE_COMMON Common;
+
+} ACPI_AEST_NODE_INTERFACE_4K;
+
+typedef struct acpi_aest_node_interface_16k
+{
+ UINT64 ErrorRecordImplemented[4];
+ UINT64 ErrorStatusReporting[4];
+ UINT64 AddressingMode[4];
+ ACPI_AEST_NODE_INTERFACE_COMMON Common;
+
+} ACPI_AEST_NODE_INTERFACE_16K;
+
+typedef struct acpi_aest_node_interface_64k
+{
+ INT64 ErrorRecordImplemented[14];
+ UINT64 ErrorStatusReporting[14];
+ UINT64 AddressingMode[14];
+ ACPI_AEST_NODE_INTERFACE_COMMON Common;
+
+} ACPI_AEST_NODE_INTERFACE_64K;
+
/* Values for Type field above */
-#define ACPI_AEST_NODE_SYSTEM_REGISTER 0
-#define ACPI_AEST_NODE_MEMORY_MAPPED 1
-#define ACPI_AEST_XFACE_RESERVED 2 /* 2 and above are reserved */
+#define ACPI_AEST_NODE_SYSTEM_REGISTER 0
+#define ACPI_AEST_NODE_MEMORY_MAPPED 1
+#define ACPI_AEST_NODE_SINGLE_RECORD_MEMORY_MAPPED 2
+#define ACPI_AEST_XFACE_RESERVED 3 /* 2 and above are reserved */
/* Node Interrupt Structure */
-typedef struct acpi_aest_node_interrupt
+typedef struct acpi_aest_node_interrupt
{
UINT8 Type;
UINT8 Reserved[2];
@@ -396,6 +487,18 @@ typedef struct acpi_aest_node_interrupt
} ACPI_AEST_NODE_INTERRUPT;
+/* Node Interrupt Structure V2 */
+
+typedef struct acpi_aest_node_interrupt_v2
+{
+ UINT8 Type;
+ UINT8 Reserved[2];
+ UINT8 Flags;
+ UINT32 Gsiv;
+ UINT8 Reserved1[4];
+
+} ACPI_AEST_NODE_INTERRUPT_V2;
+
/* Values for Type field above */
#define ACPI_AEST_NODE_FAULT_HANDLING 0
@@ -521,13 +624,260 @@ typedef struct acpi_table_bdat
} ACPI_TABLE_BDAT;
+/*******************************************************************************
+ *
+ * CCEL - CC-Event Log
+ * From: "Guest-Host-Communication Interface (GHCI) for Intel
+ * Trust Domain Extensions (Intel TDX)". Feb 2022
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_ccel
+{
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT8 CCType;
+ UINT8 CCSubType;
+ UINT16 Reserved;
+ UINT64 LogAreaMinimumLength;
+ UINT64 LogAreaStartAddress;
+
+} ACPI_TABLE_CCEL;
+
+/*******************************************************************************
+ *
+ * ERDT - Enhanced Resource Director Technology (ERDT) table
+ *
+ * Conforms to "Intel Resource Director Technology Architecture Specification"
+ * Version 1.1, January 2025
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_erdt
+{
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT32 MaxClos; /* Maximum classes of service */
+ UINT8 Reserved[24];
+ UINT8 Erdt_Substructures[];
+
+} ACPI_TABLE_ERDT;
+
+
+/* Values for subtable type in ACPI_SUBTBL_HDR_16 */
+
+enum AcpiErdtType
+{
+ ACPI_ERDT_TYPE_RMDD = 0,
+ ACPI_ERDT_TYPE_CACD = 1,
+ ACPI_ERDT_TYPE_DACD = 2,
+ ACPI_ERDT_TYPE_CMRC = 3,
+ ACPI_ERDT_TYPE_MMRC = 4,
+ ACPI_ERDT_TYPE_MARC = 5,
+ ACPI_ERDT_TYPE_CARC = 6,
+ ACPI_ERDT_TYPE_CMRD = 7,
+ ACPI_ERDT_TYPE_IBRD = 8,
+ ACPI_ERDT_TYPE_IBAD = 9,
+ ACPI_ERDT_TYPE_CARD = 10,
+ ACPI_ERDT_TYPE_RESERVED = 11 /* 11 and above are reserved */
+
+};
+
+/*
+ * ERDT Subtables, correspond to Type in ACPI_SUBTBL_HDR_16
+ */
+
+/* 0: RMDD - Resource Management Domain Description */
+
+typedef struct acpi_erdt_rmdd
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT16 Flags;
+ UINT16 IO_l3_Slices; /* Number of slices in IO cache */
+ UINT8 IO_l3_Sets; /* Number of sets in IO cache */
+ UINT8 IO_l3_Ways; /* Number of ways in IO cache */
+ UINT64 Reserved;
+ UINT16 DomainId; /* Unique domain ID */
+ UINT32 MaxRmid; /* Maximun RMID supported */
+ UINT64 CregBase; /* Control Register Base Address */
+ UINT16 CregSize; /* Control Register Size (4K pages) */
+ UINT8 RmddStructs[];
+
+} ACPI_ERDT_RMDD;
+
+
+/* 1: CACD - CPU Agent Collection Description */
+
+typedef struct acpi_erdt_cacd
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT16 Reserved;
+ UINT16 DomainId; /* Unique domain ID */
+ UINT32 X2APICIDS[];
+
+} ACPI_ERDT_CACD;
+
+
+/* 2: DACD - Device Agent Collection Description */
+
+typedef struct acpi_erdt_dacd
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT16 Reserved;
+ UINT16 DomainId; /* Unique domain ID */
+ UINT8 DevPaths[];
+
+} ACPI_ERDT_DACD;
+
+typedef struct acpi_erdt_dacd_dev_paths
+{
+ ACPI_SUBTABLE_HEADER Header;
+ UINT16 Segment;
+ UINT8 Reserved;
+ UINT8 StartBus;
+ UINT8 Path[];
+
+} ACPI_ERDT_DACD_PATHS;
+
+
+/* 3: CMRC - Cache Monitoring Registers for CPU Agents */
+
+typedef struct acpi_erdt_cmrc
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT32 Reserved1;
+ UINT32 Flags;
+ UINT8 IndexFn;
+ UINT8 Reserved2[11];
+ UINT64 CmtRegBase;
+ UINT32 CmtRegSize;
+ UINT16 ClumpSize;
+ UINT16 ClumpStride;
+ UINT64 UpScale;
+
+} ACPI_ERDT_CMRC;
+
+
+/* 4: MMRC - Memory-bandwidth Monitoring Registers for CPU Agents */
+
+typedef struct acpi_erdt_mmrc
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT32 Reserved1;
+ UINT32 Flags;
+ UINT8 IndexFn;
+ UINT8 Reserved2[11];
+ UINT64 RegBase;
+ UINT32 RegSize;
+ UINT8 CounterWidth;
+ UINT64 UpScale;
+ UINT8 Reserved3[7];
+ UINT32 CorrFactorListLen;
+ UINT32 CorrFactorList[];
+
+} ACPI_ERDT_MMRC;
+
+
+/* 5: MARC - Memory-bandwidth Allocation Registers for CPU Agents */
+
+typedef struct acpi_erdt_marc
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT16 Reserved1;
+ UINT16 Flags;
+ UINT8 IndexFn;
+ UINT8 Reserved2[7];
+ UINT64 RegBaseOpt;
+ UINT64 RegBaseMin;
+ UINT64 RegBaseMax;
+ UINT32 MbaRegSize;
+ UINT32 MbaCtrlRange;
+
+} ACPI_ERDT_MARC;
+
+
+/* 6: CARC - Cache Allocation Registers for CPU Agents */
+
+typedef struct acpi_erdt_carc
+{
+ ACPI_SUBTBL_HDR_16 Header;
+
+} ACPI_ERDT_CARC;
+
+
+/* 7: CMRD - Cache Monitoring Registers for Device Agents */
+
+typedef struct acpi_erdt_cmrd
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT32 Reserved1;
+ UINT32 Flags;
+ UINT8 IndexFn;
+ UINT8 Reserved2[11];
+ UINT64 RegBase;
+ UINT32 RegSize;
+ UINT16 CmtRegOff;
+ UINT16 CmtClumpSize;
+ UINT64 UpScale;
+
+} ACPI_ERDT_CMRD;
+
+
+/* 8: IBRD - Cache Monitoring Registers for Device Agents */
+
+typedef struct acpi_erdt_ibrd
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT32 Reserved1;
+ UINT32 Flags;
+ UINT8 IndexFn;
+ UINT8 Reserved2[11];
+ UINT64 RegBase;
+ UINT32 RegSize;
+ UINT16 TotalBwOffset;
+ UINT16 IOMissBwOffset;
+ UINT16 TotalBwClump;
+ UINT16 IOMissBwClump;
+ UINT8 Reserved3[7];
+ UINT8 CounterWidth;
+ UINT64 UpScale;
+ UINT32 CorrFactorListLen;
+ UINT32 CorrFactorList[];
+
+} ACPI_ERDT_IBRD;
+
+
+/* 9: IBAD - IO bandwidth Allocation Registers for device agents */
+
+typedef struct acpi_erdt_ibad
+{
+ ACPI_SUBTBL_HDR_16 Header;
+
+} ACPI_ERDT_IBAD;
+
+
+/* 10: CARD - IO bandwidth Allocation Registers for Device Agents */
+
+typedef struct acpi_erdt_card
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT32 Reserved1;
+ UINT32 Flags;
+ UINT32 ContentionMask;
+ UINT8 IndexFn;
+ UINT8 Reserved2[7];
+ UINT64 RegBase;
+ UINT32 RegSize;
+ UINT16 CatRegOffset;
+ UINT16 CatRegBlockSize;
+
+} ACPI_ERDT_CARD;
+
/*******************************************************************************
*
* IORT - IO Remapping Table
*
* Conforms to "IO Remapping Table System Software on ARM Platforms",
- * Document number: ARM DEN 0049E.d, Feb 2022
+ * Document number: ARM DEN 0049E.f, Apr 2024
*
******************************************************************************/
@@ -552,7 +902,7 @@ typedef struct acpi_iort_node
UINT32 Identifier;
UINT32 MappingCount;
UINT32 MappingOffset;
- char NodeData[1];
+ char NodeData[];
} ACPI_IORT_NODE;
@@ -610,6 +960,7 @@ typedef struct acpi_iort_memory_access
#define ACPI_IORT_MF_COHERENCY (1)
#define ACPI_IORT_MF_ATTRIBUTES (1<<1)
+#define ACPI_IORT_MF_CANWBS (1<<2)
/*
@@ -618,7 +969,7 @@ typedef struct acpi_iort_memory_access
typedef struct acpi_iort_its_group
{
UINT32 ItsCount;
- UINT32 Identifiers[1]; /* GIC ITS identifier array */
+ UINT32 Identifiers[]; /* GIC ITS identifier array */
} ACPI_IORT_ITS_GROUP;
@@ -628,7 +979,7 @@ typedef struct acpi_iort_named_component
UINT32 NodeFlags;
UINT64 MemoryProperties; /* Memory access properties */
UINT8 MemoryAddressLimit; /* Memory address size limit */
- char DeviceName[1]; /* Path of namespace object */
+ char DeviceName[]; /* Path of namespace object */
} ACPI_IORT_NAMED_COMPONENT;
@@ -644,7 +995,7 @@ typedef struct acpi_iort_root_complex
UINT32 PciSegmentNumber;
UINT8 MemoryAddressLimit; /* Memory address size limit */
UINT16 PasidCapabilities; /* PASID Capabilities */
- UINT8 Reserved[1]; /* Reserved, must be zero */
+ UINT8 Reserved[]; /* Reserved, must be zero */
} ACPI_IORT_ROOT_COMPLEX;
@@ -668,7 +1019,7 @@ typedef struct acpi_iort_smmu
UINT32 ContextInterruptOffset;
UINT32 PmuInterruptCount;
UINT32 PmuInterruptOffset;
- UINT64 Interrupts[1]; /* Interrupt array */
+ UINT64 Interrupts[]; /* Interrupt array */
} ACPI_IORT_SMMU;
@@ -725,6 +1076,7 @@ typedef struct acpi_iort_smmu_v3
#define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1)
#define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (3<<1)
#define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3)
+#define ACPI_IORT_SMMU_V3_DEVICEID_VALID (1<<4)
typedef struct acpi_iort_pmcg
{
@@ -1107,7 +1459,18 @@ enum AcpiMadtType
ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14,
ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15,
ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16,
- ACPI_MADT_TYPE_RESERVED = 17, /* 17 to 0x7F are reserved */
+ ACPI_MADT_TYPE_CORE_PIC = 17,
+ ACPI_MADT_TYPE_LIO_PIC = 18,
+ ACPI_MADT_TYPE_HT_PIC = 19,
+ ACPI_MADT_TYPE_EIO_PIC = 20,
+ ACPI_MADT_TYPE_MSI_PIC = 21,
+ ACPI_MADT_TYPE_BIO_PIC = 22,
+ ACPI_MADT_TYPE_LPC_PIC = 23,
+ ACPI_MADT_TYPE_RINTC = 24,
+ ACPI_MADT_TYPE_IMSIC = 25,
+ ACPI_MADT_TYPE_APLIC = 26,
+ ACPI_MADT_TYPE_PLIC = 27,
+ ACPI_MADT_TYPE_RESERVED = 28, /* 28 to 0x7F are reserved */
ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */
};
@@ -1212,7 +1575,7 @@ typedef struct acpi_madt_local_sapic
UINT8 Reserved[3]; /* Reserved, must be zero */
UINT32 LapicFlags;
UINT32 Uid; /* Numeric UID - ACPI 3.0 */
- char UidString[1]; /* String UID - ACPI 3.0 */
+ char UidString[]; /* String UID - ACPI 3.0 */
} ACPI_MADT_LOCAL_SAPIC;
@@ -1263,7 +1626,7 @@ typedef struct acpi_madt_local_x2apic_nmi
} ACPI_MADT_LOCAL_X2APIC_NMI;
-/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 changes) */
+/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 + ACPI 6.5 changes) */
typedef struct acpi_madt_generic_interrupt
{
@@ -1284,6 +1647,7 @@ typedef struct acpi_madt_generic_interrupt
UINT8 EfficiencyClass;
UINT8 Reserved2[1];
UINT16 SpeInterrupt; /* ACPI 6.3 */
+ UINT16 TrbeInterrupt; /* ACPI 6.5 */
} ACPI_MADT_GENERIC_INTERRUPT;
@@ -1292,7 +1656,8 @@ typedef struct acpi_madt_generic_interrupt
/* ACPI_MADT_ENABLED (1) Processor is usable if set */
#define ACPI_MADT_PERFORMANCE_IRQ_MODE (1<<1) /* 01: Performance Interrupt Mode */
#define ACPI_MADT_VGIC_IRQ_MODE (1<<2) /* 02: VGIC Maintenance Interrupt mode */
-
+#define ACPI_MADT_GICC_ONLINE_CAPABLE (1<<3) /* 03: Processor is online capable */
+#define ACPI_MADT_GICC_NON_COHERENT (1<<4) /* 04: GIC redistributor is not coherent */
/* 12: Generic Distributor (ACPI 5.0 + ACPI 6.0 changes) */
@@ -1345,25 +1710,30 @@ typedef struct acpi_madt_generic_msi_frame
typedef struct acpi_madt_generic_redistributor
{
ACPI_SUBTABLE_HEADER Header;
- UINT16 Reserved; /* reserved - must be zero */
+ UINT8 Flags;
+ UINT8 Reserved; /* reserved - must be zero */
UINT64 BaseAddress;
UINT32 Length;
} ACPI_MADT_GENERIC_REDISTRIBUTOR;
+#define ACPI_MADT_GICR_NON_COHERENT (1)
/* 15: Generic Translator (ACPI 6.0) */
typedef struct acpi_madt_generic_translator
{
ACPI_SUBTABLE_HEADER Header;
- UINT16 Reserved; /* reserved - must be zero */
+ UINT8 Flags;
+ UINT8 Reserved; /* reserved - must be zero */
UINT32 TranslationId;
UINT64 BaseAddress;
UINT32 Reserved2;
} ACPI_MADT_GENERIC_TRANSLATOR;
+#define ACPI_MADT_ITS_NON_COHERENT (1)
+
/* 16: Multiprocessor wakeup (ACPI 6.4) */
typedef struct acpi_madt_multiproc_wakeup
@@ -1391,11 +1761,203 @@ typedef struct acpi_madt_multiproc_wakeup_mailbox
#define ACPI_MP_WAKE_COMMAND_WAKEUP 1
-/* 17: OEM data */
+/* 17: CPU Core Interrupt Controller (ACPI 6.5) */
+
+typedef struct acpi_madt_core_pic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT32 ProcessorId;
+ UINT32 CoreId;
+ UINT32 Flags;
+} ACPI_MADT_CORE_PIC;
+
+/* Values for Version field above */
+
+enum AcpiMadtCorePicVersion {
+ ACPI_MADT_CORE_PIC_VERSION_NONE = 0,
+ ACPI_MADT_CORE_PIC_VERSION_V1 = 1,
+ ACPI_MADT_CORE_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
+};
+
+/* 18: Legacy I/O Interrupt Controller (ACPI 6.5) */
+
+typedef struct acpi_madt_lio_pic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT64 Address;
+ UINT16 Size;
+ UINT8 Cascade[2];
+ UINT32 CascadeMap[2];
+} ACPI_MADT_LIO_PIC;
+
+/* Values for Version field above */
+
+enum AcpiMadtLioPicVersion {
+ ACPI_MADT_LIO_PIC_VERSION_NONE = 0,
+ ACPI_MADT_LIO_PIC_VERSION_V1 = 1,
+ ACPI_MADT_LIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
+};
+
+/* 19: HT Interrupt Controller (ACPI 6.5) */
+
+typedef struct acpi_madt_ht_pic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT64 Address;
+ UINT16 Size;
+ UINT8 Cascade[8];
+} ACPI_MADT_HT_PIC;
+
+/* Values for Version field above */
+
+enum AcpiMadtHtPicVersion {
+ ACPI_MADT_HT_PIC_VERSION_NONE = 0,
+ ACPI_MADT_HT_PIC_VERSION_V1 = 1,
+ ACPI_MADT_HT_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
+};
+
+/* 20: Extend I/O Interrupt Controller (ACPI 6.5) */
+
+typedef struct acpi_madt_eio_pic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT8 Cascade;
+ UINT8 Node;
+ UINT64 NodeMap;
+} ACPI_MADT_EIO_PIC;
+
+/* Values for Version field above */
+
+enum AcpiMadtEioPicVersion {
+ ACPI_MADT_EIO_PIC_VERSION_NONE = 0,
+ ACPI_MADT_EIO_PIC_VERSION_V1 = 1,
+ ACPI_MADT_EIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
+};
+
+/* 21: MSI Interrupt Controller (ACPI 6.5) */
+
+typedef struct acpi_madt_msi_pic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT64 MsgAddress;
+ UINT32 Start;
+ UINT32 Count;
+} ACPI_MADT_MSI_PIC;
+
+/* Values for Version field above */
+
+enum AcpiMadtMsiPicVersion {
+ ACPI_MADT_MSI_PIC_VERSION_NONE = 0,
+ ACPI_MADT_MSI_PIC_VERSION_V1 = 1,
+ ACPI_MADT_MSI_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
+};
+
+/* 22: Bridge I/O Interrupt Controller (ACPI 6.5) */
+
+typedef struct acpi_madt_bio_pic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT64 Address;
+ UINT16 Size;
+ UINT16 Id;
+ UINT16 GsiBase;
+} ACPI_MADT_BIO_PIC;
+
+/* Values for Version field above */
+
+enum AcpiMadtBioPicVersion {
+ ACPI_MADT_BIO_PIC_VERSION_NONE = 0,
+ ACPI_MADT_BIO_PIC_VERSION_V1 = 1,
+ ACPI_MADT_BIO_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
+};
+
+/* 23: LPC Interrupt Controller (ACPI 6.5) */
+
+typedef struct acpi_madt_lpc_pic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT64 Address;
+ UINT16 Size;
+ UINT8 Cascade;
+} ACPI_MADT_LPC_PIC;
+
+/* Values for Version field above */
+
+enum AcpiMadtLpcPicVersion {
+ ACPI_MADT_LPC_PIC_VERSION_NONE = 0,
+ ACPI_MADT_LPC_PIC_VERSION_V1 = 1,
+ ACPI_MADT_LPC_PIC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
+};
+
+/* 24: RISC-V INTC */
+typedef struct acpi_madt_rintc {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT8 Reserved;
+ UINT32 Flags;
+ UINT64 HartId;
+ UINT32 Uid; /* ACPI processor UID */
+ UINT32 ExtIntcId; /* External INTC Id */
+ UINT64 ImsicAddr; /* IMSIC base address */
+ UINT32 ImsicSize; /* IMSIC size */
+} ACPI_MADT_RINTC;
+
+/* Values for RISC-V INTC Version field above */
+
+enum AcpiMadtRintcVersion {
+ ACPI_MADT_RINTC_VERSION_NONE = 0,
+ ACPI_MADT_RINTC_VERSION_V1 = 1,
+ ACPI_MADT_RINTC_VERSION_RESERVED = 2 /* 2 and greater are reserved */
+};
+
+/* 25: RISC-V IMSIC */
+typedef struct acpi_madt_imsic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT8 Reserved;
+ UINT32 Flags;
+ UINT16 NumIds;
+ UINT16 NumGuestIds;
+ UINT8 GuestIndexBits;
+ UINT8 HartIndexBits;
+ UINT8 GroupIndexBits;
+ UINT8 GroupIndexShift;
+} ACPI_MADT_IMSIC;
+
+/* 26: RISC-V APLIC */
+typedef struct acpi_madt_aplic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT8 Id;
+ UINT32 Flags;
+ UINT8 HwId[8];
+ UINT16 NumIdcs;
+ UINT16 NumSources;
+ UINT32 GsiBase;
+ UINT64 BaseAddr;
+ UINT32 Size;
+} ACPI_MADT_APLIC;
+
+/* 27: RISC-V PLIC */
+typedef struct acpi_madt_plic {
+ ACPI_SUBTABLE_HEADER Header;
+ UINT8 Version;
+ UINT8 Id;
+ UINT8 HwId[8];
+ UINT16 NumIrqs;
+ UINT16 MaxPrio;
+ UINT32 Flags;
+ UINT32 Size;
+ UINT64 BaseAddr;
+ UINT32 GsiBase;
+} ACPI_MADT_PLIC;
+
+
+/* 80: OEM data */
typedef struct acpi_madt_oem_data
{
- UINT8 OemData[0];
+ ACPI_FLEX_ARRAY(UINT8, OemData);
} ACPI_MADT_OEM_DATA;
@@ -1484,6 +2046,132 @@ typedef struct acpi_table_mchi
} ACPI_TABLE_MCHI;
+/*******************************************************************************
+ *
+ * MPAM - Memory System Resource Partitioning and Monitoring
+ *
+ * Conforms to "ACPI for Memory System Resource Partitioning and Monitoring 2.0"
+ * Document number: ARM DEN 0065, December, 2022.
+ *
+ ******************************************************************************/
+
+/* MPAM RIS locator types. Table 11, Location types */
+enum AcpiMpamLocatorType {
+ ACPI_MPAM_LOCATION_TYPE_PROCESSOR_CACHE = 0,
+ ACPI_MPAM_LOCATION_TYPE_MEMORY = 1,
+ ACPI_MPAM_LOCATION_TYPE_SMMU = 2,
+ ACPI_MPAM_LOCATION_TYPE_MEMORY_CACHE = 3,
+ ACPI_MPAM_LOCATION_TYPE_ACPI_DEVICE = 4,
+ ACPI_MPAM_LOCATION_TYPE_INTERCONNECT = 5,
+ ACPI_MPAM_LOCATION_TYPE_UNKNOWN = 0xFF
+};
+
+/* MPAM Functional dependency descriptor. Table 10 */
+typedef struct acpi_mpam_func_deps
+{
+ UINT32 Producer;
+ UINT32 Reserved;
+} ACPI_MPAM_FUNC_DEPS;
+
+/* MPAM Processor cache locator descriptor. Table 13 */
+typedef struct acpi_mpam_resource_cache_locator
+{
+ UINT64 CacheReference;
+ UINT32 Reserved;
+} ACPI_MPAM_RESOURCE_CACHE_LOCATOR;
+
+/* MPAM Memory locator descriptor. Table 14 */
+typedef struct acpi_mpam_resource_memory_locator
+{
+ UINT64 ProximityDomain;
+ UINT32 Reserved;
+} ACPI_MPAM_RESOURCE_MEMORY_LOCATOR;
+
+/* MPAM SMMU locator descriptor. Table 15 */
+typedef struct acpi_mpam_resource_smmu_locator
+{
+ UINT64 SmmuInterface;
+ UINT32 Reserved;
+} ACPI_MPAM_RESOURCE_SMMU_INTERFACE;
+
+/* MPAM Memory-side cache locator descriptor. Table 16 */
+typedef struct acpi_mpam_resource_memcache_locator
+{
+ UINT8 Reserved[7];
+ UINT8 Level;
+ UINT32 Reference;
+} ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE;
+
+/* MPAM ACPI device locator descriptor. Table 17 */
+typedef struct acpi_mpam_resource_acpi_locator
+{
+ UINT64 AcpiHwId;
+ UINT32 AcpiUniqueId;
+} ACPI_MPAM_RESOURCE_ACPI_INTERFACE;
+
+/* MPAM Interconnect locator descriptor. Table 18 */
+typedef struct acpi_mpam_resource_interconnect_locator
+{
+ UINT64 InterConnectDescTblOff;
+ UINT32 Reserved;
+} ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE;
+
+/* MPAM Locator structure. Table 12 */
+typedef struct acpi_mpam_resource_generic_locator
+{
+ UINT64 Descriptor1;
+ UINT32 Descriptor2;
+} ACPI_MPAM_RESOURCE_GENERIC_LOCATOR;
+
+typedef union acpi_mpam_resource_locator
+{
+ ACPI_MPAM_RESOURCE_CACHE_LOCATOR CacheLocator;
+ ACPI_MPAM_RESOURCE_MEMORY_LOCATOR MemoryLocator;
+ ACPI_MPAM_RESOURCE_SMMU_INTERFACE SmmuLocator;
+ ACPI_MPAM_RESOURCE_MEMCACHE_INTERFACE MemCacheLocator;
+ ACPI_MPAM_RESOURCE_ACPI_INTERFACE AcpiLocator;
+ ACPI_MPAM_RESOURCE_INTERCONNECT_INTERFACE InterconnectIfcLocator;
+ ACPI_MPAM_RESOURCE_GENERIC_LOCATOR GenericLocator;
+} ACPI_MPAM_RESOURCE_LOCATOR;
+
+/* Memory System Component Resource Node Structure Table 9 */
+typedef struct acpi_mpam_resource_node
+{
+ UINT32 Identifier;
+ UINT8 RISIndex;
+ UINT16 Reserved1;
+ UINT8 LocatorType;
+ ACPI_MPAM_RESOURCE_LOCATOR Locator;
+ UINT32 NumFunctionalDeps;
+} ACPI_MPAM_RESOURCE_NODE;
+
+/* Memory System Component (MSC) Node Structure. Table 4 */
+typedef struct acpi_mpam_msc_node
+{
+ UINT16 Length;
+ UINT8 InterfaceType;
+ UINT8 Reserved;
+ UINT32 Identifier;
+ UINT64 BaseAddress;
+ UINT32 MMIOSize;
+ UINT32 OverflowInterrupt;
+ UINT32 OverflowInterruptFlags;
+ UINT32 Reserved1;
+ UINT32 OverflowInterruptAffinity;
+ UINT32 ErrorInterrupt;
+ UINT32 ErrorInterruptFlags;
+ UINT32 Reserved2;
+ UINT32 ErrorInterruptAffinity;
+ UINT32 MaxNrdyUsec;
+ UINT64 HardwareIdLinkedDevice;
+ UINT32 InstanceIdLinkedDevice;
+ UINT32 NumResourceNodes;
+} ACPI_MPAM_MSC_NODE;
+
+typedef struct acpi_table_mpam
+{
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+} ACPI_TABLE_MPAM;
/*******************************************************************************
*
@@ -1637,6 +2325,52 @@ typedef struct acpi_msct_proximity
/*******************************************************************************
*
+ * MRRM - Memory Range and Region Mapping (MRRM) table
+ * Conforms to "Intel Resource Director Technology Architecture Specification"
+ * Version 1.1, January 2025
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_mrrm
+{
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT8 MaxMemRegion; /* Max Memory Regions supported */
+ UINT8 Flags; /* Region assignment type */
+ UINT8 Reserved[26];
+ UINT8 Memory_Range_Entry[];
+
+} ACPI_TABLE_MRRM;
+
+/* Flags */
+#define ACPI_MRRM_FLAGS_REGION_ASSIGNMENT_OS (1<<0)
+
+/*******************************************************************************
+ *
+ * Memory Range entry - Memory Range entry in MRRM table
+ *
+ ******************************************************************************/
+
+typedef struct acpi_mrrm_mem_range_entry
+{
+ ACPI_SUBTBL_HDR_16 Header;
+ UINT32 Reserved0; /* Reserved */
+ UINT64 AddrBase; /* Base addr of the mem range */
+ UINT64 AddrLen; /* Length of the mem range */
+ UINT16 RegionIdFlags; /* Valid local or remote Region-ID */
+ UINT8 LocalRegionId; /* Platform-assigned static local Region-ID */
+ UINT8 RemoteRegionId; /* Platform-assigned static remote Region-ID */
+ UINT32 Reserved1; /* Reserved */
+ /* Region-ID Programming Registers[] */
+
+} ACPI_MRRM_MEM_RANGE_ENTRY;
+
+/* Values for RegionIdFlags above */
+#define ACPI_MRRM_VALID_REGION_ID_FLAGS_LOCAL (1<<0)
+#define ACPI_MRRM_VALID_REGION_ID_FLAGS_REMOTE (1<<1)
+
+
+/*******************************************************************************
+ *
* MSDM - Microsoft Data Management table
*
* Conforms to "Microsoft Software Licensing Tables (SLIC and MSDM)",
@@ -1762,7 +2496,7 @@ typedef struct acpi_nfit_interleave
UINT16 Reserved; /* Reserved, must be zero */
UINT32 LineCount;
UINT32 LineSize;
- UINT32 LineOffset[1]; /* Variable length */
+ UINT32 LineOffset[]; /* Variable length */
} ACPI_NFIT_INTERLEAVE;
@@ -1773,7 +2507,7 @@ typedef struct acpi_nfit_smbios
{
ACPI_NFIT_HEADER Header;
UINT32 Reserved; /* Reserved, must be zero */
- UINT8 Data[1]; /* Variable length */
+ UINT8 Data[]; /* Variable length */
} ACPI_NFIT_SMBIOS;
@@ -1839,7 +2573,7 @@ typedef struct acpi_nfit_flush_address
UINT32 DeviceHandle;
UINT16 HintCount;
UINT8 Reserved[6]; /* Reserved, must be zero */
- UINT64 HintAddress[1]; /* Variable length */
+ UINT64 HintAddress[]; /* Variable length */
} ACPI_NFIT_FLUSH_ADDRESS;
@@ -1915,320 +2649,212 @@ typedef struct nfit_device_handle
/*******************************************************************************
*
- * NHLT - Non HD Audio Link Table
- *
- * Conforms to: Intel Smart Sound Technology NHLT Specification
- * Version 0.8.1, January 2020.
+ * NHLT - Non HDAudio Link Table
+ * Version 1
*
******************************************************************************/
-/* Main table */
-
typedef struct acpi_table_nhlt
{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT8 EndpointCount;
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT8 EndpointsCount;
+ /*
+ * ACPI_NHLT_ENDPOINT Endpoints[];
+ * ACPI_NHLT_CONFIG OEDConfig;
+ */
} ACPI_TABLE_NHLT;
-typedef struct acpi_table_nhlt_endpoint_count
-{
- UINT8 EndpointCount;
-
-} ACPI_TABLE_NHLT_ENDPOINT_COUNT;
-
typedef struct acpi_nhlt_endpoint
{
- UINT32 DescriptorLength;
- UINT8 LinkType;
- UINT8 InstanceId;
- UINT16 VendorId;
- UINT16 DeviceId;
- UINT16 RevisionId;
- UINT32 SubsystemId;
- UINT8 DeviceType;
- UINT8 Direction;
- UINT8 VirtualBusId;
+ UINT32 Length;
+ UINT8 LinkType;
+ UINT8 InstanceId;
+ UINT16 VendorId;
+ UINT16 DeviceId;
+ UINT16 RevisionId;
+ UINT32 SubsystemId;
+ UINT8 DeviceType;
+ UINT8 Direction;
+ UINT8 VirtualBusId;
+ /*
+ * ACPI_NHLT_CONFIG DeviceConfig;
+ * ACPI_NHLT_FORMATS_CONFIG FormatsConfig;
+ * ACPI_NHLT_DEVICES_INFO DevicesInfo;
+ */
} ACPI_NHLT_ENDPOINT;
-/* Types for LinkType field above */
+/* Values for LinkType field above */
-#define ACPI_NHLT_RESERVED_HD_AUDIO 0
-#define ACPI_NHLT_RESERVED_DSP 1
-#define ACPI_NHLT_PDM 2
-#define ACPI_NHLT_SSP 3
-#define ACPI_NHLT_RESERVED_SLIMBUS 4
-#define ACPI_NHLT_RESERVED_SOUNDWIRE 5
-#define ACPI_NHLT_TYPE_RESERVED 6 /* 6 and above are reserved */
-
-/* All other values above are reserved */
+#define ACPI_NHLT_LINKTYPE_HDA 0
+#define ACPI_NHLT_LINKTYPE_DSP 1
+#define ACPI_NHLT_LINKTYPE_PDM 2
+#define ACPI_NHLT_LINKTYPE_SSP 3
+#define ACPI_NHLT_LINKTYPE_SLIMBUS 4
+#define ACPI_NHLT_LINKTYPE_SDW 5
+#define ACPI_NHLT_LINKTYPE_UAOL 6
/* Values for DeviceId field above */
-#define ACPI_NHLT_PDM_DMIC 0xAE20
-#define ACPI_NHLT_BT_SIDEBAND 0xAE30
-#define ACPI_NHLT_I2S_TDM_CODECS 0xAE23
+#define ACPI_NHLT_DEVICEID_DMIC 0xAE20
+#define ACPI_NHLT_DEVICEID_BT 0xAE30
+#define ACPI_NHLT_DEVICEID_I2S 0xAE34
/* Values for DeviceType field above */
-/* SSP Link */
-
-#define ACPI_NHLT_LINK_BT_SIDEBAND 0
-#define ACPI_NHLT_LINK_FM 1
-#define ACPI_NHLT_LINK_MODEM 2
-/* 3 is reserved */
-#define ACPI_NHLT_LINK_SSP_ANALOG_CODEC 4
-
-/* PDM Link */
-
-#define ACPI_NHLT_PDM_ON_CAVS_1P8 0
-#define ACPI_NHLT_PDM_ON_CAVS_1P5 1
+/* Device types unique to endpoint of LinkType=PDM */
+#define ACPI_NHLT_DEVICETYPE_PDM 0
+#define ACPI_NHLT_DEVICETYPE_PDM_SKL 1
+/* Device types unique to endpoint of LinkType=SSP */
+#define ACPI_NHLT_DEVICETYPE_BT 0
+#define ACPI_NHLT_DEVICETYPE_FM 1
+#define ACPI_NHLT_DEVICETYPE_MODEM 2
+#define ACPI_NHLT_DEVICETYPE_CODEC 4
/* Values for Direction field above */
-#define ACPI_NHLT_DIR_RENDER 0
-#define ACPI_NHLT_DIR_CAPTURE 1
-#define ACPI_NHLT_DIR_RENDER_LOOPBACK 2
-#define ACPI_NHLT_DIR_RENDER_FEEDBACK 3
-#define ACPI_NHLT_DIR_RESERVED 4 /* 4 and above are reserved */
-
-/* Capabilities = 2 */
+#define ACPI_NHLT_DIR_RENDER 0
+#define ACPI_NHLT_DIR_CAPTURE 1
-typedef struct acpi_nhlt_device_specific_config
+typedef struct acpi_nhlt_config
{
- UINT32 CapabilitiesSize;
- UINT8 VirtualSlot;
- UINT8 ConfigType;
+ UINT32 CapabilitiesSize;
+ UINT8 Capabilities[1];
-} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG;
+} ACPI_NHLT_CONFIG;
-/* Capabilities = 3 */
-
-typedef struct acpi_nhlt_device_specific_config_a
-{
- UINT32 CapabilitiesSize;
- UINT8 VirtualSlot;
- UINT8 ConfigType;
- UINT8 ArrayType;
-
-} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_A;
-
-/* Capabilities = 3 */
-
-typedef struct acpi_nhlt_device_specific_config_d
+typedef struct acpi_nhlt_gendevice_config
{
- UINT8 VirtualSlot;
- UINT8 ConfigType;
- UINT8 ArrayType;
-
-} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_D;
+ UINT8 VirtualSlot;
+ UINT8 ConfigType;
-/* Values for Config Type above */
+} ACPI_NHLT_GENDEVICE_CONFIG;
-#define ACPI_NHLT_CONFIG_TYPE_GENERIC 0x00
-#define ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY 0x01
-#define ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK 0x03
-#define ACPI_NHLT_CONFIG_TYPE_RESERVED 0x04 /* 4 and above are reserved */
+/* Values for ConfigType field above */
-/* Capabilities = 0 */
+#define ACPI_NHLT_CONFIGTYPE_GENERIC 0
+#define ACPI_NHLT_CONFIGTYPE_MICARRAY 1
-typedef struct acpi_nhlt_device_specific_config_b
+typedef struct acpi_nhlt_micdevice_config
{
- UINT32 CapabilitiesSize;
-
-} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_B;
-
-/* Capabilities = 1 */
+ UINT8 VirtualSlot;
+ UINT8 ConfigType;
+ UINT8 ArrayType;
-typedef struct acpi_nhlt_device_specific_config_c
-{
- UINT32 CapabilitiesSize;
- UINT8 VirtualSlot;
-
-} ACPI_NHLT_DEVICE_SPECIFIC_CONFIG_C;
-
-typedef struct acpi_nhlt_render_device_specific_config
-{
- UINT32 CapabilitiesSize;
- UINT8 VirtualSlot;
-
-} ACPI_NHLT_RENDER_DEVICE_SPECIFIC_CONFIG;
-
-typedef struct acpi_nhlt_wave_extensible
-{
- UINT16 FormatTag;
- UINT16 ChannelCount;
- UINT32 SamplesPerSec;
- UINT32 AvgBytesPerSec;
- UINT16 BlockAlign;
- UINT16 BitsPerSample;
- UINT16 ExtraFormatSize;
- UINT16 ValidBitsPerSample;
- UINT32 ChannelMask;
- UINT8 SubFormatGuid[16];
+} ACPI_NHLT_MICDEVICE_CONFIG;
-} ACPI_NHLT_WAVE_EXTENSIBLE;
-
-/* Values for ChannelMask above */
-
-#define ACPI_NHLT_SPKR_FRONT_LEFT 0x1
-#define ACPI_NHLT_SPKR_FRONT_RIGHT 0x2
-#define ACPI_NHLT_SPKR_FRONT_CENTER 0x4
-#define ACPI_NHLT_SPKR_LOW_FREQ 0x8
-#define ACPI_NHLT_SPKR_BACK_LEFT 0x10
-#define ACPI_NHLT_SPKR_BACK_RIGHT 0x20
-#define ACPI_NHLT_SPKR_FRONT_LEFT_OF_CENTER 0x40
-#define ACPI_NHLT_SPKR_FRONT_RIGHT_OF_CENTER 0x80
-#define ACPI_NHLT_SPKR_BACK_CENTER 0x100
-#define ACPI_NHLT_SPKR_SIDE_LEFT 0x200
-#define ACPI_NHLT_SPKR_SIDE_RIGHT 0x400
-#define ACPI_NHLT_SPKR_TOP_CENTER 0x800
-#define ACPI_NHLT_SPKR_TOP_FRONT_LEFT 0x1000
-#define ACPI_NHLT_SPKR_TOP_FRONT_CENTER 0x2000
-#define ACPI_NHLT_SPKR_TOP_FRONT_RIGHT 0x4000
-#define ACPI_NHLT_SPKR_TOP_BACK_LEFT 0x8000
-#define ACPI_NHLT_SPKR_TOP_BACK_CENTER 0x10000
-#define ACPI_NHLT_SPKR_TOP_BACK_RIGHT 0x20000
-
-typedef struct acpi_nhlt_format_config
-{
- ACPI_NHLT_WAVE_EXTENSIBLE Format;
- UINT32 CapabilitySize;
- UINT8 Capabilities[];
-
-} ACPI_NHLT_FORMAT_CONFIG;
-
-typedef struct acpi_nhlt_formats_config
-{
- UINT8 FormatsCount;
-
-} ACPI_NHLT_FORMATS_CONFIG;
-
-typedef struct acpi_nhlt_device_specific_hdr
-{
- UINT8 VirtualSlot;
- UINT8 ConfigType;
+/* Values for ArrayType field above */
-} ACPI_NHLT_DEVICE_SPECIFIC_HDR;
-
-/* Types for ConfigType above */
-
-#define ACPI_NHLT_GENERIC 0
-#define ACPI_NHLT_MIC 1
-#define ACPI_NHLT_RENDER 3
-
-typedef struct acpi_nhlt_mic_device_specific_config
-{
- ACPI_NHLT_DEVICE_SPECIFIC_HDR DeviceConfig;
- UINT8 ArrayTypeExt;
-
-} ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG;
-
-/* Values for ArrayTypeExt above */
-
-#define ACPI_NHLT_ARRAY_TYPE_RESERVED 0x09 /* 9 and below are reserved */
-#define ACPI_NHLT_SMALL_LINEAR_2ELEMENT 0x0A
-#define ACPI_NHLT_BIG_LINEAR_2ELEMENT 0x0B
-#define ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT 0x0C
-#define ACPI_NHLT_PLANAR_LSHAPED_4ELEMENT 0x0D
-#define ACPI_NHLT_SECOND_GEOMETRY_LINEAR_4ELEMENT 0x0E
-#define ACPI_NHLT_VENDOR_DEFINED 0x0F
-#define ACPI_NHLT_ARRAY_TYPE_MASK 0x0F
-#define ACPI_NHLT_ARRAY_TYPE_EXT_MASK 0x10
-
-#define ACPI_NHLT_NO_EXTENSION 0x0
-#define ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT (1<<4)
-
-typedef struct acpi_nhlt_vendor_mic_count
-{
- UINT8 MicrophoneCount;
-
-} ACPI_NHLT_VENDOR_MIC_COUNT;
+#define ACPI_NHLT_ARRAYTYPE_LINEAR2_SMALL 0xA
+#define ACPI_NHLT_ARRAYTYPE_LINEAR2_BIG 0xB
+#define ACPI_NHLT_ARRAYTYPE_LINEAR4_GEO1 0xC
+#define ACPI_NHLT_ARRAYTYPE_PLANAR4_LSHAPED 0xD
+#define ACPI_NHLT_ARRAYTYPE_LINEAR4_GEO2 0xE
+#define ACPI_NHLT_ARRAYTYPE_VENDOR 0xF
typedef struct acpi_nhlt_vendor_mic_config
{
- UINT8 Type;
- UINT8 Panel;
- UINT16 SpeakerPositionDistance; /* mm */
- UINT16 HorizontalOffset; /* mm */
- UINT16 VerticalOffset; /* mm */
- UINT8 FrequencyLowBand; /* 5*Hz */
- UINT8 FrequencyHighBand; /* 500*Hz */
- UINT16 DirectionAngle; /* -180 - + 180 */
- UINT16 ElevationAngle; /* -180 - + 180 */
- UINT16 WorkVerticalAngleBegin; /* -180 - + 180 with 2 deg step */
- UINT16 WorkVerticalAngleEnd; /* -180 - + 180 with 2 deg step */
- UINT16 WorkHorizontalAngleBegin; /* -180 - + 180 with 2 deg step */
- UINT16 WorkHorizontalAngleEnd; /* -180 - + 180 with 2 deg step */
+ UINT8 Type;
+ UINT8 Panel;
+ UINT16 SpeakerPositionDistance; /* mm */
+ UINT16 HorizontalOffset; /* mm */
+ UINT16 VerticalOffset; /* mm */
+ UINT8 FrequencyLowBand; /* 5*Hz */
+ UINT8 FrequencyHighBand; /* 500*Hz */
+ UINT16 DirectionAngle; /* -180 - +180 */
+ UINT16 ElevationAngle; /* -180 - +180 */
+ UINT16 WorkVerticalAngleBegin; /* -180 - +180 with 2 deg step */
+ UINT16 WorkVerticalAngleEnd; /* -180 - +180 with 2 deg step */
+ UINT16 WorkHorizontalAngleBegin; /* -180 - +180 with 2 deg step */
+ UINT16 WorkHorizontalAngleEnd; /* -180 - +180 with 2 deg step */
} ACPI_NHLT_VENDOR_MIC_CONFIG;
/* Values for Type field above */
-#define ACPI_NHLT_MIC_OMNIDIRECTIONAL 0
-#define ACPI_NHLT_MIC_SUBCARDIOID 1
-#define ACPI_NHLT_MIC_CARDIOID 2
-#define ACPI_NHLT_MIC_SUPER_CARDIOID 3
-#define ACPI_NHLT_MIC_HYPER_CARDIOID 4
-#define ACPI_NHLT_MIC_8_SHAPED 5
-#define ACPI_NHLT_MIC_RESERVED6 6 /* 6 is reserved */
-#define ACPI_NHLT_MIC_VENDOR_DEFINED 7
-#define ACPI_NHLT_MIC_RESERVED 8 /* 8 and above are reserved */
+#define ACPI_NHLT_MICTYPE_OMNIDIRECTIONAL 0
+#define ACPI_NHLT_MICTYPE_SUBCARDIOID 1
+#define ACPI_NHLT_MICTYPE_CARDIOID 2
+#define ACPI_NHLT_MICTYPE_SUPERCARDIOID 3
+#define ACPI_NHLT_MICTYPE_HYPERCARDIOID 4
+#define ACPI_NHLT_MICTYPE_8SHAPED 5
+#define ACPI_NHLT_MICTYPE_RESERVED 6
+#define ACPI_NHLT_MICTYPE_VENDORDEFINED 7
/* Values for Panel field above */
-#define ACPI_NHLT_MIC_POSITION_TOP 0
-#define ACPI_NHLT_MIC_POSITION_BOTTOM 1
-#define ACPI_NHLT_MIC_POSITION_LEFT 2
-#define ACPI_NHLT_MIC_POSITION_RIGHT 3
-#define ACPI_NHLT_MIC_POSITION_FRONT 4
-#define ACPI_NHLT_MIC_POSITION_BACK 5
-#define ACPI_NHLT_MIC_POSITION_RESERVED 6 /* 6 and above are reserved */
+#define ACPI_NHLT_MICLOCATION_TOP 0
+#define ACPI_NHLT_MICLOCATION_BOTTOM 1
+#define ACPI_NHLT_MICLOCATION_LEFT 2
+#define ACPI_NHLT_MICLOCATION_RIGHT 3
+#define ACPI_NHLT_MICLOCATION_FRONT 4
+#define ACPI_NHLT_MICLOCATION_REAR 5
-typedef struct acpi_nhlt_vendor_mic_device_specific_config
+typedef struct acpi_nhlt_vendor_micdevice_config
{
- ACPI_NHLT_MIC_DEVICE_SPECIFIC_CONFIG MicArrayDeviceConfig;
- UINT8 NumberOfMicrophones;
- ACPI_NHLT_VENDOR_MIC_CONFIG MicConfig[]; /* Indexed by NumberOfMicrophones */
-
-} ACPI_NHLT_VENDOR_MIC_DEVICE_SPECIFIC_CONFIG;
+ UINT8 VirtualSlot;
+ UINT8 ConfigType;
+ UINT8 ArrayType;
+ UINT8 MicsCount;
+ ACPI_NHLT_VENDOR_MIC_CONFIG Mics[];
-/* Microphone SNR and Sensitivity extension */
+} ACPI_NHLT_VENDOR_MICDEVICE_CONFIG;
-typedef struct acpi_nhlt_mic_snr_sensitivity_extension
+typedef union acpi_nhlt_device_config
{
- UINT32 SNR;
- UINT32 Sensitivity;
-
-} ACPI_NHLT_MIC_SNR_SENSITIVITY_EXTENSION;
+ UINT8 VirtualSlot;
+ ACPI_NHLT_GENDEVICE_CONFIG Gen;
+ ACPI_NHLT_MICDEVICE_CONFIG Mic;
+ ACPI_NHLT_VENDOR_MICDEVICE_CONFIG VendorMic;
-/* Render device with feedback */
+} ACPI_NHLT_DEVICE_CONFIG;
-typedef struct acpi_nhlt_render_feedback_device_specific_config
+/* Inherited from Microsoft's WAVEFORMATEXTENSIBLE. */
+typedef struct acpi_nhlt_wave_formatext
{
- UINT8 FeedbackVirtualSlot; /* Render slot in case of capture */
- UINT16 FeedbackChannels; /* Informative only */
- UINT16 FeedbackValidBitsPerSample;
+ UINT16 FormatTag;
+ UINT16 ChannelCount;
+ UINT32 SamplesPerSec;
+ UINT32 AvgBytesPerSec;
+ UINT16 BlockAlign;
+ UINT16 BitsPerSample;
+ UINT16 ExtraFormatSize;
+ UINT16 ValidBitsPerSample;
+ UINT32 ChannelMask;
+ UINT8 Subformat[16];
-} ACPI_NHLT_RENDER_FEEDBACK_DEVICE_SPECIFIC_CONFIG;
+} ACPI_NHLT_WAVE_FORMATEXT;
-/* Non documented structures */
+typedef struct acpi_nhlt_format_config
+{
+ ACPI_NHLT_WAVE_FORMATEXT Format;
+ ACPI_NHLT_CONFIG Config;
+
+} ACPI_NHLT_FORMAT_CONFIG;
-typedef struct acpi_nhlt_device_info_count
+typedef struct acpi_nhlt_formats_config
{
- UINT8 StructureCount;
+ UINT8 FormatsCount;
+ ACPI_NHLT_FORMAT_CONFIG Formats[];
-} ACPI_NHLT_DEVICE_INFO_COUNT;
+} ACPI_NHLT_FORMATS_CONFIG;
typedef struct acpi_nhlt_device_info
{
- UINT8 DeviceId[16];
- UINT8 DeviceInstanceId;
- UINT8 DevicePortId;
+ UINT8 Id[16];
+ UINT8 InstanceId;
+ UINT8 PortId;
} ACPI_NHLT_DEVICE_INFO;
+typedef struct acpi_nhlt_devices_info
+{
+ UINT8 DevicesCount;
+ ACPI_NHLT_DEVICE_INFO Devices[];
+
+} ACPI_NHLT_DEVICES_INFO;
+
/*******************************************************************************
*
@@ -2946,6 +3572,148 @@ enum AcpiRasfStatus
/*******************************************************************************
*
+ * RAS2 - RAS2 Feature Table (ACPI 6.5)
+ * Version 1
+ *
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_ras2 {
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT16 Reserved;
+ UINT16 NumPccDescs;
+
+} ACPI_TABLE_RAS2;
+
+/* RAS2 Platform Communication Channel Descriptor */
+
+typedef struct acpi_ras2_pcc_desc {
+ UINT8 ChannelId;
+ UINT16 Reserved;
+ UINT8 FeatureType;
+ UINT32 Instance;
+
+} ACPI_RAS2_PCC_DESC;
+
+/* RAS2 Platform Communication Channel Shared Memory Region */
+
+typedef struct acpi_ras2_shmem {
+ UINT32 Signature;
+ UINT16 Command;
+ UINT16 Status;
+ UINT16 Version;
+ UINT8 Features[16];
+ UINT8 SetCaps[16];
+ UINT16 NumParamBlks;
+ UINT32 SetCapsStatus;
+
+} ACPI_RAS2_SHMEM;
+
+/* RAS2 Parameter Block Structure for PATROL_SCRUB */
+
+typedef struct acpi_ras2_parameter_block
+{
+ UINT16 Type;
+ UINT16 Version;
+ UINT16 Length;
+
+} ACPI_RAS2_PARAMETER_BLOCK;
+
+/* RAS2 Parameter Block Structure for PATROL_SCRUB */
+
+typedef struct acpi_ras2_patrol_scrub_param {
+ ACPI_RAS2_PARAMETER_BLOCK Header;
+ UINT16 Command;
+ UINT64 ReqAddrRange[2];
+ UINT64 ActlAddrRange[2];
+ UINT32 Flags;
+ UINT32 ScrubParamsOut;
+ UINT32 ScrubParamsIn;
+
+} ACPI_RAS2_PATROL_SCRUB_PARAM;
+
+/* Masks for Flags field above */
+
+#define ACPI_RAS2_SCRUBBER_RUNNING 1
+
+/* RAS2 Parameter Block Structure for LA2PA_TRANSLATION */
+
+typedef struct acpi_ras2_la2pa_translation_parameter {
+ ACPI_RAS2_PARAMETER_BLOCK Header;
+ UINT16 AddrTranslationCommand;
+ UINT64 SubInstId;
+ UINT64 LogicalAddress;
+ UINT64 PhysicalAddress;
+ UINT32 Status;
+
+} ACPI_RAS2_LA2PA_TRANSLATION_PARAM;
+
+/* Channel Commands */
+
+enum AcpiRas2Commands
+{
+ ACPI_RAS2_EXECUTE_RAS2_COMMAND = 1
+};
+
+/* Platform RAS2 Features */
+
+enum AcpiRas2Features
+{
+ ACPI_RAS2_PATROL_SCRUB_SUPPORTED = 0,
+ ACPI_RAS2_LA2PA_TRANSLATION = 1
+};
+
+/* RAS2 Patrol Scrub Commands */
+
+enum AcpiRas2PatrolScrubCommands
+{
+ ACPI_RAS2_GET_PATROL_PARAMETERS = 1,
+ ACPI_RAS2_START_PATROL_SCRUBBER = 2,
+ ACPI_RAS2_STOP_PATROL_SCRUBBER = 3
+};
+
+/* RAS2 LA2PA Translation Commands */
+
+enum AcpiRas2La2PaTranslationCommands
+{
+ ACPI_RAS2_GET_LA2PA_TRANSLATION = 1,
+};
+
+/* RAS2 LA2PA Translation Status values */
+
+enum AcpiRas2La2PaTranslationStatus
+{
+ ACPI_RAS2_LA2PA_TRANSLATION_SUCCESS = 0,
+ ACPI_RAS2_LA2PA_TRANSLATION_FAIL = 1,
+};
+
+/* Channel Command flags */
+
+#define ACPI_RAS2_GENERATE_SCI (1<<15)
+
+/* Status values */
+
+enum AcpiRas2Status
+{
+ ACPI_RAS2_SUCCESS = 0,
+ ACPI_RAS2_NOT_VALID = 1,
+ ACPI_RAS2_NOT_SUPPORTED = 2,
+ ACPI_RAS2_BUSY = 3,
+ ACPI_RAS2_FAILED = 4,
+ ACPI_RAS2_ABORTED = 5,
+ ACPI_RAS2_INVALID_DATA = 6
+};
+
+/* Status flags */
+
+#define ACPI_RAS2_COMMAND_COMPLETE (1)
+#define ACPI_RAS2_SCI_DOORBELL (1<<1)
+#define ACPI_RAS2_ERROR (1<<2)
+#define ACPI_RAS2_STATUS (0x1F<<3)
+
+
+/*******************************************************************************
+ *
* RGRT - Regulatory Graphics Resource Table
* Version 1
*
@@ -2976,6 +3744,160 @@ enum AcpiRgrtImageType
/*******************************************************************************
*
+ * RHCT - RISC-V Hart Capabilities Table
+ * Version 1
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_rhct {
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT32 Flags; /* RHCT flags */
+ UINT64 TimeBaseFreq;
+ UINT32 NodeCount;
+ UINT32 NodeOffset;
+} ACPI_TABLE_RHCT;
+
+/* RHCT Flags */
+
+#define ACPI_RHCT_TIMER_CANNOT_WAKEUP_CPU (1)
+/*
+ * RHCT subtables
+ */
+typedef struct acpi_rhct_node_header {
+ UINT16 Type;
+ UINT16 Length;
+ UINT16 Revision;
+} ACPI_RHCT_NODE_HEADER;
+
+/* Values for RHCT subtable Type above */
+
+enum acpi_rhct_node_type {
+ ACPI_RHCT_NODE_TYPE_ISA_STRING = 0x0000,
+ ACPI_RHCT_NODE_TYPE_CMO = 0x0001,
+ ACPI_RHCT_NODE_TYPE_MMU = 0x0002,
+ ACPI_RHCT_NODE_TYPE_RESERVED = 0x0003,
+ ACPI_RHCT_NODE_TYPE_HART_INFO = 0xFFFF,
+};
+
+/*
+ * RHCT node specific subtables
+ */
+
+/* ISA string node structure */
+typedef struct acpi_rhct_isa_string {
+ UINT16 IsaLength;
+ char Isa[];
+} ACPI_RHCT_ISA_STRING;
+
+typedef struct acpi_rhct_cmo_node {
+ UINT8 Reserved; /* Must be zero */
+ UINT8 CbomSize; /* CBOM size in powerof 2 */
+ UINT8 CbopSize; /* CBOP size in powerof 2 */
+ UINT8 CbozSize; /* CBOZ size in powerof 2 */
+} ACPI_RHCT_CMO_NODE;
+
+typedef struct acpi_rhct_mmu_node {
+ UINT8 Reserved; /* Must be zero */
+ UINT8 MmuType; /* Virtual Address Scheme */
+} ACPI_RHCT_MMU_NODE;
+
+enum acpi_rhct_mmu_type {
+ ACPI_RHCT_MMU_TYPE_SV39 = 0,
+ ACPI_RHCT_MMU_TYPE_SV48 = 1,
+ ACPI_RHCT_MMU_TYPE_SV57 = 2
+};
+
+/* Hart Info node structure */
+typedef struct acpi_rhct_hart_info {
+ UINT16 NumOffsets;
+ UINT32 Uid; /* ACPI processor UID */
+} ACPI_RHCT_HART_INFO;
+
+/*******************************************************************************
+ *
+ * RIMT - RISC-V IO Remapping Table
+ *
+ * https://github.com/riscv-non-isa/riscv-acpi-rimt
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_rimt {
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+ UINT32 NumNodes; /* Number of RIMT Nodes */
+ UINT32 NodeOffset; /* Offset to RIMT Node Array */
+ UINT32 Reserved;
+} ACPI_TABLE_RIMT;
+
+typedef struct acpi_rimt_node {
+ UINT8 Type;
+ UINT8 Revision;
+ UINT16 Length;
+ UINT16 Reserved;
+ UINT16 Id;
+ char NodeData[];
+} ACPI_RIMT_NODE;
+
+enum acpi_rimt_node_type {
+ ACPI_RIMT_NODE_TYPE_IOMMU = 0x0,
+ ACPI_RIMT_NODE_TYPE_PCIE_ROOT_COMPLEX = 0x1,
+ ACPI_RIMT_NODE_TYPE_PLAT_DEVICE = 0x2,
+};
+
+typedef struct acpi_rimt_iommu {
+ UINT8 HardwareId[8]; /* Hardware ID */
+ UINT64 BaseAddress; /* Base Address */
+ UINT32 Flags; /* Flags */
+ UINT32 ProximityDomain; /* Proximity Domain */
+ UINT16 PcieSegmentNumber; /* PCIe Segment number */
+ UINT16 PcieBdf; /* PCIe B/D/F */
+ UINT16 NumInterruptWires; /* Number of interrupt wires */
+ UINT16 InterruptWireOffset; /* Interrupt wire array offset */
+ UINT64 InterruptWire[]; /* Interrupt wire array */
+} ACPI_RIMT_IOMMU;
+
+/* IOMMU Node Flags */
+#define ACPI_RIMT_IOMMU_FLAGS_PCIE (1)
+#define ACPI_RIMT_IOMMU_FLAGS_PXM_VALID (1 << 1)
+
+/* Interrupt Wire Structure */
+typedef struct acpi_rimt_iommu_wire_gsi {
+ UINT32 IrqNum; /* Interrupt Number */
+ UINT32 Flags; /* Flags */
+} ACPI_RIMT_IOMMU_WIRE_GSI;
+
+/* Interrupt Wire Flags */
+#define ACPI_RIMT_GSI_LEVEL_TRIGGERRED (1)
+#define ACPI_RIMT_GSI_ACTIVE_HIGH (1 << 1)
+
+typedef struct acpi_rimt_id_mapping {
+ UINT32 SourceIdBase; /* Source ID Base */
+ UINT32 NumIds; /* Number of IDs */
+ UINT32 DestIdBase; /* Destination Device ID Base */
+ UINT32 DestOffset; /* Destination IOMMU Offset */
+ UINT32 Flags; /* Flags */
+} ACPI_RIMT_ID_MAPPING;
+
+typedef struct acpi_rimt_pcie_rc {
+ UINT32 Flags; /* Flags */
+ UINT16 Reserved; /* Reserved */
+ UINT16 PcieSegmentNumber; /* PCIe Segment number */
+ UINT16 IdMappingOffset; /* ID mapping array offset */
+ UINT16 NumIdMappings; /* Number of ID mappings */
+} ACPI_RIMT_PCIE_RC;
+
+/* PCIe Root Complex Node Flags */
+#define ACPI_RIMT_PCIE_ATS_SUPPORTED (1)
+#define ACPI_RIMT_PCIE_PRI_SUPPORTED (1 << 1)
+
+typedef struct acpi_rimt_platform_device {
+ UINT16 IdMappingOffset; /* ID Mapping array offset */
+ UINT16 NumIdMappings; /* Number of ID mappings */
+ char DeviceName[]; /* Device Object Name */
+} ACPI_RIMT_PLATFORM_DEVICE;
+
+
+/*******************************************************************************
+ *
* SBST - Smart Battery Specification Table
* Version 1
*
@@ -3173,6 +4095,30 @@ enum acpi_svkl_format
ACPI_SVKL_FORMAT_RESERVED = 1 /* 1 and greater are reserved */
};
+/*******************************************************************************
+ *
+ * SWFT - SoundWire File Table
+ * as described in Discovery and Configuration (DisCo) Specification
+ * for SoundWire®
+ * Version 1
+ *
+ ******************************************************************************/
+
+typedef struct acpi_table_swft
+{
+ ACPI_TABLE_HEADER Header; /* Common ACPI table header */
+
+} ACPI_TABLE_SWFT;
+
+typedef struct acpi_swft_file
+{
+ UINT16 VendorID;
+ UINT32 FileID;
+ UINT16 FileVersion;
+ UINT16 FileLength;
+ UINT8 FileData[];
+
+} ACPI_SWFT_FILE;
/*******************************************************************************
*
diff --git a/sys/contrib/dev/acpica/include/actbl3.h b/sys/contrib/dev/acpica/include/actbl3.h
index 7cc633a27b7c..07bc8713becc 100644
--- a/sys/contrib/dev/acpica/include/actbl3.h
+++ b/sys/contrib/dev/acpica/include/actbl3.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -243,10 +243,10 @@ typedef struct acpi_table_slit
/*******************************************************************************
*
* SPCR - Serial Port Console Redirection table
- * Version 2
+ * Version 4
*
* Conforms to "Serial Port Console Redirection Table",
- * Version 1.03, August 10, 2015
+ * Version 1.10, Jan 5, 2023
*
******************************************************************************/
@@ -264,7 +264,7 @@ typedef struct acpi_table_spcr
UINT8 StopBits;
UINT8 FlowControl;
UINT8 TerminalType;
- UINT8 Reserved1;
+ UINT8 Language;
UINT16 PciDeviceId;
UINT16 PciVendorId;
UINT8 PciBus;
@@ -272,7 +272,11 @@ typedef struct acpi_table_spcr
UINT8 PciFunction;
UINT32 PciFlags;
UINT8 PciSegment;
- UINT32 Reserved2;
+ UINT32 UartClkFreq;
+ UINT32 PreciseBaudrate;
+ UINT16 NameSpaceStringLength;
+ UINT16 NameSpaceStringOffset;
+ char NameSpaceString[];
} ACPI_TABLE_SPCR;
@@ -353,7 +357,8 @@ enum AcpiSratType
ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */
ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, /* ACPI 6.3 */
ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, /* ACPI 6.4 */
- ACPI_SRAT_TYPE_RESERVED = 7 /* 7 and greater are reserved */
+ ACPI_SRAT_TYPE_RINTC_AFFINITY = 7, /* ACPI 6.6 */
+ ACPI_SRAT_TYPE_RESERVED = 8 /* 8 and greater are reserved */
};
/*
@@ -437,7 +442,7 @@ typedef struct acpi_srat_gicc_affinity
#define ACPI_SRAT_GICC_ENABLED (1) /* 00: Use affinity structure */
-/* 4: GCC ITS Affinity (ACPI 6.2) */
+/* 4: GIC ITS Affinity (ACPI 6.2) */
typedef struct acpi_srat_gic_its_affinity
{
@@ -454,13 +459,15 @@ typedef struct acpi_srat_gic_its_affinity
* 6: ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY
*/
+#define ACPI_SRAT_DEVICE_HANDLE_SIZE 16
+
typedef struct acpi_srat_generic_affinity
{
ACPI_SUBTABLE_HEADER Header;
UINT8 Reserved;
UINT8 DeviceHandleType;
UINT32 ProximityDomain;
- UINT8 DeviceHandle[16];
+ UINT8 DeviceHandle[ACPI_SRAT_DEVICE_HANDLE_SIZE];
UINT32 Flags;
UINT32 Reserved1;
@@ -471,6 +478,23 @@ typedef struct acpi_srat_generic_affinity
#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */
#define ACPI_SRAT_ARCHITECTURAL_TRANSACTIONS (1<<1) /* ACPI 6.4 */
+/* 7: RINTC Affinity Structure(ACPI 6.6) */
+
+typedef struct acpi_srat_rintc_affinity
+{
+ ACPI_SUBTABLE_HEADER Header;
+ UINT16 Reserved;
+ UINT32 ProximityDomain;
+ UINT32 AcpiProcessorUid;
+ UINT32 Flags;
+ UINT32 ClockDomain;
+
+} ACPI_SRAT_RINTC_AFFINITY;
+
+/* Flags for ACPI_SRAT_RINTC_AFFINITY */
+
+#define ACPI_SRAT_RINTC_ENABLED (1) /* 00: Use affinity structure */
+
/*******************************************************************************
*
* STAO - Status Override Table (_STA override) - ACPI 6.0
@@ -631,6 +655,8 @@ typedef struct acpi_table_tpm2
#define ACPI_TPM2_RESERVED10 10
#define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC 11 /* V1.2 Rev 8 */
#define ACPI_TPM2_RESERVED 12
+#define ACPI_TPM2_COMMAND_BUFFER_WITH_PLUTON 13
+#define ACPI_TPM2_CRB_WITH_ARM_FFA 15
/* Optional trailer appears after any StartMethod subtables */
diff --git a/sys/contrib/dev/acpica/include/actypes.h b/sys/contrib/dev/acpica/include/actypes.h
index 99588f6717a0..3c95887b1678 100644
--- a/sys/contrib/dev/acpica/include/actypes.h
+++ b/sys/contrib/dev/acpica/include/actypes.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -673,12 +673,12 @@ typedef UINT64 ACPI_INTEGER;
#define ACPI_COPY_NAMESEG(dest,src) (*ACPI_CAST_PTR (UINT32, (dest)) = *ACPI_CAST_PTR (UINT32, (src)))
#else
#define ACPI_COMPARE_NAMESEG(a,b) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAMESEG_SIZE))
-#define ACPI_COPY_NAMESEG(dest,src) (strncpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAMESEG_SIZE))
+#define ACPI_COPY_NAMESEG(dest,src) (memcpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAMESEG_SIZE))
#endif
/* Support for the special RSDP signature (8 characters) */
-#define ACPI_VALIDATE_RSDP_SIG(a) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_SIG_RSDP, 8))
+#define ACPI_VALIDATE_RSDP_SIG(a) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_SIG_RSDP, (sizeof(a) < 8) ? ACPI_NAMESEG_SIZE : 8))
#define ACPI_MAKE_RSDP_SIG(dest) (memcpy (ACPI_CAST_PTR (char, (dest)), ACPI_SIG_RSDP, 8))
/* Support for OEMx signature (x can be any character) */
@@ -741,9 +741,11 @@ typedef UINT64 ACPI_INTEGER;
#define ACPI_STATE_D0 (UINT8) 0
#define ACPI_STATE_D1 (UINT8) 1
#define ACPI_STATE_D2 (UINT8) 2
-#define ACPI_STATE_D3 (UINT8) 3
-#define ACPI_D_STATES_MAX ACPI_STATE_D3
-#define ACPI_D_STATE_COUNT 4
+#define ACPI_STATE_D3_HOT (UINT8) 3
+#define ACPI_STATE_D3_COLD (UINT8) 4
+#define ACPI_STATE_D3 ACPI_STATE_D3_COLD
+#define ACPI_D_STATES_MAX ACPI_STATE_D3_COLD
+#define ACPI_D_STATE_COUNT 5
#define ACPI_STATE_C0 (UINT8) 0
#define ACPI_STATE_C1 (UINT8) 1
@@ -1335,6 +1337,12 @@ typedef struct acpi_pcc_info {
UINT8 *InternalBuffer;
} ACPI_PCC_INFO;
+/* Special Context data for FFH Opregion (ACPI 6.5) */
+
+typedef struct acpi_ffh_info {
+ UINT64 Offset;
+ UINT64 Length;
+} ACPI_FFH_INFO;
typedef
ACPI_STATUS (*ACPI_ADR_SPACE_SETUP) (
@@ -1474,7 +1482,7 @@ typedef struct acpi_mem_space_context
} ACPI_MEM_SPACE_CONTEXT;
-typedef struct acpi_data_table_space_context
+typedef struct acpi_data_table_mapping
{
void *Pointer;
@@ -1555,6 +1563,7 @@ typedef enum
#define ACPI_OSI_WIN_10_19H1 0x14
#define ACPI_OSI_WIN_10_20H1 0x15
#define ACPI_OSI_WIN_11 0x16
+#define ACPI_OSI_WIN_11_22H2 0x17
/* Definitions of getopt */
@@ -1567,4 +1576,12 @@ typedef enum
#define ACPI_FALLTHROUGH do {} while(0)
#endif
+#ifndef ACPI_FLEX_ARRAY
+#define ACPI_FLEX_ARRAY(TYPE, NAME) TYPE NAME[0]
+#endif
+
+#ifndef ACPI_NONSTRING
+#define ACPI_NONSTRING /* No terminating NUL character */
+#endif
+
#endif /* __ACTYPES_H__ */
diff --git a/sys/contrib/dev/acpica/include/acutils.h b/sys/contrib/dev/acpica/include/acutils.h
index 5d49fa137c75..06b8eb0bda6b 100644
--- a/sys/contrib/dev/acpica/include/acutils.h
+++ b/sys/contrib/dev/acpica/include/acutils.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -196,6 +196,8 @@ extern const char *AcpiGbl_SbDecode[];
extern const char *AcpiGbl_FcDecode[];
extern const char *AcpiGbl_PtDecode[];
extern const char *AcpiGbl_PtypDecode[];
+extern const char *AcpiGbl_ClockInputMode[];
+extern const char *AcpiGbl_ClockInputScale[];
#endif
/*
@@ -318,6 +320,31 @@ AcpiUtCheckAndRepairAscii (
/*
+ * utcksum - Checksum utilities
+ */
+UINT8
+AcpiUtGenerateChecksum (
+ void *Table,
+ UINT32 Length,
+ UINT8 OriginalChecksum);
+
+UINT8
+AcpiUtChecksum (
+ UINT8 *Buffer,
+ UINT32 Length);
+
+ACPI_STATUS
+AcpiUtVerifyCdatChecksum (
+ ACPI_TABLE_CDAT *CdatTable,
+ UINT32 Length);
+
+ACPI_STATUS
+AcpiUtVerifyChecksum (
+ ACPI_TABLE_HEADER *Table,
+ UINT32 Length);
+
+
+/*
* utnonansi - Non-ANSI C library functions
*/
void
diff --git a/sys/contrib/dev/acpica/include/acuuid.h b/sys/contrib/dev/acpica/include/acuuid.h
index bc41fa40bab9..071e9a5ad610 100644
--- a/sys/contrib/dev/acpica/include/acuuid.h
+++ b/sys/contrib/dev/acpica/include/acuuid.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -211,5 +211,6 @@
#define UUID_HIERARCHICAL_DATA_EXTENSION "dbb8e3e6-5886-4ba6-8795-1319f52a966b"
#define UUID_CORESIGHT_GRAPH "3ecbc8b6-1d0e-4fb3-8107-e627f805c6cd"
#define UUID_USB4_CAPABILITIES "23a0d13a-26ab-486c-9c5f-0ffa525a575a"
-
+#define UUID_1ST_FUNCTION_ID "893f00a6-660c-494e-bcfd-3043f4fb67c0"
+#define UUID_2ND_FUNCTION_ID "107ededd-d381-4fd7-8da9-08e9a6c79644"
#endif /* __ACUUID_H__ */
diff --git a/sys/contrib/dev/acpica/include/amlcode.h b/sys/contrib/dev/acpica/include/amlcode.h
index 25d591e55d95..6bb591904794 100644
--- a/sys/contrib/dev/acpica/include/amlcode.h
+++ b/sys/contrib/dev/acpica/include/amlcode.h
@@ -10,7 +10,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/amlresrc.h b/sys/contrib/dev/acpica/include/amlresrc.h
index e89cd824d11d..4482ed378ab1 100644
--- a/sys/contrib/dev/acpica/include/amlresrc.h
+++ b/sys/contrib/dev/acpica/include/amlresrc.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -213,6 +213,8 @@
#define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */
#define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8And16(1), 16(2) */
#define ACPI_RESTAG_VENDORDATA "_VEN"
+#define ACPI_RESTAG_FQN "_FQN"
+#define ACPI_RESTAG_FQD "_FQD"
/* Default sizes for "small" resource descriptors */
@@ -501,7 +503,10 @@ typedef struct aml_resource_extended_irq
AML_RESOURCE_LARGE_HEADER_COMMON
UINT8 Flags;
UINT8 InterruptCount;
- UINT32 Interrupts[1];
+ union {
+ UINT32 Interrupt;
+ ACPI_FLEX_ARRAY(UINT32, Interrupts);
+ };
/* ResSourceIndex, ResSource optional fields follow */
} AML_RESOURCE_EXTENDED_IRQ;
@@ -703,6 +708,23 @@ typedef struct aml_resource_pin_config
} AML_RESOURCE_PIN_CONFIG;
+#define AML_RESOURCE_CLOCK_INPUT_REVISION 1 /* ACPI 6.5 */
+
+typedef struct aml_resource_clock_input
+{
+ AML_RESOURCE_LARGE_HEADER_COMMON
+ UINT8 RevisionId;
+ UINT16 Flags;
+ UINT16 FrequencyDivisor;
+ UINT32 FrequencyNumerator;
+ /*
+ * Optional fields follow immediately:
+ * 1) Resource Source index
+ * 2) Resource Source String
+ */
+} AML_RESOURCE_CLOCK_INPUT;
+
+
#define AML_RESOURCE_PIN_CONFIG_REVISION 1 /* ACPI 6.2 */
typedef struct aml_resource_pin_group
@@ -770,10 +792,6 @@ typedef struct aml_resource_pin_group_config
#define AML_RESOURCE_PIN_GROUP_CONFIG_REVISION 1 /* ACPI 6.2 */
-/* restore default alignment */
-
-#pragma pack()
-
/* Union of all resource descriptors, so we can allocate the worst case */
typedef union aml_resource
@@ -819,6 +837,7 @@ typedef union aml_resource
AML_RESOURCE_PIN_GROUP PinGroup;
AML_RESOURCE_PIN_GROUP_FUNCTION PinGroupFunction;
AML_RESOURCE_PIN_GROUP_CONFIG PinGroupConfig;
+ AML_RESOURCE_CLOCK_INPUT ClockInput;
/* Utility overlays */
@@ -829,6 +848,9 @@ typedef union aml_resource
} AML_RESOURCE;
+/* restore default alignment */
+
+#pragma pack()
/* Interfaces used by both the disassembler and compiler */
diff --git a/sys/contrib/dev/acpica/include/platform/acenv.h b/sys/contrib/dev/acpica/include/platform/acenv.h
index 6b0cd34880a3..b842965bfca0 100644
--- a/sys/contrib/dev/acpica/include/platform/acenv.h
+++ b/sys/contrib/dev/acpica/include/platform/acenv.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -358,6 +358,8 @@
#elif defined(_AED_EFI) || defined(_GNU_EFI) || defined(_EDK2_EFI)
#include "acefi.h"
+#elif defined(__ZEPHYR__)
+#include "aczephyr.h"
#else
/* Unknown environment */
@@ -401,6 +403,12 @@
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pending) Pending = 0
#endif
+/* NULL/invalid value to use for destroyed or not-yet-created semaphores. */
+
+#ifndef ACPI_SEMAPHORE_NULL
+#define ACPI_SEMAPHORE_NULL NULL
+#endif
+
/* Flush CPU cache - used when going to sleep. Wbinvd or similar. */
#ifndef ACPI_FLUSH_CPU_CACHE
diff --git a/sys/contrib/dev/acpica/include/platform/acenvex.h b/sys/contrib/dev/acpica/include/platform/acenvex.h
index 32db36c6e86c..e9632619abf5 100644
--- a/sys/contrib/dev/acpica/include/platform/acenvex.h
+++ b/sys/contrib/dev/acpica/include/platform/acenvex.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/include/platform/acfreebsd.h b/sys/contrib/dev/acpica/include/platform/acfreebsd.h
index 022f7165e3cb..b537a25f9fbd 100644
--- a/sys/contrib/dev/acpica/include/platform/acfreebsd.h
+++ b/sys/contrib/dev/acpica/include/platform/acfreebsd.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -179,10 +179,10 @@
#include <sys/ctype.h>
#include <sys/param.h>
+#include <sys/stdarg.h>
#include <sys/systm.h>
#include <sys/libkern.h>
#include <machine/acpica_machdep.h>
-#include <machine/stdarg.h>
#include "opt_acpi.h"
diff --git a/sys/contrib/dev/acpica/include/platform/acgcc.h b/sys/contrib/dev/acpica/include/platform/acgcc.h
index 50a440f82981..39ff864fa5d7 100644
--- a/sys/contrib/dev/acpica/include/platform/acgcc.h
+++ b/sys/contrib/dev/acpica/include/platform/acgcc.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License
@@ -152,7 +152,6 @@
#ifndef __ACGCC_H__
#define __ACGCC_H__
-#ifndef _KERNEL
/*
* Use compiler specific <stdarg.h> is a good practice for even when
* -nostdinc is specified (i.e., ACPI_USE_STANDARD_HEADERS undefined.
@@ -165,6 +164,7 @@ typedef __builtin_va_list va_list;
#define va_arg(v, l) __builtin_va_arg(v, l)
#define va_copy(d, s) __builtin_va_copy(d, s)
#else
+#if !defined(__FreeBSD__) || !defined(_KERNEL)
#include <stdarg.h>
#endif
#endif
@@ -213,4 +213,25 @@ typedef __builtin_va_list va_list;
#define ACPI_FALLTHROUGH __attribute__((__fallthrough__))
#endif
+/*
+ * Flexible array members are not allowed to be part of a union under
+ * C99, but this is not for any technical reason. Work around the
+ * limitation.
+ */
+#ifndef __cplusplus
+#define ACPI_FLEX_ARRAY(TYPE, NAME) \
+ struct { \
+ struct { } __Empty_ ## NAME; \
+ TYPE NAME[]; \
+ }
+#endif
+
+/*
+ * Explicitly mark strings that lack a terminating NUL character so
+ * that ACPICA can be built with -Wunterminated-string-initialization.
+ */
+#if __has_attribute(__nonstring__)
+#define ACPI_NONSTRING __attribute__((__nonstring__))
+#endif
+
#endif /* __ACGCC_H__ */
diff --git a/sys/contrib/dev/acpica/include/platform/acgccex.h b/sys/contrib/dev/acpica/include/platform/acgccex.h
index 035b999d95c3..bb3b55cf2ca6 100644
--- a/sys/contrib/dev/acpica/include/platform/acgccex.h
+++ b/sys/contrib/dev/acpica/include/platform/acgccex.h
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, 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/os_specific/service_layers/osgendbg.c b/sys/contrib/dev/acpica/os_specific/service_layers/osgendbg.c
index 56d4681f12d1..eb34274ce670 100644
--- a/sys/contrib/dev/acpica/os_specific/service_layers/osgendbg.c
+++ b/sys/contrib/dev/acpica/os_specific/service_layers/osgendbg.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2015, 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/os_specific/service_layers/osunixxf.c b/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c
index 92a461c68993..81cda5e4eb65 100644
--- a/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c
+++ b/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c
@@ -8,7 +8,7 @@
*
* 1. Copyright Notice
*
- * Some or all of this work - Copyright (c) 1999 - 2022, Intel Corp.
+ * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
* All rights reserved.
*
* 2. License