head 1.1; branch 1.1.1; access; symbols netbsd-11-0-RC5:1.1.1.5 netbsd-11-0-RC4:1.1.1.5 acpica-20260408:1.1.1.5 netbsd-11-0-RC3:1.1.1.5 netbsd-11-0-RC2:1.1.1.5 netbsd-11-0-RC1:1.1.1.5 acpica-20251212:1.1.1.5 acpica-20250807:1.1.1.5 perseant-exfatfs-base-20250801:1.1.1.5 netbsd-11:1.1.1.5.0.54 netbsd-11-base:1.1.1.5 acpica-20241212:1.1.1.5 netbsd-10-1-RELEASE:1.1.1.5 acpica-20240827:1.1.1.5 perseant-exfatfs-base-20240630:1.1.1.5 perseant-exfatfs:1.1.1.5.0.52 perseant-exfatfs-base:1.1.1.5 netbsd-8-3-RELEASE:1.1.1.5 netbsd-9-4-RELEASE:1.1.1.5 netbsd-10-0-RELEASE:1.1.1.5 netbsd-10-0-RC6:1.1.1.5 netbsd-10-0-RC5:1.1.1.5 netbsd-10-0-RC4:1.1.1.5 netbsd-10-0-RC3:1.1.1.5 netbsd-10-0-RC2:1.1.1.5 thorpej-ifq:1.1.1.5.0.50 thorpej-ifq-base:1.1.1.5 thorpej-altq-separation:1.1.1.5.0.48 thorpej-altq-separation-base:1.1.1.5 netbsd-10-0-RC1:1.1.1.5 acpica-20230628:1.1.1.5 netbsd-10:1.1.1.5.0.46 netbsd-10-base:1.1.1.5 acpica-20221020:1.1.1.5 bouyer-sunxi-drm:1.1.1.5.0.44 bouyer-sunxi-drm-base:1.1.1.5 acpica-20220331:1.1.1.5 netbsd-9-3-RELEASE:1.1.1.5 acpica-20211217:1.1.1.5 acpica-20210930:1.1.1.5 thorpej-i2c-spi-conf2:1.1.1.5.0.42 thorpej-i2c-spi-conf2-base:1.1.1.5 thorpej-futex2:1.1.1.5.0.40 thorpej-futex2-base:1.1.1.5 thorpej-cfargs2:1.1.1.5.0.38 thorpej-cfargs2-base:1.1.1.5 acpica-20210604:1.1.1.5 cjep_sun2x-base1:1.1.1.5 cjep_sun2x:1.1.1.5.0.36 cjep_sun2x-base:1.1.1.5 cjep_staticlib_x-base1:1.1.1.5 netbsd-9-2-RELEASE:1.1.1.5 cjep_staticlib_x:1.1.1.5.0.34 cjep_staticlib_x-base:1.1.1.5 thorpej-i2c-spi-conf:1.1.1.5.0.32 thorpej-i2c-spi-conf-base:1.1.1.5 acpica-20210331:1.1.1.5 thorpej-cfargs:1.1.1.5.0.30 thorpej-cfargs-base:1.1.1.5 acpica-20201113:1.1.1.5 thorpej-futex:1.1.1.5.0.28 thorpej-futex-base:1.1.1.5 netbsd-9-1-RELEASE:1.1.1.5 acpica-20200717:1.1.1.5 acpica-20200430:1.1.1.5 bouyer-xenpvh-base2:1.1.1.5 phil-wifi-20200421:1.1.1.5 bouyer-xenpvh-base1:1.1.1.5 phil-wifi-20200411:1.1.1.5 bouyer-xenpvh:1.1.1.5.0.26 bouyer-xenpvh-base:1.1.1.5 is-mlppp:1.1.1.5.0.24 is-mlppp-base:1.1.1.5 phil-wifi-20200406:1.1.1.5 netbsd-8-2-RELEASE:1.1.1.5 acpica-20200326:1.1.1.5 ad-namecache-base3:1.1.1.5 netbsd-9-0-RELEASE:1.1.1.5 netbsd-9-0-RC2:1.1.1.5 ad-namecache-base2:1.1.1.5 ad-namecache-base1:1.1.1.5 ad-namecache:1.1.1.5.0.22 ad-namecache-base:1.1.1.5 acpica-20191213:1.1.1.5 netbsd-9-0-RC1:1.1.1.5 phil-wifi-20191119:1.1.1.5 acpica-20190816:1.1.1.5 netbsd-9:1.1.1.5.0.20 netbsd-9-base:1.1.1.5 phil-wifi-20190609:1.1.1.5 netbsd-8-1-RELEASE:1.1.1.5 netbsd-8-1-RC1:1.1.1.5 acpica-20190405:1.1.1.5 isaki-audio2:1.1.1.5.0.18 isaki-audio2-base:1.1.1.5 pgoyette-compat-merge-20190127:1.1.1.5 pgoyette-compat-20190127:1.1.1.5 pgoyette-compat-20190118:1.1.1.5 acpica-20181213:1.1.1.5 pgoyette-compat-1226:1.1.1.5 pgoyette-compat-1126:1.1.1.5 pgoyette-compat-1020:1.1.1.5 pgoyette-compat-0930:1.1.1.5 pgoyette-compat-0906:1.1.1.5 netbsd-7-2-RELEASE:1.1.1.2 acpica-20180810:1.1.1.5 pgoyette-compat-0728:1.1.1.5 netbsd-8-0-RELEASE:1.1.1.5 phil-wifi:1.1.1.5.0.16 phil-wifi-base:1.1.1.5 pgoyette-compat-0625:1.1.1.5 netbsd-8-0-RC2:1.1.1.5 pgoyette-compat-0521:1.1.1.5 acpica-20180427:1.1.1.5 pgoyette-compat-0502:1.1.1.5 pgoyette-compat-0422:1.1.1.5 netbsd-8-0-RC1:1.1.1.5 pgoyette-compat-0415:1.1.1.5 acpica-20180313:1.1.1.5 pgoyette-compat-0407:1.1.1.5 pgoyette-compat-0330:1.1.1.5 pgoyette-compat-0322:1.1.1.5 pgoyette-compat-0315:1.1.1.5 netbsd-7-1-2-RELEASE:1.1.1.2 pgoyette-compat:1.1.1.5.0.14 pgoyette-compat-base:1.1.1.5 netbsd-7-1-1-RELEASE:1.1.1.2 tls-maxphys-base-20171202:1.1.1.5 acpica-20171110:1.1.1.5 matt-nb8-mediatek:1.1.1.5.0.12 matt-nb8-mediatek-base:1.1.1.5 acpica-20170831:1.1.1.5 nick-nhusb-base-20170825:1.1.1.5 perseant-stdc-iso10646:1.1.1.5.0.10 perseant-stdc-iso10646-base:1.1.1.5 netbsd-8:1.1.1.5.0.8 netbsd-8-base:1.1.1.5 prg-localcount2-base3:1.1.1.5 prg-localcount2-base2:1.1.1.5 prg-localcount2-base1:1.1.1.5 acpica-20170303:1.1.1.5 prg-localcount2:1.1.1.5.0.6 prg-localcount2-base:1.1.1.5 pgoyette-localcount-20170426:1.1.1.5 bouyer-socketcan-base1:1.1.1.5 jdolecek-ncq:1.1.1.5.0.4 jdolecek-ncq-base:1.1.1.5 pgoyette-localcount-20170320:1.1.1.5 netbsd-7-1:1.1.1.2.0.10 netbsd-7-1-RELEASE:1.1.1.2 netbsd-7-1-RC2:1.1.1.2 nick-nhusb-base-20170204:1.1.1.5 acpica-20170119:1.1.1.5 netbsd-7-nhusb-base-20170116:1.1.1.2 bouyer-socketcan:1.1.1.5.0.2 bouyer-socketcan-base:1.1.1.5 pgoyette-localcount-20170107:1.1.1.5 netbsd-7-1-RC1:1.1.1.2 nick-nhusb-base-20161204:1.1.1.5 acpica-20160930:1.1.1.5 pgoyette-localcount-20161104:1.1.1.4 netbsd-7-0-2-RELEASE:1.1.1.2 nick-nhusb-base-20161004:1.1.1.4 localcount-20160914:1.1.1.4 netbsd-7-nhusb:1.1.1.2.0.8 netbsd-7-nhusb-base:1.1.1.2 pgoyette-localcount-20160806:1.1.1.4 pgoyette-localcount-20160726:1.1.1.4 acpica-20160527:1.1.1.4 pgoyette-localcount:1.1.1.4.0.2 pgoyette-localcount-base:1.1.1.4 nick-nhusb-base-20160907:1.1.1.4 nick-nhusb-base-20160529:1.1.1.4 netbsd-7-0-1-RELEASE:1.1.1.2 acpica-20160422:1.1.1.4 nick-nhusb-base-20160422:1.1.1.3 nick-nhusb-base-20160319:1.1.1.3 acpica-20160108:1.1.1.3 nick-nhusb-base-20151226:1.1.1.3 netbsd-7-0:1.1.1.2.0.6 netbsd-7-0-RELEASE:1.1.1.2 nick-nhusb-base-20150921:1.1.1.3 acpica-20150717:1.1.1.3 netbsd-7-0-RC3:1.1.1.2 netbsd-7-0-RC2:1.1.1.2 netbsd-7-0-RC1:1.1.1.2 nick-nhusb-base-20150606:1.1.1.3 acpica-20150410:1.1.1.3 nick-nhusb-base-20150406:1.1.1.3 nick-nhusb:1.1.1.3.0.2 nick-nhusb-base:1.1.1.3 acpica-20140926:1.1.1.3 netbsd-6-0-6-RELEASE:1.1.1.1 netbsd-6-1-5-RELEASE:1.1.1.1 netbsd-7:1.1.1.2.0.4 netbsd-7-base:1.1.1.2 yamt-pagecache-base9:1.1.1.2 yamt-pagecache-tag8:1.1.1.1 netbsd-6-1-4-RELEASE:1.1.1.1 netbsd-6-0-5-RELEASE:1.1.1.1 tls-earlyentropy:1.1.1.2.0.2 tls-earlyentropy-base:1.1.1.2 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.2 riastradh-drm2-base3:1.1.1.2 netbsd-6-1-3-RELEASE:1.1.1.1 netbsd-6-0-4-RELEASE:1.1.1.1 acpica-20131218:1.1.1.2 netbsd-6-1-2-RELEASE:1.1.1.1 netbsd-6-0-3-RELEASE:1.1.1.1 rmind-smpnet-nbase:1.1.1.2 netbsd-6-1-1-RELEASE:1.1.1.1 riastradh-drm2-base2:1.1.1.1 riastradh-drm2-base1:1.1.1.1 riastradh-drm2:1.1.1.1.0.24 riastradh-drm2-base:1.1.1.1 rmind-smpnet:1.1.1.1.0.16 rmind-smpnet-base:1.1.1.2 netbsd-6-1:1.1.1.1.0.22 netbsd-6-0-2-RELEASE:1.1.1.1 netbsd-6-1-RELEASE:1.1.1.1 khorben-n900:1.1.1.1.0.20 netbsd-6-1-RC4:1.1.1.1 netbsd-6-1-RC3:1.1.1.1 agc-symver:1.1.1.1.0.18 agc-symver-base:1.1.1.1 netbsd-6-1-RC2:1.1.1.1 netbsd-6-1-RC1:1.1.1.1 yamt-pagecache-base8:1.1.1.1 netbsd-6-0-1-RELEASE:1.1.1.1 yamt-pagecache-base7:1.1.1.1 matt-nb6-plus-nbase:1.1.1.1 yamt-pagecache-base6:1.1.1.1 netbsd-6-0:1.1.1.1.0.14 netbsd-6-0-RELEASE:1.1.1.1 netbsd-6-0-RC2:1.1.1.1 tls-maxphys:1.1.1.1.0.12 tls-maxphys-base:1.1.1.2 matt-nb6-plus:1.1.1.1.0.10 matt-nb6-plus-base:1.1.1.1 netbsd-6-0-RC1:1.1.1.1 jmcneill-usbmp-base10:1.1.1.1 yamt-pagecache-base5:1.1.1.1 jmcneill-usbmp-base9:1.1.1.1 yamt-pagecache-base4:1.1.1.1 jmcneill-usbmp-base8:1.1.1.1 jmcneill-usbmp-base7:1.1.1.1 jmcneill-usbmp-base6:1.1.1.1 jmcneill-usbmp-base5:1.1.1.1 jmcneill-usbmp-base4:1.1.1.1 jmcneill-usbmp-base3:1.1.1.1 jmcneill-usbmp-pre-base2:1.1.1.1 jmcneill-usbmp-base2:1.1.1.1 netbsd-6:1.1.1.1.0.8 netbsd-6-base:1.1.1.1 jmcneill-usbmp:1.1.1.1.0.6 jmcneill-usbmp-base:1.1.1.1 jmcneill-audiomp3:1.1.1.1.0.4 jmcneill-audiomp3-base:1.1.1.1 yamt-pagecache-base3:1.1.1.1 yamt-pagecache-base2:1.1.1.1 yamt-pagecache:1.1.1.1.0.2 yamt-pagecache-base:1.1.1.1 acpica-20110623:1.1.1.1 intel:1.1.1; locks; strict; comment @# @; 1.1 date 2011.06.28.09.02.03; author jruoho; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2011.06.28.09.02.03; author jruoho; state Exp; branches 1.1.1.1.2.1 1.1.1.1.12.1 1.1.1.1.16.1; next 1.1.1.2; 1.1.1.2 date 2013.12.27.18.45.57; author christos; state Exp; branches; next 1.1.1.3; commitid V0GPYwkMFFnhONix; 1.1.1.3 date 2014.10.25.20.57.55; author christos; state Exp; branches 1.1.1.3.2.1; next 1.1.1.4; commitid qP5aPM6NbKDtPCVx; 1.1.1.4 date 2016.05.04.18.15.54; author christos; state Exp; branches 1.1.1.4.2.1; next 1.1.1.5; commitid PbTOz8vOTknW1c5z; 1.1.1.5 date 2016.11.11.19.14.17; author christos; state Exp; branches; next ; commitid 9OM3cX8uEKwTcKtz; 1.1.1.1.2.1 date 2014.05.22.11.40.39; author yamt; state Exp; branches; next ; commitid VUUXuyNWnt3AKwBx; 1.1.1.1.12.1 date 2014.08.20.00.03.54; author tls; state Exp; branches; next 1.1.1.1.12.2; commitid jTnpym9Qu0o4R1Nx; 1.1.1.1.12.2 date 2017.12.03.11.37.41; author jdolecek; state Exp; branches; next ; commitid XcIYRZTAh1LmerhA; 1.1.1.1.16.1 date 2014.05.18.17.45.50; author rmind; state Exp; branches; next ; commitid mL5ZYSzpqK6QS2Bx; 1.1.1.3.2.1 date 2016.05.29.08.44.33; author skrll; state Exp; branches; next 1.1.1.3.2.2; commitid 8mlnPW6uSaJU1m8z; 1.1.1.3.2.2 date 2016.12.05.10.55.22; author skrll; state Exp; branches; next ; commitid 4H3tiQVJXN6oEMwz; 1.1.1.4.2.1 date 2017.01.07.08.56.44; author pgoyette; state Exp; branches; next ; commitid uEL0C1YuiJrlV0Bz; desc @@ 1.1 log @Initial revision @ text @# # acpibin - Binary ACPI table utility # # # Note: This makefile is intended to be used from within the native # ACPICA directory structure, from under generate/unix. It specifically # places all object files in a generate/unix subdirectory, not within # the various ACPICA source directories. This prevents collisions # between different compilations of the same source file with different # compile options, and prevents pollution of the source code. # include ../Makefile.config PROG = acpibin # # Flags specific to acpibin # CFLAGS+= \ -DACPI_BIN_APP \ -I$(ACPICA_TOOLS)/acpibin OBJS = \ abcompare.o \ abmain.o \ utalloc.o \ utcache.o \ utdebug.o \ utdecode.o \ utglobal.o \ utlock.o \ utmath.o \ utmisc.o \ utmutex.o \ utstate.o \ utxferror.o \ osunixxf.o \ getopt.o # # Root rule # $(PROG) : $(OBJS) $(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(COPYPROG) # # acpibin source # abcompare.o : $(ACPICA_TOOLS)/acpibin/abcompare.c $(COMPILE) abmain.o : $(ACPICA_TOOLS)/acpibin/abmain.c $(COMPILE) # # ACPICA core source - common # getopt.o : $(ACPICA_COMMON)/getopt.c $(COMPILE) # # ACPICA core source # utalloc.o : $(ACPICA_CORE)/utilities/utalloc.c $(COMPILE) utcache.o : $(ACPICA_CORE)/utilities/utcache.c $(COMPILE) utdebug.o : $(ACPICA_CORE)/utilities/utdebug.c $(COMPILE) utdecode.o : $(ACPICA_CORE)/utilities/utdecode.c $(COMPILE) utglobal.o : $(ACPICA_CORE)/utilities/utglobal.c $(COMPILE) utlock.o : $(ACPICA_CORE)/utilities/utlock.c $(COMPILE) utmath.o : $(ACPICA_CORE)/utilities/utmath.c $(COMPILE) utmisc.o : $(ACPICA_CORE)/utilities/utmisc.c $(COMPILE) utmutex.o : $(ACPICA_CORE)/utilities/utmutex.c $(COMPILE) utstate.o : $(ACPICA_CORE)/utilities/utstate.c $(COMPILE) utxferror.o : $(ACPICA_CORE)/utilities/utxferror.c $(COMPILE) # # Unix OS services layer (OSL) # osunixxf.o : $(ACPICA_OSL)/osunixxf.c $(COMPILE) clean : rm -f $(PROG) $(PROG).exe $(OBJS) install : $(INSTALLPROG) @ 1.1.1.1 log @Import ACPICA 20110623. Selected changes since 20110211 include, among other things, fixes to _PRW parsing, fix to a regression with the Load() operator, improvements in NULL package element removal, support for "spurious" global lock interrupts, execution of orphaned _REG methods under acpiec(4), and smaller iasl(8) improvements. @ text @@ 1.1.1.1.12.1 log @Rebase to HEAD as of a few days ago. @ text @d14 1 a14 2 FINAL_PROG = ../$(BINDIR)/acpibin PROG = $(OBJDIR)/acpibin d17 1 a17 1 # Search paths for source files d19 20 a38 27 vpath %.c \ $(ACPIBIN)\ $(ACPICA_UTILITIES)\ $(ACPICA_COMMON)\ $(ACPICA_OSL) HEADERS = \ $(wildcard $(ACPIBIN)/*.h) OBJECTS = \ $(OBJDIR)/abcompare.o\ $(OBJDIR)/abmain.o\ $(OBJDIR)/utalloc.o\ $(OBJDIR)/utbuffer.o\ $(OBJDIR)/utcache.o\ $(OBJDIR)/utdecode.o\ $(OBJDIR)/utexcep.o\ $(OBJDIR)/utglobal.o\ $(OBJDIR)/utlock.o\ $(OBJDIR)/utmath.o\ $(OBJDIR)/utmisc.o\ $(OBJDIR)/utmutex.o\ $(OBJDIR)/utstate.o\ $(OBJDIR)/utstring.o\ $(OBJDIR)/utxferror.o\ $(OBJDIR)/osunixxf.o\ $(OBJDIR)/getopt.o d41 23 a63 1 # Flags specific to acpibin d65 32 a96 3 CFLAGS += \ -DACPI_BIN_APP\ -I$(ACPIBIN) d99 1 a99 1 # Common Rules d101 9 a109 1 include ../Makefile.rules @ 1.1.1.1.12.2 log @update from HEAD @ text @a31 2 $(OBJDIR)/cmfsize.o\ $(OBJDIR)/getopt.o\ a32 1 $(OBJDIR)/utascii.o\ a34 1 $(OBJDIR)/utdebug.o\ d45 2 a46 1 $(OBJDIR)/osunixxf.o @ 1.1.1.1.2.1 log @sync with head. for a reference, the tree before this commit was tagged as yamt-pagecache-tag8. this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments") @ text @d14 1 a14 2 FINAL_PROG = ../$(BINDIR)/acpibin PROG = $(OBJDIR)/acpibin d17 1 a17 1 # Search paths for source files d19 20 a38 27 vpath %.c \ $(ACPIBIN)\ $(ACPICA_UTILITIES)\ $(ACPICA_COMMON)\ $(ACPICA_OSL) HEADERS = \ $(wildcard $(ACPIBIN)/*.h) OBJECTS = \ $(OBJDIR)/abcompare.o\ $(OBJDIR)/abmain.o\ $(OBJDIR)/utalloc.o\ $(OBJDIR)/utbuffer.o\ $(OBJDIR)/utcache.o\ $(OBJDIR)/utdecode.o\ $(OBJDIR)/utexcep.o\ $(OBJDIR)/utglobal.o\ $(OBJDIR)/utlock.o\ $(OBJDIR)/utmath.o\ $(OBJDIR)/utmisc.o\ $(OBJDIR)/utmutex.o\ $(OBJDIR)/utstate.o\ $(OBJDIR)/utstring.o\ $(OBJDIR)/utxferror.o\ $(OBJDIR)/osunixxf.o\ $(OBJDIR)/getopt.o d41 23 a63 1 # Flags specific to acpibin d65 32 a96 3 CFLAGS += \ -DACPI_BIN_APP\ -I$(ACPIBIN) d99 1 a99 1 # Common Rules d101 9 a109 1 include ../Makefile.rules @ 1.1.1.1.16.1 log @sync with head @ text @d14 1 a14 2 FINAL_PROG = ../$(BINDIR)/acpibin PROG = $(OBJDIR)/acpibin d17 1 a17 1 # Search paths for source files d19 20 a38 27 vpath %.c \ $(ACPIBIN)\ $(ACPICA_UTILITIES)\ $(ACPICA_COMMON)\ $(ACPICA_OSL) HEADERS = \ $(wildcard $(ACPIBIN)/*.h) OBJECTS = \ $(OBJDIR)/abcompare.o\ $(OBJDIR)/abmain.o\ $(OBJDIR)/utalloc.o\ $(OBJDIR)/utbuffer.o\ $(OBJDIR)/utcache.o\ $(OBJDIR)/utdecode.o\ $(OBJDIR)/utexcep.o\ $(OBJDIR)/utglobal.o\ $(OBJDIR)/utlock.o\ $(OBJDIR)/utmath.o\ $(OBJDIR)/utmisc.o\ $(OBJDIR)/utmutex.o\ $(OBJDIR)/utstate.o\ $(OBJDIR)/utstring.o\ $(OBJDIR)/utxferror.o\ $(OBJDIR)/osunixxf.o\ $(OBJDIR)/getopt.o d41 23 a63 1 # Flags specific to acpibin d65 32 a96 3 CFLAGS += \ -DACPI_BIN_APP\ -I$(ACPIBIN) d99 1 a99 1 # Common Rules d101 9 a109 1 include ../Makefile.rules @ 1.1.1.2 log @import new acpica @ text @d14 1 a14 2 FINAL_PROG = ../$(BINDIR)/acpibin PROG = $(OBJDIR)/acpibin d17 1 a17 1 # Search paths for source files d19 20 a38 27 vpath %.c \ $(ACPIBIN)\ $(ACPICA_UTILITIES)\ $(ACPICA_COMMON)\ $(ACPICA_OSL) HEADERS = \ $(wildcard $(ACPIBIN)/*.h) OBJECTS = \ $(OBJDIR)/abcompare.o\ $(OBJDIR)/abmain.o\ $(OBJDIR)/utalloc.o\ $(OBJDIR)/utbuffer.o\ $(OBJDIR)/utcache.o\ $(OBJDIR)/utdecode.o\ $(OBJDIR)/utexcep.o\ $(OBJDIR)/utglobal.o\ $(OBJDIR)/utlock.o\ $(OBJDIR)/utmath.o\ $(OBJDIR)/utmisc.o\ $(OBJDIR)/utmutex.o\ $(OBJDIR)/utstate.o\ $(OBJDIR)/utstring.o\ $(OBJDIR)/utxferror.o\ $(OBJDIR)/osunixxf.o\ $(OBJDIR)/getopt.o d41 23 a63 1 # Flags specific to acpibin d65 32 a96 3 CFLAGS += \ -DACPI_BIN_APP\ -I$(ACPIBIN) d99 1 a99 1 # Common Rules d101 9 a109 1 include ../Makefile.rules @ 1.1.1.3 log @---------------------------------------- 26 September 2014. Summary of changes for version 20140926: 1) ACPICA kernel-resident subsystem: Updated the GPIO operation region handler interface (GeneralPurposeIo). In order to support GPIO Connection objects with multiple pins, along with the related Field objects, the following changes to the interface have been made: The Address is now defined to be the offset in bits of the field unit from the previous invocation of a Connection. It can be viewed as a "Pin Number Index" into the connection resource descriptor. The BitWidth is the exact bit width of the field. It is usually one bit, but not always. See the ACPICA reference guide (section 8.8.6.2.1) for additional information and examples. GPE support: During ACPICA/GPE initialization, ensure that all GPEs with corresponding _Lxx/_Exx methods are disabled (they may have been enabled by the firmware), so that they cannot fire until they are enabled via AcpiUpdateAllGpes. Rafael J. Wysocki. Added a new return flag for the Event/GPE status interfaces -- AcpiGetEventStatus and AcpiGetGpeStatus. The new ACPI_EVENT_FLAGS_HAS_HANDLER flag is used to indicate that the event or GPE currently has a handler associated with it, and can thus actually affect the system. Lv Zheng. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 99.1K Code, 27.3K Data, 126.4K Total Debug Version: 192.8K Code, 79.9K Data, 272.7K Total Previous Release: Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total Debug Version: 192.1K Code, 79.8K Data, 271.9K Total 2) iASL Compiler/Disassembler and Tools: iASL: Fixed a memory allocation/free regression introduced in 20140828 that could cause the compiler to crash. This was introduced inadvertently during the effort to eliminate compiler memory leaks. ACPICA BZ 1111, 1113. iASL: Removed two error messages that have been found to create false positives, until they can be fixed and fully validated (ACPICA BZ 1112): 1) Illegal forward reference within a method 2) Illegal reference across two methods iASL: Implemented a new option (-lm) to create a hardware mapping file that summarizes all GPIO, I2C, SPI, and UART connections. This option works for both the compiler and disassembler. See the iASL compiler user guide for additional information and examples (section 6.4.6). AcpiDump: Added support for the version 1 (ACPI 1.0) RSDP in addition to version 2. This corrects the AE_BAD_HEADER exception seen on systems with a version 1 RSDP. Lv Zheng ACPICA BZ 1097. AcpiExec: For Unix versions, don't attempt to put STDIN into raw mode unless STDIN is actually a terminal. Assists with batch-mode processing. ACPICA BZ 1114. Disassembler/AcpiHelp: Added another large group of recognized _HID values. ---------------------------------------- 28 August 2014. Summary of changes for version 20140828: 1) ACPICA kernel-resident subsystem: Fixed a problem related to the internal use of the Timer() operator where a 64-bit divide could cause an attempted link to a double-precision math library. This divide is not actually necessary, so the code was restructured to eliminate it. Lv Zheng. ACPI 5.1: Added support for the runtime validation of the _DSD package (similar to the iASL support). ACPI 5.1/Headers: Added support for the GICC affinity subtable to the SRAT table. Hanjun Guo . Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total Debug Version: 192.1K Code, 79.8K Data, 271.9K Total Previous Release: Non-Debug Version: 98.7K Code, 27.3K Data, 126.0K Total1 Debug Version: 192.0K Code, 79.7K Data, 271.7K Total 2) iASL Compiler/Disassembler and Tools: AcpiExec: Fixed a problem on unix systems where the original terminal state was not always properly restored upon exit. Seen when using the -v option. ACPICA BZ 1104. iASL: Fixed a problem with the validation of the ranges/length within the Memory24 resource descriptor. There was a boundary condition when the range was equal to the (length -1) caused by the fact that these values are defined in 256-byte blocks, not bytes. ACPICA BZ 1098 Disassembler: Fixed a problem with the GpioInt descriptor interrupt polarity flags. The flags are actually 2 bits, not 1, and the "ActiveBoth" keyword is now supported properly. ACPI 5.1: Added the GICC affinity subtable to the SRAT table. Supported in the disassembler, data table compiler, and table template generator. iASL: Added a requirement for Device() objects that one of either a _HID or _ADR must exist within the scope of a Device, as per the ACPI specification. Remove a similar requirement that was incorrectly in place for the _DSD object. iASL: Added error detection for illegal named references within control methods that would cause runtime failures. Now trapped as errors are: 1) References to objects within a non-parent control method. 2) Forward references (within a method) -- for control methods, AML interpreters use a one-pass parse of control methods. ACPICA BZ 1008. iASL: Added error checking for dependencies related to the _PSx power methods. ACPICA BZ 1029. 1) For _PS0, one of these must exist within the same scope: _PS1, _PS2, _PS3. 2) For _PS1, _PS2, and PS3: A _PS0 object must exist within the same scope. iASL and table compiler: Cleanup miscellaneous memory leaks by fully deploying the existing object and string caches and adding new caches for the table compiler. iASL: Split the huge parser source file into multiple subfiles to improve manageability. Generation now requires the M4 macro preprocessor, which is part of the Bison distribution on both unix and windows platforms. AcpiSrc: Fixed and removed all extraneous warnings generated during entire ACPICA source code scan and/or conversion. ---------------------------------------- 24 July 2014. Summary of changes for version 20140724: The ACPI 5.1 specification has been released and is available at: http://uefi.org/specs/access 0) ACPI 5.1 support in ACPICA: ACPI 5.1 is fully supported in ACPICA as of this release. New predefined names. Support includes iASL and runtime ACPICA validation. _CCA (Cache Coherency Attribute). _DSD (Device-Specific Data). David Box. Modifications to existing ACPI tables. Support includes headers, iASL Data Table compiler, disassembler, and the template generator. FADT - New fields and flags. Graeme Gregory. GTDT - One new subtable and new fields. Tomasz Nowicki. MADT - Two new subtables. Tomasz Nowicki. PCCT - One new subtable. Miscellaneous. New notification type for System Resource Affinity change events. 1) ACPICA kernel-resident subsystem: Fixed a regression introduced in 20140627 where a fault can happen during the deletion of Alias AML namespace objects. The problem affected both the core ACPICA and the ACPICA tools including iASL and AcpiExec. Implemented a new GPE public interface, AcpiMarkGpeForWake. Provides a simple mechanism to enable wake GPEs that have no associated handler or control method. Rafael Wysocki. Updated the AcpiEnableGpe interface to disallow the enable if there is no handler or control method associated with the particular GPE. This will help avoid meaningless GPEs and even GPE floods. Rafael Wysocki. Updated GPE handling and dispatch by disabling the GPE before clearing the status bit for edge-triggered GPEs. Lv Zheng. Added Timer() support to the AML Debug object. The current timer value is now displayed with each invocation of (Store to) the debug object to enable simple generation of execution times for AML code (method execution for example.) ACPICA BZ 1093. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 98.7K Code, 27.3K Data, 126.0K Total Debug Version: 192.0K Code, 79.7K Data, 271.7K Total Previous Release: Non-Debug Version: 98.7K Code, 27.2K Data, 125.9K Total Debug Version: 191.7K Code, 79.6K Data, 271.3K Total 2) iASL Compiler/Disassembler and Tools: Fixed an issue with the recently added local printf implementation, concerning width/precision specifiers that could cause incorrect output. Lv Zheng. ACPICA BZ 1094. Disassembler: Added support to detect buffers that contain UUIDs and disassemble them to an invocation of the ToUUID operator. Also emit commented descriptions of known ACPI-related UUIDs. AcpiHelp: Added support to display known ACPI-related UUIDs. New option, -u. Adds three new files. iASL: Update table compiler and disassembler for DMAR table changes that were introduced in September 2013. With assistance by David Woodhouse. ---------------------------------------- 27 June 2014. Summary of changes for version 20140627: 1) ACPICA kernel-resident subsystem: Formatted Output: Implemented local versions of standard formatted output utilities such as printf, etc. Over time, it has been discovered that there are in fact many portability issues with printf, and the addition of this feature will fix/prevent these issues once and for all. Some known issues are summarized below: 1) Output of 64-bit values is not portable. For example, UINT64 is %ull for the Linux kernel and is %uI64 for some MSVC versions. 2) Invoking printf consistently in a manner that is portable across both 32-bit and 64-bit platforms is difficult at best in many situations. 3) The output format for pointers varies from system to system (leading zeros especially), and leads to inconsistent output from ACPICA across platforms. 4) Certain platform-specific printf formats may conflict with ACPICA use. 5) If there is no local C library available, ACPICA now has local support for printf. -- To address these printf issues in a complete manner, ACPICA now directly implements a small subset of printf format specifiers, only those that it requires. Adds a new file, utilities/utprint.c. Lv Zheng. Implemented support for ACPICA generation within the EFI environment. Initially, the AcpiDump utility is supported in the UEFI shell environment. Lv Zheng. Added a new external interface, AcpiLogError, to improve ACPICA portability. This allows the host to redirect error messages from the ACPICA utilities. Lv Zheng. Added and deployed new OSL file I/O interfaces to improve ACPICA portability: AcpiOsOpenFile AcpiOsCloseFile AcpiOsReadFile AcpiOsWriteFile AcpiOsGetFileOffset AcpiOsSetFileOffset There are C library implementations of these functions in the new file service_layers/oslibcfs.c -- however, the functions can be implemented by the local host in any way necessary. Lv Zheng. Implemented a mechanism to disable/enable ACPI table checksum validation at runtime. This can be useful when loading tables very early during OS initialization when it may not be possible to map the entire table in order to compute the checksum. Lv Zheng. Fixed a buffer allocation issue for the Generic Serial Bus support. Originally, a fixed buffer length was used. This change allows for variable-length buffers based upon the protocol indicated by the field access attributes. Reported by Lan Tianyu. Lv Zheng. Fixed a problem where an object detached from a namespace node was not properly terminated/cleared and could cause a circular list problem if reattached. ACPICA BZ 1063. David Box. Fixed a possible recursive lock acquisition in hwregs.c. Rakib Mullick. Fixed a possible memory leak in an error return path within the function AcpiUtCopyIobjectToIobject. ACPICA BZ 1087. Colin Ian King. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 98.7K Code, 27.2K Data, 125.9K Total Debug Version: 191.7K Code, 79.6K Data, 271.3K Total Previous Release: Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total Debug Version: 189.5K Code, 79.7K Data, 269.2K Total 2) iASL Compiler/Disassembler and Tools: Disassembler: Add dump of ASCII equivalent text within a comment at the end of each line of the output for the Buffer() ASL operator. AcpiDump: Miscellaneous changes: Fixed repetitive table dump in -n mode. For older EFI platforms, use the ACPI 1.0 GUID during RSDP search if the ACPI 2.0 GUID fails. iASL: Fixed a problem where the compiler could fault if incorrectly given an acpidump output file as input. ACPICA BZ 1088. David Box. AcpiExec/AcpiNames: Fixed a problem where these utilities could fault if they are invoked without any arguments. Debugger: Fixed a possible memory leak in an error return path. ACPICA BZ 1086. Colin Ian King. Disassembler: Cleaned up a block of code that extracts a parent Op object. Added a comment that explains that the parent is guaranteed to be valid in this case. ACPICA BZ 1069. ---------------------------------------- 24 April 2014. Summary of changes for version 20140424: 1) ACPICA kernel-resident subsystem: Implemented support to skip/ignore NULL address entries in the RSDT/XSDT. Some of these tables are known to contain a trailing NULL entry. Lv Zheng. Removed an extraneous error message for the case where there are a large number of system GPEs (> 124). This was the "32-bit FADT register is too long to convert to GAS struct" message, which is irrelevant for GPEs since the GPEx_BLK_LEN fields of the FADT are always used instead of the (limited capacity) GAS bit length. Also, several changes to ensure proper support for GPE numbers > 255, where some "GPE number" fields were 8-bits internally. Implemented and deployed additional configuration support for the public ACPICA external interfaces. Entire classes of interfaces can now be easily modified or configured out, replaced by stubbed inline functions by default. Lv Zheng. Moved all public ACPICA runtime configuration globals to the public ACPICA external interface file for convenience. Also, removed some obsolete/unused globals. See the file acpixf.h. Lv Zheng. Documentation: Added a new section to the ACPICA reference describing the maximum number of GPEs that can be supported by the FADT-defined GPEs in block zero and one. About 1200 total. See section 4.4.1 of the ACPICA reference. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total Debug Version: 189.5K Code, 79.7K Data, 269.2K Total Previous Release: Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total Debug Version: 189.7K Code, 79.5K Data, 269.2K Total 2) iASL Compiler/Disassembler and Tools: iASL and disassembler: Add full support for the LPIT table (Low Power Idle Table). Includes support in the disassembler, data table compiler, and template generator. AcpiDump utility: 1) Add option to force the use of the RSDT (over the XSDT). 2) Improve validation of the RSDP signature (use 8 chars instead of 4). iASL: Add check for predefined packages that are too large. For predefined names that contain subpackages, check if each subpackage is too large. (Check for too small already exists.) Debugger: Updated the GPE command (which simulates a GPE by executing the GPE code paths in ACPICA). The GPE device is now optional, and defaults to the GPE 0/1 FADT-defined blocks. Unix application OSL: Update line-editing support. Add additional error checking and take care not to reset terminal attributes on exit if they were never set. This should help guarantee that the terminal is always left in the previous state on program exit. ---------------------------------------- 25 March 2014. Summary of changes for version 20140325: 1) ACPICA kernel-resident subsystem: Updated the auto-serialize feature for control methods. This feature automatically serializes all methods that create named objects in order to prevent runtime errors. The update adds support to ignore the currently executing AML SyncLevel when invoking such a method, in order to prevent disruption of any existing SyncLevel priorities that may exist in the AML code. Although the use of SyncLevels is relatively rare, this change fixes a regression where an AE_AML_MUTEX_ORDER exception can appear on some machines starting with the 20140214 release. Added a new external interface to allow the host to install ACPI tables very early, before the namespace is even created. AcpiInstallTable gives the host additional flexibility for ACPI table management. Tables can be installed directly by the host as if they had originally appeared in the XSDT/RSDT. Installed tables can be SSDTs or other ACPI data tables (anything except the DSDT and FACS). Adds a new file, tbdata.c, along with additional internal restructuring and cleanup. See the ACPICA Reference for interface details. Lv Zheng. Added validation of the checksum for all incoming dynamically loaded tables (via external interfaces or via AML Load/LoadTable operators). Lv Zheng. Updated the use of the AcpiOsWaitEventsComplete interface during Notify and GPE handler removal. Restructured calls to eliminate possible race conditions. Lv Zheng. Added a warning for the use/execution of the ASL/AML Unload (table) operator. This will help detect and identify machines that use this operator if and when it is ever used. This operator has never been seen in the field and the usage model and possible side-effects of the drastic runtime action of a full table removal are unknown. Reverted the use of #pragma push/pop which was introduced in the 20140214 release. It appears that push and pop are not implemented by enough compilers to make the use of this feature feasible for ACPICA at this time. However, these operators may be deployed in a future ACPICA release. Added the missing EXPORT_SYMBOL macros for the install and remove SCI handler interfaces. Source code generation: 1) Disabled the use of the "strchr" macro for the gcc-specific generation. For some versions of gcc, this macro can periodically expose a compiler bug which in turn causes compile-time error(s). 2) Added support for PPC64 compilation. Colin Ian King. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total Debug Version: 189.7K Code, 79.5K Data, 269.2K Total Previous Release: Non-Debug Version: 96.5K Code, 27.2K Data, 123.7K Total Debug Version: 188.6K Code, 79.0K Data, 267.6K Total 2) iASL Compiler/Disassembler and Tools: Disassembler: Added several new features to improve the readability of the resulting ASL code. Extra information is emitted within comment fields in the ASL code: 1) Known _HID/_CID values are decoded to descriptive text. 2) Standard values for the Notify() operator are decoded to descriptive text. 3) Target operands are expanded to full pathnames (in a comment) when possible. Disassembler: Miscellaneous updates for extern() handling: 1) Abort compiler if file specified by -fe option does not exist. 2) Silence unnecessary warnings about argument count mismatches. 3) Update warning messages concerning unresolved method externals. 4) Emit "UnknownObj" keyword for externals whose type cannot be determined. AcpiHelp utility: 1) Added the -a option to display both the ASL syntax and the AML encoding for an input ASL operator. This effectively displays all known information about an ASL operator with one AcpiHelp invocation. 2) Added substring match support (similar to a wildcard) for the -i (_HID/PNP IDs) option. iASL/Disassembler: Since this tool does not yet support execution on big- endian machines, added detection of endianness and an error message if execution is attempted on big-endian. Support for big-endian within iASL is a feature that is on the ACPICA to-be-done list. AcpiBin utility: 1) Remove option to extract binary files from an acpidump; this function is made obsolete by the AcpiXtract utility. 2) General cleanup of open files and allocated buffers. ---------------------------------------- 14 February 2014. Summary of changes for version 20140214: 1) ACPICA kernel-resident subsystem: Implemented a new mechanism to proactively prevent problems with ill- behaved reentrant control methods that create named ACPI objects. This behavior is illegal as per the ACPI specification, but is nonetheless frequently seen in the field. Previously, this could lead to an AE_ALREADY_EXISTS exception if the method was actually entered by more than one thread. This new mechanism detects such methods at table load time and marks them "serialized" to prevent reentrancy. A new global option, AcpiGbl_AutoSerializeMethods, has been added to disable this feature if desired. This mechanism and global option obsoletes and supersedes the previous AcpiGbl_SerializeAllMethods option. Added the "Windows 2013" string to the _OSI support. ACPICA will now respond TRUE to _OSI queries with this string. It is the stated policy of ACPICA to add new strings to the _OSI support as soon as possible after they are defined. See the full ACPICA _OSI policy which has been added to the utilities/utosi.c file. Hardened/updated the _PRT return value auto-repair code: 1) Do not abort the repair on a single subpackage failure, continue to check all subpackages. 2) Add check for the minimum subpackage length (4). 3) Properly handle extraneous NULL package elements. Added support to avoid the possibility of infinite loops when traversing object linked lists. Never allow an infinite loop, even in the face of corrupted object lists. ACPICA headers: Deployed the use of #pragma pack(push) and #pragma pack(pop) directives to ensure that the ACPICA headers are independent of compiler settings or other host headers. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 96.5K Code, 27.2K Data, 123.7K Total Debug Version: 188.6K Code, 79.0K Data, 267.6K Total Previous Release: Non-Debug Version: 96.2K Code, 27.0K Data, 123.2K Total Debug Version: 187.5K Code, 78.3K Data, 265.8K Total 2) iASL Compiler/Disassembler and Tools: iASL/Table-compiler: Fixed a problem with support for the SPMI table. The first reserved field was incorrectly forced to have a value of zero. This change correctly forces the field to have a value of one. ACPICA BZ 1081. Debugger: Added missing support for the "Extra" and "Data" subobjects when displaying object data. Debugger: Added support to display entire object linked lists when displaying object data. iASL: Removed the obsolete -g option to obtain ACPI tables from the Windows registry. This feature has been superseded by the acpidump utility. ---------------------------------------- 14 January 2014. Summary of changes for version 20140114: 1) ACPICA kernel-resident subsystem: Updated all ACPICA copyrights and signons to 2014. Added the 2014 copyright to all module headers and signons, including the standard Linux header. This affects virtually every file in the ACPICA core subsystem, iASL compiler, all ACPICA utilities, and the test suites. Improved parameter validation for AcpiInstallGpeBlock. Added the following checks: 1) The incoming device handle refers to type ACPI_TYPE_DEVICE. 2) There is not already a GPE block attached to the device. Likewise, with AcpiRemoveGpeBlock, ensure that the incoming object is a device. Correctly support "references" in the ACPI_OBJECT. This change fixes the support to allow references (namespace nodes) to be passed as arguments to control methods via the evaluate object interface. This is probably most useful for testing purposes, however. Improved support for 32/64 bit physical addresses in printf()-like output. This change improves the support for physical addresses in printf debug statements and other output on both 32-bit and 64-bit hosts. It consistently outputs the appropriate number of bytes for each host. The %p specifier is unsatisfactory since it does not emit uniform output on all hosts/clib implementations (on some, leading zeros are not supported, leading to difficult-to-read output). Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 96.2K Code, 27.0K Data, 123.2K Total Debug Version: 187.5K Code, 78.3K Data, 265.8K Total Previous Release: Non-Debug Version: 96.1K Code, 27.0K Data, 123.1K Total Debug Version: 185.6K Code, 77.3K Data, 262.9K Total 2) iASL Compiler/Disassembler and Tools: iASL: Fix a possible fault when using the Connection() operator. Fixes a problem if the parent Field definition for the Connection operator refers to an operation region that does not exist. ACPICA BZ 1064. AcpiExec: Load of local test tables is now optional. The utility has the capability to load some various tables to test features of ACPICA. However, there are enough of them that the output of the utility became confusing. With this change, only the required local tables are displayed (RSDP, XSDT, etc.) along with the actual tables loaded via the command line specification. This makes the default output simler and easier to understand. The -el command line option restores the original behavior for testing purposes. AcpiExec: Added support for overlapping operation regions. This change expands the simulation of operation regions by supporting regions that overlap within the given address space. Supports SystemMemory and SystemIO. ASLTS test suite updated also. David Box. ACPICA BZ 1031. AcpiExec: Added region handler support for PCI_Config and EC spaces. This allows AcpiExec to simulate these address spaces, similar to the current support for SystemMemory and SystemIO. Debugger: Added new command to read/write/compare all namespace objects. The command "test objects" will exercise the entire namespace by writing new values to each data object, and ensuring that the write was successful. The original value is then restored and verified. Debugger: Added the "test predefined" command. This change makes this test public and puts it under the new "test" command. The test executes each and every predefined name within the current namespace. @ text @a31 2 $(OBJDIR)/cmfsize.o\ $(OBJDIR)/getopt.o\ a34 1 $(OBJDIR)/utdebug.o\ a41 1 $(OBJDIR)/utprint.o\ d45 2 a46 2 $(OBJDIR)/oslibcfs.o\ $(OBJDIR)/osunixxf.o @ 1.1.1.3.2.1 log @Sync with HEAD @ text @a34 1 $(OBJDIR)/utascii.o\ @ 1.1.1.3.2.2 log @Sync with HEAD @ text @d46 1 d50 1 @ 1.1.1.4 log @22 April 2016. Summary of changes for version 20160422: 1) ACPICA kernel-resident subsystem: Fixed a regression in the GAS (generic address structure) arbitrary bit support in AcpiHwRead/AcpiHwWrite. Problem could cause incorrect behavior and incorrect return values. Lv Zheng. ACPICA BZ 1270. ACPI 6.0: Added support for new/renamed resource macros. One new argument was added to each of these macros, and the original name has been deprecated. The AML disassembler will always disassemble to the new names. Support for the new macros was added to iASL, disassembler, resource manager, and the acpihelp utility. ACPICA BZ 1274. I2cSerialBus -> I2cSerialBusV2 SpiSerialBus -> SpiSerialBusV2 UartSerialBus -> UartSerialBusV2 ACPI 6.0: Added support for a new integer field that was appended to the package object returned by the _BIX method. This adds iASL compile-time and AML runtime error checking. ACPICA BZ 1273. ACPI 6.1: Added support for a new PCCT subtable, "HW-Reduced Comm Subspace Type2" (Headers, Disassembler, and data table compiler). Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 137.4K Code, 52.6K Data, 190.0K Total Debug Version: 201.5K Code, 82.2K Data, 283.7K Total Previous Release: Non-Debug Version: 137.1K Code, 51.5K Data, 188.6K Total Debug Version: 201.0K Code, 82.0K Data, 283.0K Total 2) iASL Compiler/Disassembler and Tools: iASL: Implemented an ASL grammar extension to allow/enable executable "module-level code" to be created and executed under the various operators that create new scopes. This type of AML code is already supported in all known AML interpreters, and the grammar change will appear in the next version of the ACPI specification. Simplifies the conditional runtime creation of named objects under these object types: Device PowerResource Processor Scope ThermalZone iASL: Implemented a new ASL extension, a "For" loop macro to add greater ease-of-use to the ASL language. The syntax is similar to the corresponding C operator, and is implemented with the existing AML While opcode -- thus requiring no changes to existing AML interpreters. For (Initialize, Predicate, Update) {TermList} Grammar: ForTerm := For ( Initializer // Nothing | TermArg => ComputationalData Predicate // Nothing | TermArg => ComputationalData Update // Nothing | TermArg => ComputationalData ) {TermList} iASL: The _HID/_ADR detection and validation has been enhanced to search under conditionals in order to allow these objects to be conditionally created at runtime. iASL: Fixed several issues with the constant folding feature. The improvement allows better detection and resolution of statements that can be folded at compile time. ACPICA BZ 1266. iASL/Disassembler: Fixed a couple issues with the Else{If{}...} conversion to the ASL ElseIf operator where incorrect ASL code could be generated. iASL/Disassembler: Fixed a problem with the ASL+ code disassembly where sometimes an extra (and extraneous) set of parentheses were emitted for some combinations of operators. Although this did not cause any problems with recompilation of the disassembled code, it made the code more difficult to read. David Box. ACPICA BZ 1231. iASL: Changed to ignore the unreferenced detection for predefined names of resource descriptor elements, when the resource descriptor is created/defined within a control method. iASL: Disassembler: Fix a possible fault with externally declared Buffer objects. ---------------------------------------- 18 March 2016. Summary of changes for version 20160318: 1) ACPICA kernel-resident subsystem: Added support for arbitrary bit lengths and bit offsets for registers defined by the Generic Address Structure. Previously, only aligned bit lengths of 8/16/32/64 were supported. This was sufficient for many years, but recently some machines have been seen that require arbitrary bit- level support. ACPICA BZ 1240. Lv Zheng. Fixed an issue where the \_SB._INI method sometimes must be evaluated before any _REG methods are evaluated. Lv Zheng. Implemented several changes related to ACPI table support (Headers/Disassembler/TableCompiler): NFIT: For ACPI 6.1, updated to add some additional new fields and constants. FADT: Updated a warning message and set compliance to ACPI 6.1 (Version 6). DMAR: Added new constants per the 10/2014 DMAR spec. IORT: Added new subtable per the 10/2015 IORT spec. HEST: For ACPI 6.1, added new constants and new subtable. DBG2: Added new constants per the 12/2015 DBG2 spec. FPDT: Fixed several incorrect fields, add the FPDT boot record structure. ACPICA BZ 1249. ERST/EINJ: Updated disassembler with new "Execute Timings" actions. Updated header support for the DMAR table to match the current version of the related spec. Added extensions to the ASL Concatenate operator to allow any ACPI object to be passed as an operand. Any object other than Integer/String/Buffer simply returns a string containing the object type. This extends the usefulness of the Printf macros. Previously, Concatenate would abort the control method if a non-data object was encountered. ACPICA source code: Deployed the C "const" keyword across the source code where appropriate. ACPICA BZ 732. Joerg Sonnenberger (NetBSD). Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 137.1K Code, 51.5K Data, 188.6K Total Debug Version: 201.0K Code, 82.0K Data, 283.0K Total Previous Release: Non-Debug Version: 136.2K Code, 51.5K Data, 187.7K Total Debug Version: 200.4K Code, 82.0K Data, 282.4K Total 2) iASL Compiler/Disassembler and Tools: iASL/Disassembler: Improved the heuristic used to determine the number of arguments for an externally defined control method (a method in another table). Although this is an improvement, there is no deterministic way to "guess" the number of method arguments. Only the ACPI 6.0 External opcode will completely solve this problem as it is deployed (automatically) in newer BIOS code. iASL/Disassembler: Fixed an ordering issue for emitted External() ASL statements that could cause errors when the disassembled file is compiled. ACPICA BZ 1243. David Box. iASL: Fixed a regression caused by the merger of the two versions of the local strtoul64. Because of a dependency on a global variable, strtoul64 could return an error for integers greater than a 32-bit value. ACPICA BZ 1260. iASL: Fixed a regression where a fault could occur for an ASL Return statement if it invokes a control method that is not resolved. ACPICA BZ 1264. AcpiXtract: Improved input file validation: detection of binary files and non-acpidump text files. ---------------------------------------- 12 February 2016. Summary of changes for version 20160212: 1) ACPICA kernel-resident subsystem: Implemented full support for the ACPI 6.1 specification (released in January). This version of the specification is available at: http://www.uefi.org/specifications Only a relatively small number of changes were required in ACPICA to support ACPI 6.1, in these areas: - New predefined names - New _HID values - A new subtable for HEST - A few other header changes for new values Ensure \_SB_._INI is executed before any _REG methods are executed. There appears to be existing BIOS code that relies on this behavior. Lv Zheng. Reverted a change made in version 20151218 which enabled method invocations to be targets of various ASL operators (SuperName and Target grammar elements). While the new behavior is supported by the ACPI specification, other AML interpreters do not support this behavior and never will. The ACPI specification will be updated for ACPI 6.2 to remove this support. Therefore, the change was reverted to the original ACPICA behavior. ACPICA now supports the GCC 6 compiler. Current Release: (Note: build changes increased sizes) Non-Debug Version: 136.2K Code, 51.5K Data, 187.7K Total Debug Version: 200.4K Code, 82.0K Data, 282.4K Total Previous Release: Non-Debug Version: 102.7K Code, 28.4K Data, 131.1K Total Debug Version: 200.4K Code, 81.9K Data, 282.3K Total 2) iASL Compiler/Disassembler and Tools: Completed full support for the ACPI 6.0 External() AML opcode. The compiler emits an external AML opcode for each ASL External statement. This opcode is used by the disassembler to assist with the disassembly of external control methods by specifying the required number of arguments for the method. AML interpreters do not use this opcode. To ensure that interpreters do not even see the opcode, a block of one or more external opcodes is surrounded by an "If(0)" construct. As this feature becomes commonly deployed in BIOS code, the ability of disassemblers to correctly disassemble AML code will be greatly improved. David Box. iASL: Implemented support for an optional cross-reference output file. The -lx option will create a the cross-reference file with the suffix "xrf". Three different types of cross-reference are created in this file: - List of object references made from within each control method - Invocation (caller) list for each user-defined control method - List of references to each non-method object in the namespace iASL: Method invocations as ASL Target operands are now disallowed and flagged as errors in preparation for ACPI 6.2 (see the description of the problem above). @ text @a34 1 $(OBJDIR)/utascii.o\ @ 1.1.1.4.2.1 log @Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.) @ text @d46 1 d50 1 @ 1.1.1.5 log @Import acpica-20160930: ---------------------------------------- 30 September 2016. Summary of changes for version 20160930: 1) ACPICA kernel-resident subsystem: Fixed a regression in the internal AcpiTbFindTable function where a non AE_OK exception could inadvertently be returned even if the function did not fail. This problem affects the following operators: DataTableRegion LoadTable Fixed a regression in the LoadTable operator where a load to any namespace location other than the root no longer worked properly. Increased the maximum loop count value that will result in the AE_AML_INFINITE_LOOP exception. This is a mechanism that is intended to prevent infinite loops within the AML interpreter and thus the host OS kernel. The value is increased from 0xFFFF to 0xFFFFF loops (65,535 to 1,048,575). Moved the AcpiGbl_MaxLoopIterations configuration variable to the public acpixf.h file. This allows hosts to easily configure the maximum loop count at runtime. Removed an illegal character in the strtoul64.c file. This character caused errors with some C compilers. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 140.4K Code, 58.1K Data, 198.5K Total Debug Version: 200.7K Code, 82.1K Data, 282.8K Total Previous Release: Non-Debug Version: 140.0K Code, 58.1K Data, 198.1K Total Debug Version: 200.3K Code, 82.1K Data, 282.4K Total 2) iASL Compiler/Disassembler and Tools: Disassembler: Fixed a problem with the conversion of Else{If{ blocks into the simpler ASL ElseIf keyword. During the conversion, a trailing If block could be lost and missing from the disassembled output. iASL: Fixed a missing parser rule for the ObjectType operator. For ASL+, the missing rule caused a parse error when using the Index operator as an operand to ObjectType. This construct now compiles properly. Example: ObjectType(PKG1[4]). iASL: Correctly handle unresolved symbols in the hardware map file (-lm option). Previously, unresolved symbols could cause a protection fault. Such symbols are now marked as unresolved in the map file. iASL: Implemented support to allow control method invocations as an operand to the ASL DeRefOf operator. Example: DeRefOf(MTH1(Local0)) Disassembler: Improved support for the ToPLD ASL macro. Detection of a possible _PLD buffer now includes examination of both the normal buffer length (16 or 20) as well as the surrounding AML package length. Disassembler: Fixed a problem with the decoding of complex expressions within the Divide operator for ASL+. For the case where both the quotient and remainder targets are specified, the entire statement cannot be disassembled. Previously, the output incorrectly contained a mix of ASL- and ASL+ operators. This mixed statement causes a syntax error when compiled. Example: Divide (Add (INT1, 6), 128, RSLT, QUOT) // was incorrectly disassembled to: Divide (INT1 + 6, 128, RSLT, QUOT) iASL/Tools: Added support to process AML and non-AML ACPI tables consistently. For the disassembler and AcpiExec, allow all types of ACPI tables (AML and data tables). For the iASL -e option, allow only AML tables (DSDT/SSDT). ---------------------------------------- 31 August 2016. Summary of changes for version 20160831: 1) ACPICA kernel-resident subsystem: Improve support for the so-called "module-level code", which is defined to be math, logical and control AML opcodes that appear outside of any control method. This change improves the support by adding more opcodes that can be executed in the manner. Some other issues have been solved, and the ASL grammar changes to support such code under all scope operators (Device, etc.) are complete. Lv Zheng. UEFI support: these OSL functions have been implemented. This is an additional step toward supporting the AcpiExec utility natively (with full hardware access) under UEFI. Marcelo Ferreira. AcpiOsReadPciConfiguration AcpiOsWritePciConfiguration Fixed a possible mutex error during control method auto-serialization. Lv Zheng. Updated support for the Generic Address Structure by fully implementing all GAS fields when a 32-bit address is expanded to a 64-bit GAS. Lv Zheng. Updated the return value for the internal _OSI method. Instead of 0xFFFFFFFF, the "Ones" value is now returned, which is 0xFFFFFFFFFFFFFFFF for 64-bit ACPI tables. This fixes an incompatibility with other ACPI implementations, and will be reflected and clarified in the next version of the ACPI specification. Implemented two new table events that can be passed to an ACPICA table handler. These events are used to indicate a table installation or uninstallation. These events are used in addition to existed table load and unload events. Lv Zheng. Implemented a cleanup for all internal string-to-integer conversions. Consolidate multiple versions of this functionality and limit possible bases to either 10 or 16 to simplify the code. Adds a new file, utstrtoul64. Cleanup the inclusion order of the various compiler-specific headers. This simplifies build configuration management. The compiler-specific headers are now split out from the host-specific headers. Lv Zheng. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 140.1K Code, 58.1K Data, 198.1K Total Debug Version: 200.3K Code, 82.1K Data, 282.4K Total 2) iASL Compiler/Disassembler and Tools: iASL/AcpiExec: Added a command line option to display the build date/time of the tool (-vd). This can be useful to verify that the correct version of the tools are being used. AML Debugger: Implemented a new subcommand ("execute predef") to execute all predefined control methods and names within the current namespace. This can be useful for debugging problems with ACPI tables and the ACPI namespace. ---------------------------------------- 29 July 2016. Summary of changes for version 20160729: 1) ACPICA kernel-resident subsystem: Implemented basic UEFI support for the various ACPICA tools. This includes: 1) An OSL to implement the various AcpiOs* interfaces on UEFI. 2) Support to obtain the ACPI tables on UEFI. 3) Local implementation of required C library functions not available on UEFI. 4) A front-end (main) function for the tools for UEFI-related initialization. The initial deployment of this support is the AcpiDump utility executing as an UEFI application via EDK2 (EDKII, "UEFI Firmware Development Kit"). Current environments supported are Linux/Unix. MSVC generation is not supported at this time. See the generate/efi/README file for build instructions. Lv Zheng. Future plans include porting the AcpiExec utility to execute natively on the platform with I/O and memory access. This will allow viewing/dump of the platform namespace and native execution of ACPI control methods that access the actual hardware. To fully implement this support, the OSL functions below must be implemented with UEFI interfaces. Any community help in the implementation of these functions would be appreciated: AcpiOsReadPort AcpiOsWritePort AcpiOsReadMemory AcpiOsWriteMemory AcpiOsReadPciConfiguration AcpiOsWritePciConfiguration Restructured and standardized the C library configuration for ACPICA, resulting in the various configuration options below. This includes a global restructuring of the compiler-dependent and platform-dependent include files. These changes may affect the existing platform-dependent configuration files on some hosts. Lv Zheng. The current C library configuration options appear below. For any issues, it may be helpful to examine the existing compiler-dependent and platform-dependent files as examples. Lv Zheng. 1) Linux kernel: ACPI_USE_STANDARD_HEADERS=n in order not to use system-provided C library. ACPI_USE_SYSTEM_CLIBRARY=y in order not to use ACPICA mini C library. 2) Unix/Windows/BSD applications: ACPI_USE_STANDARD_HEADERS=y in order to use system-provided C library. ACPI_USE_SYSTEM_CLIBRARY=y in order not to use ACPICA mini C library. 3) UEFI applications: ACPI_USE_STANDARD_HEADERS=n in order not to use system-provided C library. ACPI_USE_SYSTEM_CLIBRARY=n in order to use ACPICA mini C library. 4) UEFI applications (EDK2/StdLib): ACPI_USE_STANDARD_HEADERS=y in order to use EDK2 StdLib C library. ACPI_USE_SYSTEM_CLIBRARY=y in order to use EDK2 StdLib C library. AML interpreter: "module-level code" support. Allows for execution of so- called "executable" AML code (math/logical operations, etc.) outside of control methods not just at the module level (top level) but also within any scope declared outside of a control method - Scope{}, Device{}, Processor{}, PowerResource{}, and ThermalZone{}. Lv Zheng. Simplified the configuration of the "maximum AML loops" global option by adding a global public variable, "AcpiGbl_MaxLoopIterations" which can be modified at runtime. Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. Current Release: Non-Debug Version: 139.1K Code, 22.9K Data, 162.0K Total Debug Version: 199.0K Code, 81.8K Data, 280.8K Total 2) iASL Compiler/Disassembler and Tools: iASL: Add full support for the RASF ACPI table (RAS Features Table). Includes disassembler, data table compiler, and header support. iASL Expand "module-level code" support. Allows for compilation/disassembly of so-called "executable" AML code (math/logical operations, etc.) outside of control methods not just at the module level (top level) but also within any scope declared outside of a control method - Scope{}, Device{}, Processor{}, PowerResource{}, and ThermalZone{}. AcpiDump: Added support for dumping all SSDTs on newer versions of Windows. These tables are now easily available -- SSDTs are not available through the registry on older versions. @ text @d46 1 d50 1 @