[DB] BIOS - ACPI - data collecting
Most of you here had probably followed the "regressions" pointed out some weeks ago by Phoronix. I will not repeat all what have been told, except that the true guilt are the badly programmed BIOS. A good article sums up this on LWN ( lwn.net/Articles/449448 ) and probably elsewhere.
Most of time (always?) the BIOS are programmed in assembly. Like everywhere in computer science, it is important having a BIOS which respects standards, like ACPI. The ACPI tables are "compiled" (the word is probably not the perfect one) with a compiler. Several vendors provide compilers. For example: Microsoft, Intel, Award, etc. Some compilers seems to be more strict at the compile time, which seems to be the case of the Intel compiler, "iasl" (Intel ACPI Source Language compiler/decompiler). Furthermore, Intel provides a reference ACPI implementation called ACPICA ( acpica.org ) which is included within Linux. For your information, the ACPI standard is co-developed by Intel, Microsoft, Toshiba, HP, Phoenix and maybe other. That said, this doesn't means that they implement correctly the standards. Microsoft is a member of the W3C Consortium and however we see their HTML and CSS implementations...
What I have heard during these last events is that Microsoft (through its ACPI compiler) overlooks more easily "errors", knowing it can workaround them in the OS. Obviously this *can* results in BIOS more or less buggy, penalizing the others OS. Motherboards vendors (BIOS vendor to be correct) have the possibility to use the compiler of their choice. Have you ever noted on vendor's web sites, logos like "XXX recommends Windows"? Personally I don't feel this attractive and this is why I am interrogating on the good Linux support. Are the BIOS tested only with Windows?
This is why I want to collect here several BIOS data: which compiler use the vendors, etc. To do so, it's easy:
# yum install pmtools
# acpidump > acpi.dump
# acpixtract -l acpi.dump
Post here the results of the last command. Report also your motherboard model (you can get useful data thanks to dmidecode) and BIOS version. I will update my database. I have personally tested several motherboards. With help of different French Linux forums, I have collected more data already.
Intel provides a Linux-ready Firmware Kit, available on a LiveCD (79 MB) ( http://linuxfirmwarekit.org/download/firmwarekit-r3.iso ). You only have to launch it, wait 1 or 2 minutes, and there is a summary of the results based on different topics (memory handling, PCI resources, HPET, ACPI tables, and more). The results is a number of "Fail", "Warn" and "Pass" flags. This Linux-ready Firmware Kit seems to not be developed anymore, but I guess it can give us a idea of the quality of the BIOS.
All the collected data are here:
Note 1) One thing that must become clearer is if the Linux-ready Firmware Kit can have different results if the BIOS parameters change (example: if the SpeedStep/Cool'n'Quiet is enabled/disabled).
Note 2) I'm not a BIOS or ACPI expert. So if I tell something wrong, please tell me. I will correct this!
Note 3) I don't know if the Linux-ready Firmware Kit can be executed on a running system.
Note 4) I'm not English native speaker.
Sounds like a nice idea, and if people can play around with the bios settings and running the steps each time they change settings just to get an idea of what happens. Of course anyone who plays with their BIOS settings should note the original settings prior to testing.
Not sure if the Intel live CD will give meaningful results with most recent BIOS...but its worth a try.
Also where should all the dumps be collected for analysis?
I have debian so there's package acpidump in the repos for those who use Debian
Last edited by DeepDayze; 10-16-2011 at 01:54 PM.
Here on the thread. The results of the acpixtract is short and there is no "analysis" to be done, just read the log.
Originally Posted by DeepDayze
Nevertheless, given the data I already have, the acpixtract data are not really interesting. The Linux-ready Firmware Kit results are much more interesting!
I really want to collect data of Abit, Intel server, Tyan and Super Micro motherboards.
Here is an ACPI dump for an Abit KN9 mobo
Signature Length OemId OemTableId OemRevision CompilerId CompilerRevision
DSDT 25634 "NVIDIA" "AWRDACPI" 00001000 "MSFT" 0100000E
FACP 116 "DELL " "AWRDACPI" 42302E31 "AWRD" 00000000
SSDT 848 "PTLTD " "POWERNOW" 00000001 " LTP" 00000001
MCFG 60 "DELL " "AWRDACPI" 42302E31 "AWRD" 00000000
APIC 114 "DELL " "AWRDACPI" 42302E31 "AWRD" 00000000
SLIC 374 "DELL " "QA09 " 42302E31 "NVDA" 0100000E
RSDT 56 "DELL " "QA09 " 42302E31 "AWRD" 00000000
Found 9 ACPI tables 
Basic system info:
Machine: Mobo: Abit model: KN9 Series(NF-CK804) version: 1.x Bios: Phoenix version: 6.00 PG date: 04/28/2008
CPU: Dual core AMD Athlon 64 X2 6400+ (-MCP-) cache: 2048 KB flags: (lm nx sse sse2 sse3 svm)
Clock Speeds: 1: 1000.00 MHz 2: 1000.00 MHz
I'll get a dump using the Intel CD later
Originally Posted by DeepDayze
Thank you for your report.
Exist a Linux-ready Firmware Developer Kit RELEASE 4 in the svn of the project ( http://code.google.com/p/linuxfirmwa...e/#svn%2Ftrunk ). If someone creates an iso image the data may be more useful.
Originally Posted by whitecat
Tags for this Thread