← Back to team overview

firmware-testing-team team mailing list archive

Introducing fwts 0.19.1 on the fwts development PPA

 

Hi there,

I've created a development fwts PPA for all the latest firmware test
suite changes that won't make it into Maverick 10.10 but will land in
Natty 11.04.

To get this goodness, run the following:

sudo add-apt-repository \
ppa:firmware-testing-team/ppa-firmware-test-suite-dev

then:

sudo apt-get update && sudo apt-get upgrade

So what's new in the 0.19.1 development version? The following tests
have been introduced:

cmos		CMOS register dump
acpidump	Dump out and annotate ACPI tables
romdump		Dump out BIOS/firmware ROM images
e820dump	Dump out E820 table
crs		Check PCI host bridge config using _CRS
apicinstance	Check for just once instance of ACPI/MADT table
hdaaudio	Check HDA Audio BIOS pin config vs driver pin config
os2gap		Check for legacy OS/2 15MB memory region gap

..the acpidump is the most significant change, this dumps out a lot of
detail about each ACPI table and is intended to allow one to debug
individually annotated fields.  Needless to say there are a *lot* of
tables and some effort was required to get this written. I will leverage
this to do some deeper semantic checks on the table contents at a later
date.

Other improvements are:

fan test - skip test if fan does not exist rather than fail.
log formatting - improved formatting of wrapped lines.
ebda test - print out the EBDA region size.
e820 region checking - load from /sys/firmware/mmap and fall back on
scanning kernel log if this fails.

I've also created a new "Utilities" classification for tools in fwts
that are not strictly tests. The acpidump, cmosdump, e820dump and
romdump code falls into this classification and are not run as standard
tests since they provide diagnostic dumps of machine tables and data.

New command line options/flags:

-S, --skip-test
        using this one can specify which tests you want to skip using a
        comma separated list of test names,  E.g. --skip-test=s3,s4,crs
        or -S s3,s4,crs
        
-
        This null switch will redirect the log output to stdout
        
-D, --show-progress-dialog
        This will dump out progress information that can be pipe'd to
        the dialog command, e.g. fwts -D | dialog --gauge "fwts" 20 70
        This will make the USB key fwts test image easier to implement
        dialog based progress feedback to the user.
        
I also took the liberty to re-write the ACPI table extraction code. The
initial fwts used acpidump, then moved over to reading tables
from /sys/firmware but this did not extract all the available tables.
I've now re-written the code to either find the root table
from /sys/firmware/efi/systab (for UEFI systems) or scan the BIOS
(non-UEFI) and from this to mmap and read the tables from firmware. The
code now caches these tables making the tests run faster.

The current suite of tests now comprises of:

Batch tests:
 acpiinfo      General ACPI information check.
 apicedge      APIC Edge/Level Check.
 apicinstance  Check for single instance of APIC/MADT table.
 bios_info     Gather BIOS DMI information.
 checksum      Check ACPI table checksum.
 cpufreq       CPU frequency scaling tests (takes ~1-2 mins).
 crs           Check PCI host bridge configuration using _CRS.
 dmesg_common  General dmesg common errors check.
 dmi_decode    Test DMI/SMBIOS tables for errors.
 ebda          Validate EBDA region is mapped and reserved in E820
table.
 fadt          FADT SCI_EN enabled check.
 fan           Simple Fan Tests.
 hda_audio     Check HDA Audio Pin Configs.
 hpet_check    HPET configuration test.
 klog          Scan kernel log for errors and warnings.
 maxfreq       Check max CPU frequencies against max scaling frequency.
 maxreadreq    Checks firmware has set PCI Express MaxReadReq to a
higher value on non-motherboard devices.
 mcfg          MCFG PCI Express* memory mapped config space.
 microcode     Check if system is using latest microcode.
 mtrr          MTRR validation.
 nx            Test if CPU NX is disabled by the BIOS.
 os2gap        OS/2 memory hole test
 osilinux      Disassemble DSDT to check for _OSI("Linux").
 syntaxcheck   Re-assemble DSDT and find syntax errors and warnings.
 thermal_trip  Test ACPI passive thermal trip points.
 version       Gather kernel system information.
 virt          Test CPU Virtualisation Configuration.
 wakealarm     Test ACPI Wakealarm.
 wmi           Extract and analyse Windows Management Instrumentation
(WMI).

Interactive tests:
 ac_adapter    Interactive ac_adapter power test.
 battery       Battery Tests.
 brightness    Interactive LCD brightness test.
 hotkey        Hotkey scan code tests.
 lid           Interactive lid button test.
 power_button  Interactive power_button button test.

Batch Experimental tests:
 cstates       Check processor C state support.
 dmar          Check sane DMA Remapping (VT-d).

Power States tests:
 s3            S3 suspend/resume test.
 s4            S4 hibernate/resume test.

Utilities:
 acpidump      Check ACPI table acpidump.
 cmosdump      Dump CMOS Memory.
 e820dump      Dump INT 15 E820 memmap.
 romdump       Dump ROM data.


So.. please start testing and give me feedback!  :-)  Please note that
this fwts development PPA is subject to some frequent change and there
is always a possibility of unstable code landing in it.

Thanks,

Colin