Deleted Added
full compact
changes.txt (254745) changes.txt (272444)
1----------------------------------------
1----------------------------------------
226 September 2014. Summary of changes for version 20140926:
3
41) ACPICA kernel-resident subsystem:
5
6Updated the GPIO operation region handler interface (GeneralPurposeIo).
7In order to support GPIO Connection objects with multiple pins, along
8with the related Field objects, the following changes to the interface
9have been made: The Address is now defined to be the offset in bits of
10the field unit from the previous invocation of a Connection. It can be
11viewed as a "Pin Number Index" into the connection resource descriptor.
12The BitWidth is the exact bit width of the field. It is usually one bit,
13but not always. See the ACPICA reference guide (section 8.8.6.2.1) for
14additional information and examples.
15
16GPE support: During ACPICA/GPE initialization, ensure that all GPEs with
17corresponding _Lxx/_Exx methods are disabled (they may have been enabled
18by the firmware), so that they cannot fire until they are enabled via
19AcpiUpdateAllGpes. Rafael J. Wysocki.
20
21Added a new return flag for the Event/GPE status interfaces --
22AcpiGetEventStatus and AcpiGetGpeStatus. The new
23ACPI_EVENT_FLAGS_HAS_HANDLER flag is used to indicate that the event or
24GPE currently has a handler associated with it, and can thus actually
25affect the system. Lv Zheng.
26
27Example Code and Data Size: These are the sizes for the OS-independent
28acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
29debug version of the code includes the debug output trace mechanism and
30has a much larger code and data size.
31
32 Current Release:
33 Non-Debug Version: 99.1K Code, 27.3K Data, 126.4K Total
34 Debug Version: 192.8K Code, 79.9K Data, 272.7K Total
35 Previous Release:
36 Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total
37 Debug Version: 192.1K Code, 79.8K Data, 271.9K Total
38
392) iASL Compiler/Disassembler and Tools:
40
41iASL: Fixed a memory allocation/free regression introduced in 20140828
42that could cause the compiler to crash. This was introduced inadvertently
43during the effort to eliminate compiler memory leaks. ACPICA BZ 1111,
441113.
45
46iASL: Removed two error messages that have been found to create false
47positives, until they can be fixed and fully validated (ACPICA BZ 1112):
481) Illegal forward reference within a method
492) Illegal reference across two methods
50
51iASL: Implemented a new option (-lm) to create a hardware mapping file
52that summarizes all GPIO, I2C, SPI, and UART connections. This option
53works for both the compiler and disassembler. See the iASL compiler user
54guide for additional information and examples (section 6.4.6).
55
56AcpiDump: Added support for the version 1 (ACPI 1.0) RSDP in addition to
57version 2. This corrects the AE_BAD_HEADER exception seen on systems with
58a version 1 RSDP. Lv Zheng ACPICA BZ 1097.
59
60AcpiExec: For Unix versions, don't attempt to put STDIN into raw mode
61unless STDIN is actually a terminal. Assists with batch-mode processing.
62ACPICA BZ 1114.
63
64Disassembler/AcpiHelp: Added another large group of recognized _HID
65values.
66
67
68----------------------------------------
6928 August 2014. Summary of changes for version 20140828:
70
711) ACPICA kernel-resident subsystem:
72
73Fixed a problem related to the internal use of the Timer() operator where
74a 64-bit divide could cause an attempted link to a double-precision math
75library. This divide is not actually necessary, so the code was
76restructured to eliminate it. Lv Zheng.
77
78ACPI 5.1: Added support for the runtime validation of the _DSD package
79(similar to the iASL support).
80
81ACPI 5.1/Headers: Added support for the GICC affinity subtable to the
82SRAT table. Hanjun Guo <hanjun.guo@linaro.org>.
83
84Example Code and Data Size: These are the sizes for the OS-independent
85acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
86debug version of the code includes the debug output trace mechanism and
87has a much larger code and data size.
88
89 Current Release:
90 Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total
91 Debug Version: 192.1K Code, 79.8K Data, 271.9K Total
92 Previous Release:
93 Non-Debug Version: 98.7K Code, 27.3K Data, 126.0K Total1
94 Debug Version: 192.0K Code, 79.7K Data, 271.7K Total
95
962) iASL Compiler/Disassembler and Tools:
97
98AcpiExec: Fixed a problem on unix systems where the original terminal
99state was not always properly restored upon exit. Seen when using the -v
100option. ACPICA BZ 1104.
101
102iASL: Fixed a problem with the validation of the ranges/length within the
103Memory24 resource descriptor. There was a boundary condition when the
104range was equal to the (length -1) caused by the fact that these values
105are defined in 256-byte blocks, not bytes. ACPICA BZ 1098
106
107Disassembler: Fixed a problem with the GpioInt descriptor interrupt
108polarity
109flags. The flags are actually 2 bits, not 1, and the "ActiveBoth" keyword
110is
111now supported properly.
112
113ACPI 5.1: Added the GICC affinity subtable to the SRAT table. Supported
114in the disassembler, data table compiler, and table template generator.
115
116iASL: Added a requirement for Device() objects that one of either a _HID
117or _ADR must exist within the scope of a Device, as per the ACPI
118specification. Remove a similar requirement that was incorrectly in place
119for the _DSD object.
120
121iASL: Added error detection for illegal named references within control
122methods that would cause runtime failures. Now trapped as errors are: 1)
123References to objects within a non-parent control method. 2) Forward
124references (within a method) -- for control methods, AML interpreters use
125a one-pass parse of control methods. ACPICA BZ 1008.
126
127iASL: Added error checking for dependencies related to the _PSx power
128methods. ACPICA BZ 1029.
1291) For _PS0, one of these must exist within the same scope: _PS1, _PS2,
130_PS3.
1312) For _PS1, _PS2, and PS3: A _PS0 object must exist within the same
132scope.
133
134iASL and table compiler: Cleanup miscellaneous memory leaks by fully
135deploying the existing object and string caches and adding new caches for
136the table compiler.
137
138iASL: Split the huge parser source file into multiple subfiles to improve
139manageability. Generation now requires the M4 macro preprocessor, which
140is part of the Bison distribution on both unix and windows platforms.
141
142AcpiSrc: Fixed and removed all extraneous warnings generated during
143entire ACPICA source code scan and/or conversion.
144
145
146----------------------------------------
147
14824 July 2014. Summary of changes for version 20140724:
149
150The ACPI 5.1 specification has been released and is available at:
151http://uefi.org/specs/access
152
153
1540) ACPI 5.1 support in ACPICA:
155
156ACPI 5.1 is fully supported in ACPICA as of this release.
157
158New predefined names. Support includes iASL and runtime ACPICA
159validation.
160 _CCA (Cache Coherency Attribute).
161 _DSD (Device-Specific Data). David Box.
162
163Modifications to existing ACPI tables. Support includes headers, iASL
164Data Table compiler, disassembler, and the template generator.
165 FADT - New fields and flags. Graeme Gregory.
166 GTDT - One new subtable and new fields. Tomasz Nowicki.
167 MADT - Two new subtables. Tomasz Nowicki.
168 PCCT - One new subtable.
169
170Miscellaneous.
171 New notification type for System Resource Affinity change events.
172
173
1741) ACPICA kernel-resident subsystem:
175
176Fixed a regression introduced in 20140627 where a fault can happen during
177the deletion of Alias AML namespace objects. The problem affected both
178the core ACPICA and the ACPICA tools including iASL and AcpiExec.
179
180Implemented a new GPE public interface, AcpiMarkGpeForWake. Provides a
181simple mechanism to enable wake GPEs that have no associated handler or
182control method. Rafael Wysocki.
183
184Updated the AcpiEnableGpe interface to disallow the enable if there is no
185handler or control method associated with the particular GPE. This will
186help avoid meaningless GPEs and even GPE floods. Rafael Wysocki.
187
188Updated GPE handling and dispatch by disabling the GPE before clearing
189the status bit for edge-triggered GPEs. Lv Zheng.
190
191Added Timer() support to the AML Debug object. The current timer value is
192now displayed with each invocation of (Store to) the debug object to
193enable simple generation of execution times for AML code (method
194execution for example.) ACPICA BZ 1093.
195
196Example Code and Data Size: These are the sizes for the OS-independent
197acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
198debug version of the code includes the debug output trace mechanism and
199has a much larger code and data size.
200
201 Current Release:
202 Non-Debug Version: 98.7K Code, 27.3K Data, 126.0K Total
203 Debug Version: 192.0K Code, 79.7K Data, 271.7K Total
204 Previous Release:
205 Non-Debug Version: 98.7K Code, 27.2K Data, 125.9K Total
206 Debug Version: 191.7K Code, 79.6K Data, 271.3K Total
207
208
2092) iASL Compiler/Disassembler and Tools:
210
211Fixed an issue with the recently added local printf implementation,
212concerning width/precision specifiers that could cause incorrect output.
213Lv Zheng. ACPICA BZ 1094.
214
215Disassembler: Added support to detect buffers that contain UUIDs and
216disassemble them to an invocation of the ToUUID operator. Also emit
217commented descriptions of known ACPI-related UUIDs.
218
219AcpiHelp: Added support to display known ACPI-related UUIDs. New option,
220-u. Adds three new files.
221
222iASL: Update table compiler and disassembler for DMAR table changes that
223were introduced in September 2013. With assistance by David Woodhouse.
224
225----------------------------------------
22627 June 2014. Summary of changes for version 20140627:
227
2281) ACPICA kernel-resident subsystem:
229
230Formatted Output: Implemented local versions of standard formatted output
231utilities such as printf, etc. Over time, it has been discovered that
232there are in fact many portability issues with printf, and the addition
233of this feature will fix/prevent these issues once and for all. Some
234known issues are summarized below:
235
2361) Output of 64-bit values is not portable. For example, UINT64 is %ull
237for the Linux kernel and is %uI64 for some MSVC versions.
2382) Invoking printf consistently in a manner that is portable across both
23932-bit and 64-bit platforms is difficult at best in many situations.
2403) The output format for pointers varies from system to system (leading
241zeros especially), and leads to inconsistent output from ACPICA across
242platforms.
2434) Certain platform-specific printf formats may conflict with ACPICA use.
2445) If there is no local C library available, ACPICA now has local support
245for printf.
246
247-- To address these printf issues in a complete manner, ACPICA now
248directly implements a small subset of printf format specifiers, only
249those that it requires. Adds a new file, utilities/utprint.c. Lv Zheng.
250
251Implemented support for ACPICA generation within the EFI environment.
252Initially, the AcpiDump utility is supported in the UEFI shell
253environment. Lv Zheng.
254
255Added a new external interface, AcpiLogError, to improve ACPICA
256portability. This allows the host to redirect error messages from the
257ACPICA utilities. Lv Zheng.
258
259Added and deployed new OSL file I/O interfaces to improve ACPICA
260portability:
261 AcpiOsOpenFile
262 AcpiOsCloseFile
263 AcpiOsReadFile
264 AcpiOsWriteFile
265 AcpiOsGetFileOffset
266 AcpiOsSetFileOffset
267There are C library implementations of these functions in the new file
268service_layers/oslibcfs.c -- however, the functions can be implemented by
269the local host in any way necessary. Lv Zheng.
270
271Implemented a mechanism to disable/enable ACPI table checksum validation
272at runtime. This can be useful when loading tables very early during OS
273initialization when it may not be possible to map the entire table in
274order to compute the checksum. Lv Zheng.
275
276Fixed a buffer allocation issue for the Generic Serial Bus support.
277Originally, a fixed buffer length was used. This change allows for
278variable-length buffers based upon the protocol indicated by the field
279access attributes. Reported by Lan Tianyu. Lv Zheng.
280
281Fixed a problem where an object detached from a namespace node was not
282properly terminated/cleared and could cause a circular list problem if
283reattached. ACPICA BZ 1063. David Box.
284
285Fixed a possible recursive lock acquisition in hwregs.c. Rakib Mullick.
286
287Fixed a possible memory leak in an error return path within the function
288AcpiUtCopyIobjectToIobject. ACPICA BZ 1087. Colin Ian King.
289
290Example Code and Data Size: These are the sizes for the OS-independent
291acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
292debug version of the code includes the debug output trace mechanism and
293has a much larger code and data size.
294
295 Current Release:
296 Non-Debug Version: 98.7K Code, 27.2K Data, 125.9K Total
297 Debug Version: 191.7K Code, 79.6K Data, 271.3K Total
298 Previous Release:
299 Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total
300 Debug Version: 189.5K Code, 79.7K Data, 269.2K Total
301
302
3032) iASL Compiler/Disassembler and Tools:
304
305Disassembler: Add dump of ASCII equivalent text within a comment at the
306end of each line of the output for the Buffer() ASL operator.
307
308AcpiDump: Miscellaneous changes:
309 Fixed repetitive table dump in -n mode.
310 For older EFI platforms, use the ACPI 1.0 GUID during RSDP search if
311the ACPI 2.0 GUID fails.
312
313iASL: Fixed a problem where the compiler could fault if incorrectly given
314an acpidump output file as input. ACPICA BZ 1088. David Box.
315
316AcpiExec/AcpiNames: Fixed a problem where these utilities could fault if
317they are invoked without any arguments.
318
319Debugger: Fixed a possible memory leak in an error return path. ACPICA BZ
3201086. Colin Ian King.
321
322Disassembler: Cleaned up a block of code that extracts a parent Op
323object. Added a comment that explains that the parent is guaranteed to be
324valid in this case. ACPICA BZ 1069.
325
326----------------------------------------
32724 April 2014. Summary of changes for version 20140424:
328
3291) ACPICA kernel-resident subsystem:
330
331Implemented support to skip/ignore NULL address entries in the RSDT/XSDT.
332Some of these tables are known to contain a trailing NULL entry. Lv
333Zheng.
334
335Removed an extraneous error message for the case where there are a large
336number of system GPEs (> 124). This was the "32-bit FADT register is too
337long to convert to GAS struct" message, which is irrelevant for GPEs
338since the GPEx_BLK_LEN fields of the FADT are always used instead of the
339(limited capacity) GAS bit length. Also, several changes to ensure proper
340support for GPE numbers > 255, where some "GPE number" fields were 8-bits
341internally.
342
343Implemented and deployed additional configuration support for the public
344ACPICA external interfaces. Entire classes of interfaces can now be
345easily modified or configured out, replaced by stubbed inline functions
346by default. Lv Zheng.
347
348Moved all public ACPICA runtime configuration globals to the public
349ACPICA external interface file for convenience. Also, removed some
350obsolete/unused globals. See the file acpixf.h. Lv Zheng.
351
352Documentation: Added a new section to the ACPICA reference describing the
353maximum number of GPEs that can be supported by the FADT-defined GPEs in
354block zero and one. About 1200 total. See section 4.4.1 of the ACPICA
355reference.
356
357Example Code and Data Size: These are the sizes for the OS-independent
358acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
359debug version of the code includes the debug output trace mechanism and
360has a much larger code and data size.
361
362 Current Release:
363 Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total
364 Debug Version: 189.5K Code, 79.7K Data, 269.2K Total
365 Previous Release:
366 Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total
367 Debug Version: 189.7K Code, 79.5K Data, 269.2K Total
368
369
3702) iASL Compiler/Disassembler and Tools:
371
372iASL and disassembler: Add full support for the LPIT table (Low Power
373Idle Table). Includes support in the disassembler, data table compiler,
374and template generator.
375
376AcpiDump utility:
3771) Add option to force the use of the RSDT (over the XSDT).
3782) Improve validation of the RSDP signature (use 8 chars instead of 4).
379
380iASL: Add check for predefined packages that are too large. For
381predefined names that contain subpackages, check if each subpackage is
382too large. (Check for too small already exists.)
383
384Debugger: Updated the GPE command (which simulates a GPE by executing the
385GPE code paths in ACPICA). The GPE device is now optional, and defaults
386to the GPE 0/1 FADT-defined blocks.
387
388Unix application OSL: Update line-editing support. Add additional error
389checking and take care not to reset terminal attributes on exit if they
390were never set. This should help guarantee that the terminal is always
391left in the previous state on program exit.
392
393----------------------------------------
39425 March 2014. Summary of changes for version 20140325:
395
3961) ACPICA kernel-resident subsystem:
397
398Updated the auto-serialize feature for control methods. This feature
399automatically serializes all methods that create named objects in order
400to prevent runtime errors. The update adds support to ignore the
401currently executing AML SyncLevel when invoking such a method, in order
402to prevent disruption of any existing SyncLevel priorities that may exist
403in the AML code. Although the use of SyncLevels is relatively rare, this
404change fixes a regression where an AE_AML_MUTEX_ORDER exception can
405appear on some machines starting with the 20140214 release.
406
407Added a new external interface to allow the host to install ACPI tables
408very early, before the namespace is even created. AcpiInstallTable gives
409the host additional flexibility for ACPI table management. Tables can be
410installed directly by the host as if they had originally appeared in the
411XSDT/RSDT. Installed tables can be SSDTs or other ACPI data tables
412(anything except the DSDT and FACS). Adds a new file, tbdata.c, along
413with additional internal restructuring and cleanup. See the ACPICA
414Reference for interface details. Lv Zheng.
415
416Added validation of the checksum for all incoming dynamically loaded
417tables (via external interfaces or via AML Load/LoadTable operators). Lv
418Zheng.
419
420Updated the use of the AcpiOsWaitEventsComplete interface during Notify
421and GPE handler removal. Restructured calls to eliminate possible race
422conditions. Lv Zheng.
423
424Added a warning for the use/execution of the ASL/AML Unload (table)
425operator. This will help detect and identify machines that use this
426operator if and when it is ever used. This operator has never been seen
427in the field and the usage model and possible side-effects of the drastic
428runtime action of a full table removal are unknown.
429
430Reverted the use of #pragma push/pop which was introduced in the 20140214
431release. It appears that push and pop are not implemented by enough
432compilers to make the use of this feature feasible for ACPICA at this
433time. However, these operators may be deployed in a future ACPICA
434release.
435
436Added the missing EXPORT_SYMBOL macros for the install and remove SCI
437handler interfaces.
438
439Source code generation:
4401) Disabled the use of the "strchr" macro for the gcc-specific
441generation. For some versions of gcc, this macro can periodically expose
442a compiler bug which in turn causes compile-time error(s).
4432) Added support for PPC64 compilation. Colin Ian King.
444
445Example Code and Data Size: These are the sizes for the OS-independent
446acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
447debug version of the code includes the debug output trace mechanism and
448has a much larger code and data size.
449
450 Current Release:
451 Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total
452 Debug Version: 189.7K Code, 79.5K Data, 269.2K Total
453 Previous Release:
454 Non-Debug Version: 96.5K Code, 27.2K Data, 123.7K Total
455 Debug Version: 188.6K Code, 79.0K Data, 267.6K Total
456
457
4582) iASL Compiler/Disassembler and Tools:
459
460Disassembler: Added several new features to improve the readability of
461the resulting ASL code. Extra information is emitted within comment
462fields in the ASL code:
4631) Known _HID/_CID values are decoded to descriptive text.
4642) Standard values for the Notify() operator are decoded to descriptive
465text.
4663) Target operands are expanded to full pathnames (in a comment) when
467possible.
468
469Disassembler: Miscellaneous updates for extern() handling:
4701) Abort compiler if file specified by -fe option does not exist.
4712) Silence unnecessary warnings about argument count mismatches.
4723) Update warning messages concerning unresolved method externals.
4734) Emit "UnknownObj" keyword for externals whose type cannot be
474determined.
475
476AcpiHelp utility:
4771) Added the -a option to display both the ASL syntax and the AML
478encoding for an input ASL operator. This effectively displays all known
479information about an ASL operator with one AcpiHelp invocation.
4802) Added substring match support (similar to a wildcard) for the -i
481(_HID/PNP IDs) option.
482
483iASL/Disassembler: Since this tool does not yet support execution on big-
484endian machines, added detection of endianness and an error message if
485execution is attempted on big-endian. Support for big-endian within iASL
486is a feature that is on the ACPICA to-be-done list.
487
488AcpiBin utility:
4891) Remove option to extract binary files from an acpidump; this function
490is made obsolete by the AcpiXtract utility.
4912) General cleanup of open files and allocated buffers.
492
493----------------------------------------
49414 February 2014. Summary of changes for version 20140214:
495
4961) ACPICA kernel-resident subsystem:
497
498Implemented a new mechanism to proactively prevent problems with ill-
499behaved reentrant control methods that create named ACPI objects. This
500behavior is illegal as per the ACPI specification, but is nonetheless
501frequently seen in the field. Previously, this could lead to an
502AE_ALREADY_EXISTS exception if the method was actually entered by more
503than one thread. This new mechanism detects such methods at table load
504time and marks them "serialized" to prevent reentrancy. A new global
505option, AcpiGbl_AutoSerializeMethods, has been added to disable this
506feature if desired. This mechanism and global option obsoletes and
507supersedes the previous AcpiGbl_SerializeAllMethods option.
508
509Added the "Windows 2013" string to the _OSI support. ACPICA will now
510respond TRUE to _OSI queries with this string. It is the stated policy of
511ACPICA to add new strings to the _OSI support as soon as possible after
512they are defined. See the full ACPICA _OSI policy which has been added to
513the utilities/utosi.c file.
514
515Hardened/updated the _PRT return value auto-repair code:
5161) Do not abort the repair on a single subpackage failure, continue to
517check all subpackages.
5182) Add check for the minimum subpackage length (4).
5193) Properly handle extraneous NULL package elements.
520
521Added support to avoid the possibility of infinite loops when traversing
522object linked lists. Never allow an infinite loop, even in the face of
523corrupted object lists.
524
525ACPICA headers: Deployed the use of #pragma pack(push) and #pragma
526pack(pop) directives to ensure that the ACPICA headers are independent of
527compiler settings or other host headers.
528
529Example Code and Data Size: These are the sizes for the OS-independent
530acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
531debug version of the code includes the debug output trace mechanism and
532has a much larger code and data size.
533
534 Current Release:
535 Non-Debug Version: 96.5K Code, 27.2K Data, 123.7K Total
536 Debug Version: 188.6K Code, 79.0K Data, 267.6K Total
537 Previous Release:
538 Non-Debug Version: 96.2K Code, 27.0K Data, 123.2K Total
539 Debug Version: 187.5K Code, 78.3K Data, 265.8K Total
540
541
5422) iASL Compiler/Disassembler and Tools:
543
544iASL/Table-compiler: Fixed a problem with support for the SPMI table. The
545first reserved field was incorrectly forced to have a value of zero. This
546change correctly forces the field to have a value of one. ACPICA BZ 1081.
547
548Debugger: Added missing support for the "Extra" and "Data" subobjects
549when displaying object data.
550
551Debugger: Added support to display entire object linked lists when
552displaying object data.
553
554iASL: Removed the obsolete -g option to obtain ACPI tables from the
555Windows registry. This feature has been superseded by the acpidump
556utility.
557
558----------------------------------------
55914 January 2014. Summary of changes for version 20140114:
560
5611) ACPICA kernel-resident subsystem:
562
563Updated all ACPICA copyrights and signons to 2014. Added the 2014
564copyright to all module headers and signons, including the standard Linux
565header. This affects virtually every file in the ACPICA core subsystem,
566iASL compiler, all ACPICA utilities, and the test suites.
567
568Improved parameter validation for AcpiInstallGpeBlock. Added the
569following checks:
5701) The incoming device handle refers to type ACPI_TYPE_DEVICE.
5712) There is not already a GPE block attached to the device.
572Likewise, with AcpiRemoveGpeBlock, ensure that the incoming object is a
573device.
574
575Correctly support "references" in the ACPI_OBJECT. This change fixes the
576support to allow references (namespace nodes) to be passed as arguments
577to control methods via the evaluate object interface. This is probably
578most useful for testing purposes, however.
579
580Improved support for 32/64 bit physical addresses in printf()-like
581output. This change improves the support for physical addresses in printf
582debug statements and other output on both 32-bit and 64-bit hosts. It
583consistently outputs the appropriate number of bytes for each host. The
584%p specifier is unsatisfactory since it does not emit uniform output on
585all hosts/clib implementations (on some, leading zeros are not supported,
586leading to difficult-to-read output).
587
588Example Code and Data Size: These are the sizes for the OS-independent
589acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
590debug version of the code includes the debug output trace mechanism and
591has a much larger code and data size.
592
593 Current Release:
594 Non-Debug Version: 96.2K Code, 27.0K Data, 123.2K Total
595 Debug Version: 187.5K Code, 78.3K Data, 265.8K Total
596 Previous Release:
597 Non-Debug Version: 96.1K Code, 27.0K Data, 123.1K Total
598 Debug Version: 185.6K Code, 77.3K Data, 262.9K Total
599
600
6012) iASL Compiler/Disassembler and Tools:
602
603iASL: Fix a possible fault when using the Connection() operator. Fixes a
604problem if the parent Field definition for the Connection operator refers
605to an operation region that does not exist. ACPICA BZ 1064.
606
607AcpiExec: Load of local test tables is now optional. The utility has the
608capability to load some various tables to test features of ACPICA.
609However, there are enough of them that the output of the utility became
610confusing. With this change, only the required local tables are displayed
611(RSDP, XSDT, etc.) along with the actual tables loaded via the command
612line specification. This makes the default output simler and easier to
613understand. The -el command line option restores the original behavior
614for testing purposes.
615
616AcpiExec: Added support for overlapping operation regions. This change
617expands the simulation of operation regions by supporting regions that
618overlap within the given address space. Supports SystemMemory and
619SystemIO. ASLTS test suite updated also. David Box. ACPICA BZ 1031.
620
621AcpiExec: Added region handler support for PCI_Config and EC spaces. This
622allows AcpiExec to simulate these address spaces, similar to the current
623support for SystemMemory and SystemIO.
624
625Debugger: Added new command to read/write/compare all namespace objects.
626The command "test objects" will exercise the entire namespace by writing
627new values to each data object, and ensuring that the write was
628successful. The original value is then restored and verified.
629
630Debugger: Added the "test predefined" command. This change makes this
631test public and puts it under the new "test" command. The test executes
632each and every predefined name within the current namespace.
633
634----------------------------------------
63518 December 2013. Summary of changes for version 20131218:
636
637Global note: The ACPI 5.0A specification was released this month. There
638are no changes needed for ACPICA since this release of ACPI is an
639errata/clarification release. The specification is available at
640acpi.info.
641
642
6431) ACPICA kernel-resident subsystem:
644
645Added validation of the XSDT root table if it is present. Some older
646platforms contain an XSDT that is ill-formed or otherwise invalid (such
647as containing some or all entries that are NULL pointers). This change
648adds a new function to validate the XSDT before actually using it. If the
649XSDT is found to be invalid, ACPICA will now automatically fall back to
650using the RSDT instead. Original implementation by Zhao Yakui. Ported to
651ACPICA and enhanced by Lv Zheng and Bob Moore.
652
653Added a runtime option to ignore the XSDT and force the use of the RSDT.
654This change adds a runtime option that will force ACPICA to use the RSDT
655instead of the XSDT (AcpiGbl_DoNotUseXsdt). Although the ACPI spec
656requires that an XSDT be used instead of the RSDT, the XSDT has been
657found to be corrupt or ill-formed on some machines. Lv Zheng.
658
659Added a runtime option to favor 32-bit FADT register addresses over the
66064-bit addresses. This change adds an option to favor 32-bit FADT
661addresses when there is a conflict between the 32-bit and 64-bit versions
662of the same register. The default behavior is to use the 64-bit version
663in accordance with the ACPI specification. This can now be overridden via
664the AcpiGbl_Use32BitFadtAddresses flag. ACPICA BZ 885. Lv Zheng.
665
666During the change above, the internal "Convert FADT" and "Verify FADT"
667functions have been merged to simplify the code, making it easier to
668understand and maintain. ACPICA BZ 933.
669
670Improve exception reporting and handling for GPE block installation.
671Return an actual status from AcpiEvGetGpeXruptBlock and don't clobber the
672status when exiting AcpiEvInstallGpeBlock. ACPICA BZ 1019.
673
674Added helper macros to extract bus/segment numbers from the HEST table.
675This change adds two macros to extract the encoded bus and segment
676numbers from the HEST Bus field - ACPI_HEST_BUS and ACPI_HEST_SEGMENT.
677Betty Dall <betty.dall@hp.com>
678
679Removed the unused ACPI_FREE_BUFFER macro. This macro is no longer used
680by ACPICA. It is not a public macro, so it should have no effect on
681existing OSV code. Lv Zheng.
682
683Example Code and Data Size: These are the sizes for the OS-independent
684acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
685debug version of the code includes the debug output trace mechanism and
686has a much larger code and data size.
687
688 Current Release:
689 Non-Debug Version: 96.1K Code, 27.0K Data, 123.1K Total
690 Debug Version: 185.6K Code, 77.3K Data, 262.9K Total
691 Previous Release:
692 Non-Debug Version: 95.9K Code, 27.0K Data, 122.9K Total
693 Debug Version: 185.1K Code, 77.2K Data, 262.3K Total
694
695
6962) iASL Compiler/Disassembler and Tools:
697
698Disassembler: Improved pathname support for emitted External()
699statements. This change adds full pathname support for external names
700that have been resolved internally by the inclusion of additional ACPI
701tables (via the iASL -e option). Without this change, the disassembler
702can emit multiple externals for the same object, or it become confused
703when the Scope() operator is used on an external object. Overall, greatly
704improves the ability to actually recompile the emitted ASL code when
705objects a referenced across multiple ACPI tables. Reported by Michael
706Tsirkin (mst@redhat.com).
707
708Tests/ASLTS: Updated functional control suite to execute with no errors.
709David Box. Fixed several errors related to the testing of the interpreter
710slack mode. Lv Zheng.
711
712iASL: Added support to detect names that are declared within a control
713method, but are unused (these are temporary names that are only valid
714during the time the method is executing). A remark is issued for these
715cases. ACPICA BZ 1022.
716
717iASL: Added full support for the DBG2 table. Adds full disassembler,
718table compiler, and template generator support for the DBG2 table (Debug
719Port 2 table).
720
721iASL: Added full support for the PCCT table, update the table definition.
722Updates the PCCT table definition in the actbl3.h header and adds table
723compiler and template generator support.
724
725iASL: Added an option to emit only error messages (no warnings/remarks).
726The -ve option will enable only error messages, warnings and remarks are
727suppressed. This can simplify debugging when only the errors are
728important, such as when an ACPI table is disassembled and there are many
729warnings and remarks -- but only the actual errors are of real interest.
730
731Example ACPICA code (source/tools/examples): Updated the example code so
732that it builds to an actual working program, not just example code. Added
733ACPI tables and execution of an example control method in the DSDT. Added
734makefile support for Unix generation.
735
736----------------------------------------
73715 November 2013. Summary of changes for version 20131115:
738
739This release is available at https://acpica.org/downloads
740
741
7421) ACPICA kernel-resident subsystem:
743
744Resource Manager: Fixed loop termination for the "get AML length"
745function. The loop previously had an error termination on a NULL resource
746pointer, which can never happen since the loop simply increments a valid
747resource pointer. This fix changes the loop to terminate with an error on
748an invalid end-of-buffer condition. The problem can be seen as an
749infinite loop by callers to AcpiSetCurrentResources with an invalid or
750corrupted resource descriptor, or a resource descriptor that is missing
751an END_TAG descriptor. Reported by Dan Carpenter
752<dan.carpenter@oracle.com>. Lv Zheng, Bob Moore.
753
754Table unload and ACPICA termination: Delete all attached data objects
755during namespace node deletion. This fix updates namespace node deletion
756to delete the entire list of attached objects (attached via
757AcpiAttachObject) instead of just one of the attached items. ACPICA BZ
7581024. Tomasz Nowicki (tomasz.nowicki@linaro.org).
759
760ACPICA termination: Added support to delete all objects attached to the
761root namespace node. This fix deletes any and all objects that have been
762attached to the root node via AcpiAttachData. Previously, none of these
763objects were deleted. Reported by Tomasz Nowicki. ACPICA BZ 1026.
764
765Debug output: Do not emit the function nesting level for the in-kernel
766build. The nesting level is really only useful during a single-thread
767execution. Therefore, only enable this output for the AcpiExec utility.
768Also, only emit the thread ID when executing under AcpiExec (Context
769switches are still always detected and a message is emitted). ACPICA BZ
770972.
771
772Example Code and Data Size: These are the sizes for the OS-independent
773acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
774debug version of the code includes the debug output trace mechanism and
775has a much larger code and data size.
776
777 Current Release:
778 Non-Debug Version: 95.9K Code, 27.0K Data, 122.9K Total
779 Debug Version: 185.1K Code, 77.2K Data, 262.3K Total
780 Previous Release:
781 Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total
782 Debug Version: 185.2K Code, 77.2K Data, 262.4K Total
783
784
7852) iASL Compiler/Disassembler and Tools:
786
787AcpiExec/Unix-OSL: Use <termios.h> instead of <termio.h>. This is the
788correct portable POSIX header for terminal control functions.
789
790Disassembler: Fixed control method invocation issues related to the use
791of the CondRefOf() operator. The problem is seen in the disassembly where
792control method invocations may not be disassembled properly if the
793control method name has been used previously as an argument to CondRefOf.
794The solution is to not attempt to emit an external declaration for the
795CondRefOf target (it is not necessary in the first place). This prevents
796disassembler object type confusion. ACPICA BZ 988.
797
798Unix Makefiles: Added an option to disable compiler optimizations and the
799_FORTIFY_SOURCE flag. Some older compilers have problems compiling ACPICA
800with optimizations (reportedly, gcc 4.4 for example). This change adds a
801command line option for make (NOOPT) that disables all compiler
802optimizations and the _FORTIFY_SOURCE compiler flag. The default
803optimization is -O2 with the _FORTIFY_SOURCE flag specified. ACPICA BZ
8041034. Lv Zheng, Bob Moore.
805
806Tests/ASLTS: Added options to specify individual test cases and modes.
807This allows testers running aslts.sh to optionally specify individual
808test modes and test cases. Also added an option to disable the forced
809generation of the ACPICA tools from source if desired. Lv Zheng.
810
811----------------------------------------
81227 September 2013. Summary of changes for version 20130927:
813
814This release is available at https://acpica.org/downloads
815
816
8171) ACPICA kernel-resident subsystem:
818
819Fixed a problem with store operations to reference objects. This change
820fixes a problem where a Store operation to an ArgX object that contained
821a
822reference to a field object did not complete the automatic dereference
823and
824then write to the actual field object. Instead, the object type of the
825field object was inadvertently changed to match the type of the source
826operand. The new behavior will actually write to the field object (buffer
827field or field unit), thus matching the correct ACPI-defined behavior.
828
829Implemented support to allow the host to redefine individual OSL
830prototypes. This change enables the host to redefine OSL prototypes found
831in the acpiosxf.h file. This allows the host to implement OSL interfaces
832with a macro or inlined function. Further, it allows the host to add any
833additional required modifiers such as __iomem, __init, __exit, etc., as
834necessary on a per-interface basis. Enables maximum flexibility for the
835OSL interfaces. Lv Zheng.
836
837Hardcoded the access width for the FADT-defined reset register. The ACPI
838specification requires the reset register width to be 8 bits. ACPICA now
839hardcodes the width to 8 and ignores the FADT width value. This provides
840compatibility with other ACPI implementations that have allowed BIOS code
841with bad register width values to go unnoticed. Matthew Garett, Bob
842Moore,
843Lv Zheng.
844
845Changed the position/use of the ACPI_PRINTF_LIKE macro. This macro is
846used
847in the OSL header (acpiosxf). The change modifies the position of this
848macro in each instance where it is used (AcpiDebugPrint, etc.) to avoid
849build issues if the OSL defines the implementation of the interface to be
850an inline stub function. Lv Zheng.
851
852Deployed a new macro ACPI_EXPORT_SYMBOL_INIT for the main ACPICA
853initialization interfaces. This change adds a new macro for the main init
854and terminate external interfaces in order to support hosts that require
855additional or different processing for these functions. Changed from
856ACPI_EXPORT_SYMBOL to ACPI_EXPORT_SYMBOL_INIT for these functions. Lv
857Zheng, Bob Moore.
858
859Cleaned up the memory allocation macros for configurability. In the
860common
861case, the ACPI_ALLOCATE and related macros now resolve directly to their
862respective AcpiOs* OSL interfaces. Two options:
8631) The ACPI_ALLOCATE_ZEROED macro uses a simple local implementation by
864default, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define.
8652) For AcpiExec (and for debugging), the macros can optionally be
866resolved
867to the local ACPICA interfaces that track each allocation (local tracking
868is used to immediately detect memory leaks).
869Lv Zheng.
870
871Simplified the configuration for ACPI_REDUCED_HARDWARE. Allows the kernel
872to predefine this macro to either TRUE or FALSE during the system build.
873
874Replaced __FUNCTION_ with __func__ in the gcc-specific header.
875
876Example Code and Data Size: These are the sizes for the OS-independent
877acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
878debug version of the code includes the debug output trace mechanism and
879has a much larger code and data size.
880
881 Current Release:
882 Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total
883 Debug Version: 185.2K Code, 77.2K Data, 262.4K Total
884 Previous Release:
885 Non-Debug Version: 96.7K Code, 27.1K Data, 123.9K Total
886 Debug Version: 184.4K Code, 76.8K Data, 261.2K Total
887
888
8892) iASL Compiler/Disassembler and Tools:
890
891iASL: Implemented wildcard support for the -e option. This simplifies use
892when there are many SSDTs that must be included to resolve external
893method
894declarations. ACPICA BZ 1041. Example:
895 iasl -e ssdt*.dat -d dsdt.dat
896
897AcpiExec: Add history/line-editing for Unix/Linux systems. This change
898adds a portable module that implements full history and limited line
899editing for Unix and Linux systems. It does not use readline() due to
900portability issues. Instead it uses the POSIX termio interface to put the
901terminal in raw input mode so that the various special keys can be
902trapped
903(such as up/down-arrow for history support and left/right-arrow for line
904editing). Uses the existing debugger history mechanism. ACPICA BZ 1036.
905
906AcpiXtract: Add support to handle (ignore) "empty" lines containing only
907one or more spaces. This provides compatible with early or different
908versions of the AcpiDump utility. ACPICA BZ 1044.
909
910AcpiDump: Do not ignore tables that contain only an ACPI table header.
911Apparently, some BIOSs create SSDTs that contain an ACPI table header but
912no other data. This change adds support to dump these tables. Any tables
913shorter than the length of an ACPI table header remain in error (an error
914message is emitted). Reported by Yi Li.
915
916Debugger: Echo actual command along with the "unknown command" message.
917
918----------------------------------------
223 August 2013. Summary of changes for version 20130823:
3
41) ACPICA kernel-resident subsystem:
5
6Implemented support for host-installed System Control Interrupt (SCI)
7handlers. Certain ACPI functionality requires the host to handle raw
8SCIs. For example, the "SCI Doorbell" that is defined for memory power
9state support requires the host device driver to handle SCIs to examine

--- 14358 unchanged lines hidden ---
91923 August 2013. Summary of changes for version 20130823:
920
9211) ACPICA kernel-resident subsystem:
922
923Implemented support for host-installed System Control Interrupt (SCI)
924handlers. Certain ACPI functionality requires the host to handle raw
925SCIs. For example, the "SCI Doorbell" that is defined for memory power
926state support requires the host device driver to handle SCIs to examine

--- 14358 unchanged lines hidden ---