
| Intel Linux-Ready Firmware Developer Kit |
| 摘自: www.phoronix.com 被阅读次数: 118 |
由 yangyi 于 2008-05-05 18:31:03 提供 |
Intel's Open-Source Technology Center is involved with a number of open-source Linux projects such as Threading Building Blocks, Moblin, PowerTOP, and the X.Org graphics driver. Intel also has vested interests in numerous other projects such as Xen and KVM. One of Intel's lesser-known projects, however, is the Linux-ready Firmware Developer Kit. The Linux-ready Firmware Developer Kit is a bootable CD that analyzes the BIOS or EFI on the test system to see how well it's able to work with Linux and what features are supported via the firmware. The primary purpose of this kit is for use by firmware developers, but it's also able to aide end-users in determining what BIOS features on their system will work with Linux. The Intel Linux-ready Firmware Developer Kit (LFDK) can be downloaded from their project website as a bootable ISO or just the source-code, which is 80MB and 199Kb, respectively. The latest version of the Linux-ready Firmware Developer Kit is Release 3, which arrived in October of 2007. This release had added new test kernels, updated microcode files, new tests, integrating PowerTOP, and many other changes. Planned for release 4 of the Linux-ready Firmware Developer Kit is support for Itanium (IA64), EFI (Extensible Firmware Interface), improved suspend code, and EDID DDC video probing. Planned for a future release is also a results comparison tool. The LFDK is licensed under the LGPL. When booting to the Linux-ready Firmware Developer Kit CD, the user can choose between a number of Linux kernels to use. The default kernel with LFDK Release 3 is a vanilla Linux 2.6.22.9 kernel, but for improved relevancy of this utility, it also ships with a number of kernels found in common Linux distributions. The alternatives in LFDK Release 3 are Fedora Core 6, Mandriva 2007.1, and Ubuntu 7.04. The Linux-ready Firmware Developer Kit also supports booting in a safe-mode and running over a serial console. Once the kernel is selected, LFDK will boot using that kernel and then proceed to run its firmware tests. The initial firmware tests are all automated, but following these tests there are a number of supported manual tests. The Linux-ready Firmware Developer Kit provides much more information than simply stating whether the BIOS or EFI implementation on the system passes or fails. An interactive results viewer is built into the LFDK and for each test shows whether it failed, a warning was generated, or it passed. When selecting a test, a description is provided along with information that is more detailed. Some of the information is easily relevant to end-users, such as the ACPI fan tests, Ethernet testing, and checking for virtualization extensions, while others are much more focused for the firmware developer or quality assurance team. Among these other tests are HPET configuration, PCI Express MaxReadReq tuning, and DSDT AML verification. Intel warns end-users that failure of any of these ~20 firmware tests doesn't necessarily mean the system is defective or won't work with Linux. Even when running a QEMU virtualized copy of the LFDK, there were three failures and three warnings with the Bochs BIOS. On a Lenovo ThinkPad R52 notebook, which actually works quite well with any recent Linux 2.6 distribution, there were three failures and two warnings. After analyzing the automated firmware tests, the results can be saved, manual tests can be run, and there is support for additional hardware probing. When saving the results, not only are the results (the same information as what's found in the interactive viewer) dumped, but also plenty of firmware information to aide developers. An ACPI dump is done as well as the DSDT, LFDK error log, and a resources file. The original DSDT (Differentiated System Description Table) is dumped along with the decompiled version. This isn't something unique, as the DSDT can be easily dumped within any Linux distribution and then disassembled using the Intel ASL compiler/decompiler, but it's handy for developers nevertheless. For those out of the loop, the Differentiated System Description Table (DSDT) contains information and hardware configuration data that generates the ACPI namespace at boot-time. The dumped resources file is formatted in XML and contains the dmesg output, AML (ACPI Machine Language) output, MTRR (Memory Type Range Registers), and PCI information. These results can be saved to an attached USB driver or over SSH. One feature request we have would be formatting the results file in XML or HTML as opposed to just having the text output. The manual tests in the Linux-ready Firmware Developer Kit (Release 3) include suspend/resume, LMBench, Bash Linux shell, speaker test, USB port validation, MCFG test, FADT test, and PowerTOP. The suspend/resume test will attempt to suspend-to-ram and then the resume process must be triggered manually. LMBench Version 3 is made up of bandwidth and latency benchmarks. The Bash Linux shell test, well, just presents a bash shell for any commands you wish to run manually. The PC speaker test just emits three different tones, which should be heard if the firmware is setup properly. The USB port validation executes a basic test on any attached USB storage device and the second component of this test is emitting a tone when a USB device is attached to each USB port, for testing connectivity. The MCFG test attempts to validate the MCFG table and the FADT test checks whether the FADT SCI_EN bit is enabled. Many Linux end-users are familiar with PowerTOP, which is another Intel OSTC project and is designed to conserve power consumption by analyzing the system and then making power-saving recommendations. The final area of the LFDK is for poking hardware, specifically for the PCI configuration space and MSR (Model-Specific Registers). The PCI configuration space poking allows the user to select a device on the PCI bus and then will display the PCI configuration data. Following that, you can then write to the PCI configuration space. The MSR poking allows you to read and write current values. This hardware poking area is geared for BIOS/firmware developers and not end-users. Intel's Linux-ready Firmware Developer Kit isn't as end-user friendly/useful compared to Sun's Check Tool for Solaris, but they are focusing upon slightly different objectives. The design goals for the LFDK are to provide easy Linux testing without a high learning curve, valuable feedback that isn't hard to read, and easy to contribute towards this project via writing your own firmware tests. This kit is about testing the EFI/BIOS on the running system to see how compatible it is with various Linux kernels, but with the addition of tests such as PowerTOP and LMBench, its capabilities are extending beyond the firmware. LFDK is targeted for developers, but the Linux-ready Firmware Developer Kit accompanied by other Linux tests can aide in determining the Linux viability of a system. We are currently evaluating the LFDK for possible use in future motherboard reviews and as a complement to the Phoronix Test Suite. Download links and additional information on this Intel open-source project are available at LinuxFirmwareKit.org. Original link: http://www.phoronix.com/scan.php... |