← Back to team overview

firmware-testing-team team mailing list archive

Firmware test suite, version 0.21.0

 

Hi all,

Another week, some more features!

A new version of fwts is now available in the PPA
ppa:firmware-testing-team/ppa-firmware-test-suite-natty-stable and also
it has been uploaded to the Natty 11.04 universe archive.

I'm bumping the version to 0.21.0 as this now marks the end of the
significant ACPICA core development changes found in 0.20.x

Changes:

* syntaxcheck test: This test disassembles and re-assembles the ACPI AML
byte code and picks up syntactic and some semantic bugs.  This picks up
bugs that are introduced by the less strict Microsoft compiler.  In this
release I've expanded the error message checking so it provides detailed
explanations of errors, for example:

00012 syntaxcheck     Re-assemble DSDT and find syntax errors and warnings.
00013 syntaxcheck     -----------------------------------------------------------------------------
00014 syntaxcheck     Test 1 of 2: Disassemble and reassemble DSDT
00015 syntaxcheck     Line | AML source
00016 syntaxcheck     -----------------------------------------------------------------------------
00017 syntaxcheck     01067|                     0x00000000,         // Range Minimum
00018 syntaxcheck     01068|                     0xDFFFFFFF,         // Range Maximum
00019 syntaxcheck     01069|                     0x00000000,         // Translation Offset
00020 syntaxcheck     01070|                     0x00000000,         // Length
00021 syntaxcheck          |                              ^
00022 syntaxcheck          | error 4122: Invalid combination of Length and Min/Max fixed flags
00023 syntaxcheck     01071|                     ,, _Y0D, AddressRangeMemory, TypeStatic)
00024 syntaxcheck     01072|                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
00025 syntaxcheck     01073|                     0x00000000,         // Granularity
00026 syntaxcheck     =============================================================================
00027 syntaxcheck
00028 syntaxcheck     ADVICE: (for error #4122): This occurs if the length is zero and just one of
00029 syntaxcheck     the resource MIF/MAF flags are set, or the length is non-zero and resource MIF
00030 syntaxcheck     /MAF flags are both set. These are illegal combinations and need to be fixed.
00031 syntaxcheck     See section 6.4.3.5 Address Space Resource Descriptors of version 4.0a of the
00032 syntaxcheck     ACPI specification for more details.

Note that there is a ^ to point to where the error is (line 00021 of the above log), followed by
the compiler error message, and then where appropriate an ADVICE line to explain this error in
more details.

..I went through all the 120+ errors, located them in the compiler, figured 
out the reason for the error and added the appropriate advice text to the test. Hopefully this
is a worth while exercise.  Incidentally, a PDF copy of the ACPI spec can be found at: 
http://www.acpi.info/DOWNLOADS/ACPIspec40a.pdf

* S4 extra option:

--s4-sleep-delay=N has been added to specify the amount of time in seconds between initiating 
the hibernate and the wakeup from hibernate.  We need to factor in the time it takes to 
write the hibernate image to disk, and this can be variable depending on the speed of the swap
device and the amount of memory that needs to be dumped to disk.  The default is 90 seconds, 
but with this option one can override the default.   In theory we could automatically figure out
the optimal sleep delay time, but since hibernate times can vary per S4 cycle, in practice it is 
more reliable for a human to specify this per use-case.

* Disassemble AML option:

--disassemble-aml is a new option that will disassemble all AML byte code in DSDT and 
SSDT ACPI tables and dump the output into files DSDT.dsl and SSDTn.dsl (where n is the 
nth SSDT table).  This is quicker and more convenient than the normal way of dumping 
the assembler using the acpixtract, acpidump and iasl tools.

Bug fixes:

* Report month correctly in log. Off by one error. Doh.

That's about it for this week.  Please keep providing me we with feedback!

Colin