************************************
LINUX-READY FIRMWARE DEVELOPER KIT
RELEASE 2

April 11th, 2007
************************************

The Linux-ready Firmware Developer Kit team is pleased to announce the
release R2 of the kit. This release is mostly very heavy with bug-fixes,
infrastructure re-org. to make it easier for outside developers to 
write & contribute plugins, and of course, tons of documentation. A few
new tests and features have been added, including things you've asked for
such as ssh-upload and a text-based version of the results.

The Linux-ready Firmware Developer Kit is a tool to test how well Linux
works together with the firmware (BIOS or EFI) of your machine, and is
designed for use by both firmware development teams and Linux kernel
hackers to prevent and diagnose firmware bugs.

Summary
=======

Enhancements
* ssh upload of results
* globalized DSDT & SSDT lists for standalone and .so plugins
* better logically implemented dmesg and e820 functions
* text-based results
* documentation of each plugin and the meaning if its results 
	(Documentation/TestsInfo)
* bug-fixes


New Tests
=========
* ia64 error injection tool
* fan test (now functional)
* SUN test (now functional)
* ebda test
* cpufreq: added test for Ingo's _PSS bug
* dmesg: added detection for buzilla.kernel.org bug 6859


You can download this latest release of the kit from

    http://www.linuxfirmwarekit.org


The Linux-ready Firmware Developer Kit team
	Jacob Pan
	Rolla Selbak
	Arjan van de Ven


New tests
---------

* ia64 error injection tool
* fan test (now functional)
* SUN test (now functional)
* ebda test

IA64 error injection tool
  IPF Machine Check (MC) error inject tool is used to inject MC
  errors from Linux. The tool is a test bed for IPF MC work flow including
  hardware correctable error handling, OS recoverable error handling, MC
  event logging, etc.

fan test (now functional)
  This test reports how many fans there are in the system.
  It also checks for the current status of the fan(s).


SUN test (now functional)
  This makes sure that each SUN (Slot Unique Number) that is
  called in the DSDT through the Name() method is unique, no
  duplicates should be found.

ebda test
  This test validates if the EBDA region is mapped and reserved in the 
  E820 table.



************************************
LINUX-READY FIRMWARE DEVELOPER KIT
RELEASE 1

December 7th, 2006
************************************


Changes in R1 of the Linux-ready Firmware Developer Kit
-------------------------------------------------------

Features
--------
Linux distribution kernels
	Several people have asked us to make it easy to also test vendor
	kernels with the BIOS, and not just the vanilla kernel.org kernel.
	The standard ISO image contains 3 such kernels now, and the build
	system allows adding your own very easily.

General improvements
--------------------
Infrastructure
	The mini-OS on the CD has been upgraded to the Fedora Core 6 rpms.
	This allows us to leverage the suspend/resume infrastructure in FC6.
Kernel
	The kernel on the CD image has been updated to version 2.6.19
Serial console
	Thomas Renninger from Novell/SuSE contributed code that detects the
	selected serial console speed automatically, rather than using a
	fixed speed as R0 did.
Prototype IA64 support
	The firmware kit runs on IA64 now; however no ISO image is available
	yet.
Automatic mode
	The firmware kit can now run in "auto pilot" mode, where the entire
	kit is non-interactive and just saves the results before exiting.
Build system
	The build process has been changed to link against the libraries
	that will be on the final CD image, rather than the ones on the
	system. This should make the build process a lot more portable
	than it was in R0.

New tests
---------
Suspend-Resume 
	This manual test allows you to test if Suspend (to ram), and 
	more importantly, Resume works on the machine

basic HPET test
	This test verifies if the kernel detects the HPET component of
	the chipset properly. Firmware writers are strongly encouraged
	to default-enable HPET to allow Linux to do fast and accurate
	timekeeping.

P-state coordination
	Current dual core processors have a behavior that the effective
	frequency of both cores in a package is the maximum of the set
	frequencies of the cores. This is called "Hardware coordination".
	However some firmware does not get this right and uses "software
	coordination" where both cores run at the speed that was programmed
	into either of the cores. 

Thermal Trip Points
	Frank Seidel from Novell/SuSE has contributed a test for the thermal
	trip points in a system.

32/64 FADT test
	The FADT ACPI table is sometimes available in a 32 bit and a 64 bit
	version. This test verifies that the common fields in these tables 
	are identical; they need to be since they describe the same properties.

SSDT AML test
	In addition to the DSDT, some firmware has SSDT tables which are
	supplemental AML tables to the DSDT. The firmware kit now performs
	the same checks on the SSDT tables as it does on the DSDT.

Microcode version test
	Intel CPUs have a feature called "microcode update", which makes it
	possible to field update some non-performance critical behaviors of
	the processor. The firmware is responsible to load a recent enough
	version of this microcode into the processor; this test checks if
	a more recent version exists.

DMI table test
	The DMI table is used by Linux in several places, for example for
	model specific workarounds. This test checks the DMI table against
	a set of common mistakes, such as out-of-range values and reference
	values that are copied but not adjusted from a reference
	implementation.

VMX enabled test
	Some firmware disables the VMX Virtualization extensions entirely;
	this is unfortunate since Xen and KVM cannot use these extensions on
	the machine. This test checks for this.

OS/2 gap test
	For old versions of the OS/2* operating system, the firmware needed 
	to leave a gap in memory between 15Mb and 16Mb. However this gap
	breaks various bootloaders that are used by Linux distributions,
	and should never be enabled by default.

APIC edge/level test
	When using apics, the legacy interrupts on a system should be 
	edge-triggered, while non-legacy interrupts should be level-triggered.
	If this is not done correctly, interrupts get either lost or cause
	an interrupt storm, both can hang the Linux kernel.

PCI Express maxreadreq test
	PCI Express cards have a tunable buffer size with a default size of
	128. The firmware is responsible for programming this buffer size to
	a higher value during POST for optimal performance. This test
	verifies that all PCI Express cards in a system have a higher tuned
	setting. This test was suggested by Roland Dreier from Cisco after
	a major Infiniband performance issue was diagnosed to be a non-tuned 
	maxreadreq.

_SUN test
	PCI slots may have numbers (this is needed to tell the user "the
	card in slot 4 can now be hot-unplugged safely). Some firmware
	has assigned duplicate numbers to some slots, and this prevents
	PCI/PCI-E hotplug from working reliably.


