Board:kontron/986lcd-m: Difference between revisions
m (→Status) |
m (Phcoder moved page Kontron 986LCD-M mITX to Board:kontron/986lcd-m) |
||
(32 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:Kontron 986lcd m mitx top.jpg|thumb|Top]] | |||
[[Image:Kontron 986lcd m mitx side.jpg|thumb|Side]] | |||
[[Image:Kontron 986lcd m mitx backpanel.jpg|thumb|Backpanel]] | |||
[[Image:Kontron 986lcd m mitx with power supply.jpg|thumb|Board and power supply]] | |||
This page describes how to use coreboot on the '''[http://de.kontron.com/products/boards+and+mezzanines/embedded+motherboards/miniitx+motherboards/986lcdmmitx.html Kontron 986LCD-M/mITX]''' mainboard. It is maintained by [[User:Uwe|Uwe Hermann]]. | This page describes how to use coreboot on the '''[http://de.kontron.com/products/boards+and+mezzanines/embedded+motherboards/miniitx+motherboards/986lcdmmitx.html Kontron 986LCD-M/mITX]''' mainboard. It is maintained by [[User:Uwe|Uwe Hermann]]. | ||
The mainboard's [http://emea.kontron.com/_etc/scripts/download/getdownload.php?downloadId=NTYzMA== manual] (PDF) is available from the [http://de.kontron.com/products/boards+and+mezzanines/embedded+motherboards/miniitx+motherboards/986lcdmmitx.html vendor website] (together with various other documents). | |||
A sample boot log from this board is available [http://www.coreboot.org/pipermail/coreboot/attachments/20090704/643270ec/attachment-0002.bin in the mailing list archive]. | |||
== Status == | == Status == | ||
Line 5: | Line 14: | ||
{{Status| | {{Status| | ||
|CPU_status = | |CPU_status = OK | ||
|CPU_L1_status = | |CPU_comments = Intel(R) Core(TM)2 CPU T5300 @ 1.73GHz (dual core) | ||
|CPU_L1_comments = | |CPU_L1_status = OK | ||
|CPU_L2_status = | |CPU_L1_comments = CPU: L1 I cache: 32K, L1 D cache: 32K | ||
|CPU_L2_comments = | |CPU_L2_status = OK | ||
|CPU_L3_status = | |CPU_L2_comments = L2 cache: 2048K | ||
|CPU_L3_status = N/A | |||
|CPU_multiple_status = N/A | |CPU_multiple_status = N/A | ||
|CPU_multicore_status = | |CPU_multicore_status = OK | ||
|CPU_virt_status = | |CPU_multicore_comments = Both cores show up in '''/proc/cpuinfo'''. | ||
|CPU_virt_status = Untested | |||
|CPU_virt_comments = Hardware virtualization is [http://www.intel.com/products/processor_number/chart/core2duo.htm not supported by this CPU] ('''modprobe kvm-intel''' fails on coreboot + vendor BIOS). | |||
|RAM_EDO_status = N/A | |RAM_EDO_status = N/A | ||
Line 19: | Line 31: | ||
|RAM_SODIMM_status = N/A | |RAM_SODIMM_status = N/A | ||
|RAM_DDR_status = N/A | |RAM_DDR_status = N/A | ||
|RAM_DDR2_status = | |RAM_DDR2_status = OK | ||
|RAM_DDR2_comments = Works fine, but currently you need to populate both RAM slots with DIMMs of the same size (and reasonably similar timing probably: The controller has to operate in Dual Channel mode for now). | |||
|RAM_DDR3_status = N/A | |RAM_DDR3_status = N/A | ||
|RAM_dualchannel_status = | |RAM_dualchannel_status = OK | ||
|RAM_ecc_status = | |RAM_dualchannel_comments = Works fine according to '''memtest86+''' (Tested: 2x 1GB DIMMs, interleaved mode). | ||
|RAM_ecc_status = N/A | |||
|IDE_status = OK | |IDE_status = OK | ||
|IDE_25_status = N/A | |IDE_25_status = N/A | ||
|SATA_status = | |SATA_status = OK | ||
|USB_status = | |SATA_comments = Tested: SATA disk ('''(hd0,0)''' / '''hda1''' in [[FILO]], '''/dev/sda1''' in Linux). | ||
|Onboard_VGA_status = | |USB_status = OK | ||
|Onboard_ethernet_status = | |USB_comments = Tested: USB thumb drive in all 4 backpanel USB ports, as well as on the USB pin headers on the board ('''USB6_7''', see manual). | ||
|Onboard_audio_status = | |Onboard_VGA_status = OK | ||
|Onboard_modem_status = | |Onboard_VGA_comments = You need to prepend the VGA blob from the proprietary BIOS for this to work. Console works, X11 works (use the '''intel''' X.org driver). | ||
|Onboard_firewire_status = | |Onboard_ethernet_status = OK | ||
|Onboard_ethernet_comments = All three NICs show up correctly in '''ifconfig -a''' and work fine. | |||
|Onboard_audio_status = OK | |||
|Onboard_audio_comments = Works fine. | |||
|Onboard_modem_status = N/A | |||
|Onboard_firewire_status = OK | |||
|Onboard_firewire_comments = Seems to work fine (backpanel FireWire port), even with '''pci=noacpi'''. Tested using the '''eth1394''' module for IPv4-over-FireWire. The FireWire pinheader '''IEEE1394_1''' (see manual) is not yet well-tested. | |||
|Smartcard_status = N/A | |Smartcard_status = N/A | ||
|Onboard_CF_status = | |Onboard_CF_status = OK | ||
|Onboard_CF_comments = There's an onboard CompactFlash slot on the back-side of the board. [[FILO]] sees it as '''(hd2,0)''' / '''hdc1''', Linux as '''/dev/sdb1'''. | |||
|Onboard_PCMCIA_status = N/A | |Onboard_PCMCIA_status = N/A | ||
|Onboard_SCSI_status = N/A | |Onboard_SCSI_status = N/A | ||
Line 40: | Line 61: | ||
|ISA_cards_status = N/A | |ISA_cards_status = N/A | ||
|AMR_cards_status = N/A | |AMR_cards_status = N/A | ||
|Mini_PCI_cards_status = Untested | |||
|PCIX_cards_status = N/A | |||
|AGP_cards_status = N/A | |AGP_cards_status = N/A | ||
|PCI_cards_status = | |PCI_cards_status = OK | ||
|PCIE_x1_status = | |PCI_cards_comments = Works fine, tested with a PCI network card. | ||
|PCIE_x1_status = OK | |||
|PCIE_x1_comments = Works fine with PCIe x1 network card in x16 slot | |||
|PCIE_x2_status = N/A | |PCIE_x2_status = N/A | ||
|PCIE_x4_status = N/A | |PCIE_x4_status = N/A | ||
|PCIE_x8_status = N/A | |PCIE_x8_status = N/A | ||
|PCIE_x16_status = | |PCIE_x16_status = OK | ||
|PCIE_x16_comments = Works fine, tested with an Nvidia x16 graphics card | |||
|PCIE_x32_status = N/A | |PCIE_x32_status = N/A | ||
|HTX_status = N/A | |HTX_status = N/A | ||
|Floppy_status = | |Floppy_status = N/A | ||
|COM1_status = OK | |COM1_status = OK | ||
|COM2_status = | |COM2_status = Untested | ||
|PP_status = | |COM2_comments = There are also COM3 and COM4 pin headers on this board. | ||
|PS2_keyboard_status = | |PP_status = OK | ||
|PS2_mouse_status = | |PP_comments = Doing '''modprobe ppdev''' works, but no further test were performed. You probably need a special cable to connect to the onboard pin-header. | ||
|PS2_keyboard_status = OK | |||
|PS2_mouse_status = OK | |||
|Game_port_status = N/A | |Game_port_status = N/A | ||
|IR_status = | |IR_status = Untested | ||
|Speaker_status = | |Speaker_status = OK | ||
|DiskOnChip_status = N/A | |DiskOnChip_status = N/A | ||
|Sensors_status = | |Sensors_status = OK | ||
|Watchdog_status = | |Sensors_comments = Works fine using the '''w83627hf''', '''coretemp''' (and also '''i2c-dev''', '''i2c-i810''', and '''eeprom''') Linux kernel modules. | ||
|SMBus_status = | |Watchdog_status = OK | ||
|Watchdog_comments = Not yet actually tested, but it seems to be found: '''iTCO_wdt: Found a ICH7 or ICH7R TCO device (Version=2, TCOBASE=0x0560)'''. | |||
|SMBus_status = Untested | |||
|CAN_bus_status = N/A | |CAN_bus_status = N/A | ||
|CPUfreq_status = | |CPUfreq_status = WIP | ||
|CPUfreq_comments = With '''pci=noacpi''' the '''cpufreq-info''' utility doesn't output anything useful. On vendor BIOS you can use '''p4-clockmod''' (discouraged) or '''acpi-cpufreq''' (iff you enabled the respective option in the BIOS menu). On coreboot with ACPI, you can '''modprobe p4-clockmod''' successfully (but not '''acpi-cpufreq'''), but it's unclear if it really works correctly. | |||
|Powersave_status = N/A | |Powersave_status = N/A | ||
|ACPI_status = | |ACPI_status = OK | ||
|Reboot_status = | |ACPI_comments = | ||
|Poweroff_status = | |Reboot_status = OK | ||
|LEDs_status = | |Reboot_comments = Seems to work fine, even with '''pci=noacpi'''. | ||
|HPET_status = | |Poweroff_status = OK | ||
|RNG_status = | |Poweroff_comments = Works fine. | ||
|WakeOnModem_status = | |LEDs_status = N/A | ||
|WakeOnLAN_status = | |HPET_status = OK | ||
|WakeOnKeyboard_status = | |HPET_comments = The HPET is detected by Linux ('''hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0''') and '''powertop''' output suggests that it works ok. | ||
|WakeOnMouse_status = | |RNG_status = N/A | ||
|WakeOnModem_status = N/A | |||
|WakeOnLAN_status = OK | |||
|WakeOnLAN_comments = Works fine. Tested using the '''wakeonlan''' utility. | |||
|WakeOnKeyboard_status = Untested | |||
|WakeOnKeyboard_comments = Works fine with vendor BIOS. | |||
|WakeOnMouse_status = N/A | |||
|WakeOnMouse_comments = Doesn't seem to be supported (by the hardware / vendor BIOS), tested with a PS/2 mouse, as well as with a USB mouse. | |||
|Flashrom_status = OK | |Flashrom_status = OK | ||
|Flashrom_comments = Works fine, but you | |Flashrom_comments = Works fine, but you might need '''-m kontron:986lcd-m''' when booted with the vendor BIOS (not needed when booted with coreboot). | ||
}} | }} | ||
== Build tutorial == | == Build tutorial (with onboard VGA) == | ||
$ '''svn co svn://coreboot.org/coreboot/trunk coreboot''' | |||
$ '''cd coreboot''' | |||
$ '''make menuconfig''' | |||
In the payload menu change the settings like follows: | |||
Add a payload (An ELF executable payload) ---> | |||
(payload.elf) Payload path and filename | |||
[*] Use LZMA compression for payloads | |||
To add a VGABIOS image to the CBFS image go to the VGA BIOS submenu and change the settings to the following: | |||
[*] Add a VGA BIOS image | |||
(amipci_01.20) VGA BIOS path and filename | |||
(8086,27a2) VGA device PCI IDs | |||
Now copy your [[Payloads|payload]] into the current directory and name it '''payload.elf'''. Then: | Now copy your [[Payloads|payload]] into the current directory and name it '''payload.elf'''. Then: | ||
$ '''make''' | |||
The resulting '''build/coreboot.rom''' is your coreboot ROM image you can flash using [[flashrom]]. | |||
=== Getting the VGABIOS image === | |||
Then, you have to obtain the VGA blob from the vendor BIOS. Thus, get the original vendor BIOS image using [[flashrom]]: | |||
$ '''flashrom -r kontron.dd''' | |||
You can list all components of the vendor BIOS via the [http://packages.debian.org/sid/amideco amideco] utility ('''apt-get install amideco''' on Debian systems): | |||
$ '''amideco kontron.dd -l''' | |||
-=AmiBIOSDeco, version 0.31e (Linux)=- | |||
FileLength : 100000 (1048576 bytes) | |||
FileName : kontron.dd | |||
AMIBIOS information: | |||
Version : 0800 | |||
Packed Data : 693A0 (431008 bytes) | |||
Start : DF83C | |||
Packed Offset : DF83C | |||
Offset : 0 | |||
Released : 07 June 2007 | |||
DirName : kontron.--- | |||
+------------------------------------------------------------------------------+ | |||
| Class.Instance (Name) Packed ---> Expanded Compression Offset | | |||
+------------------------------------------------------------------------------+ | |||
08 01 ( Interface) 00798 ( 01944) => 00798 ( 01944) DF83Ch | |||
04 02 ( Setup Client) 05B6E ( 23406) => 09437 ( 37943) + D9CB8h | |||
0C 03 ( ROM-ID) 00008 ( 00008) => 00008 ( 00008) D9C9Ch | |||
0E 04 ( OEM Logo) 0005D ( 00093) => 03E11 ( 15889) + D9C28h | |||
1A 05 ( Small Logo) 00532 ( 01330) => 026A2 ( 09890) + D96E0h | |||
18 06 (ADM (Display MGR)) 017FD ( 06141) => 04245 ( 16965) + D7ECCh | |||
19 07 ( ADM Font) 0059C ( 01436) => 01304 ( 04868) + D791Ch | |||
1B 08 ( SLAB) 2FF20 (196384) => 65299 (414361) + A79E8h | |||
21 09 ( Multilanguage) 032A6 ( 12966) => 0723E ( 29246) + A472Ch | |||
20 10 ( PCI AddOn ROM) 09145 ( 37189) => 0EC00 ( 60416) + 9B5D0h | |||
20 11 ( PCI AddOn ROM) 09681 ( 38529) => 10000 ( 65536) + 91F38h | |||
20 12 ( PCI AddOn ROM) 06008 ( 24584) => 0A800 ( 43008) + 8BF1Ch | |||
11 13 ( P6 Microcode) 00001 ( 00001) => 00005 ( 00005) + 7DEF4h | |||
90 14 ( User-Defined ;)) 021DE ( 08670) => 04200 ( 16896) + 7BD00h | |||
2A 15 ( User ROM) 005F8 ( 01528) => 00C7A ( 03194) + 7B6F4h | |||
2E 16 ( User ROM) 047B3 ( 18355) => 07800 ( 30720) + 76F2Ch | |||
06 17 ( DMI Data) 00258 ( 00600) => 01024 ( 04132) + 76CC0h | |||
80 18 ( User-Defined ;)) 00044 ( 00068) => 00044 ( 00068) 76C68h | |||
Total Sections : 18 | |||
The next step is to extract all components: | |||
$ '''amideco kontron.dd -x''' | |||
-=AmiBIOSDeco, version 0.31e (Linux)=- | |||
FileLength : 100000 (1048576 bytes) | |||
FileName : kontron.dd | |||
AMIBIOS information: | |||
Version : 0800 | |||
Packed Data : 693A0 (431008 bytes) | |||
Start : DF83C | |||
Packed Offset : DF83C | |||
Offset : 0 | |||
Released : 07 June 2007 | |||
DirName : kontron.--- | |||
+------------------------------------------------------------------------------+ | |||
| Class.Instance (Name) Packed ---> Expanded Compression Offset | | |||
+------------------------------------------------------------------------------+ | |||
Total Sections : 18 | |||
The file we need is the 64KB VGA blob named '''amipci_01.20''': | |||
$ '''ls''' | |||
amibody.04 amibody.0e amibody.1a amibody.2e '''amipci_01.20''' | |||
amibody.06 amibody.11 amibody.1b amibody.80 amipci_02.20 | |||
amibody.08 amibody.18 amibody.21 amibody.90 kontron.dd | |||
amibody.0c amibody.19 amibody.2a amipci_00.20 | |||
== Notes == | |||
* If you use [[FILO]], SATA will probably be '''hda''' and '''hdb''', while '''hdc''' is the master drive of the IDE controller. | |||
* If you experience kernel crashes (when building without onboard VGA support) try to blacklist the '''agpgart''' and '''intel_agp''' kernel modules. | |||
== Boot speed == | |||
This is a non-scientific, quick'n'dirty boot speed measurement using coreboot v2 (r4341) + FILO trunk (r98) and the vendor BIOS, where coreboot was configured with no serial output (loglevel 0). | |||
{| border="0" style="font-size: smaller" | |||
|- bgcolor="#6699ff" | |||
! align="left" | BIOS | |||
! align="left" | Power-up — GRUB | |||
! align="left" | Power-up — Linux login prompt | |||
|- bgcolor="#eeeeee" | |||
| Vendor BIOS (boot from SATA disk) | |||
| 13.1s | |||
| 38.8 | |||
|- bgcolor="#eeeeee" | |||
| coreboot (boot from SATA disk) | |||
| 7.3s | |||
| 37.9 | |||
|} | |||
Although coreboot is ca. 6 seconds faster at the GRUB prompt, the "Loading initrd" part of the Linux kernel booting seems to take longer than on the vendor BIOS. This should be investigated. | |||
{{PD-self}} | {{PD-self}} |
Latest revision as of 23:22, 18 January 2014
This page describes how to use coreboot on the Kontron 986LCD-M/mITX mainboard. It is maintained by Uwe Hermann.
The mainboard's manual (PDF) is available from the vendor website (together with various other documents).
A sample boot log from this board is available in the mailing list archive.
Status
Device/functionality | Status | Comments | ||||||
---|---|---|---|---|---|---|---|---|
CPU | ||||||||
CPU works | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Intel(R) Core(TM)2 CPU T5300 @ 1.73GHz (dual core) | ||||||
L1 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | CPU: L1 I cache: 32K, L1 D cache: 32K | ||||||
L2 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | L2 cache: 2048K | ||||||
L3 cache enabled | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Multiple CPU support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Multi-core support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Both cores show up in /proc/cpuinfo. | ||||||
Hardware virtualization | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | Hardware virtualization is not supported by this CPU (modprobe kvm-intel fails on coreboot + vendor BIOS). | ||||||
RAM | ||||||||
EDO | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
SDRAM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
SO-DIMM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
DDR | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
DDR2 | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine, but currently you need to populate both RAM slots with DIMMs of the same size (and reasonably similar timing probably: The controller has to operate in Dual Channel mode for now). | ||||||
DDR3 | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Dual channel support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine according to memtest86+ (Tested: 2x 1GB DIMMs, interleaved mode). | ||||||
ECC support | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board Hardware | ||||||||
On-board IDE 3.5" | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
On-board IDE 2.5" | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board SATA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Tested: SATA disk ((hd0,0) / hda1 in FILO, /dev/sda1 in Linux). | ||||||
On-board SCSI | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board USB | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Tested: USB thumb drive in all 4 backpanel USB ports, as well as on the USB pin headers on the board (USB6_7, see manual). | ||||||
On-board VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | You need to prepend the VGA blob from the proprietary BIOS for this to work. Console works, X11 works (use the intel X.org driver). | ||||||
On-board Ethernet | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | All three NICs show up correctly in ifconfig -a and work fine. | ||||||
On-board Audio | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine. | ||||||
On-board Modem | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board FireWire | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Seems to work fine (backpanel FireWire port), even with pci=noacpi. Tested using the eth1394 module for IPv4-over-FireWire. The FireWire pinheader IEEE1394_1 (see manual) is not yet well-tested. | ||||||
On-board Smartcard reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board CompactFlash | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | There's an onboard CompactFlash slot on the back-side of the board. FILO sees it as (hd2,0) / hdc1, Linux as /dev/sdb1. | ||||||
On-board PCMCIA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board Wifi | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board Bluetooth | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
On-board SD card reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Add-on slots/cards | ||||||||
ISA add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Audio/Modem-Riser (AMR/CNR) cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine, tested with a PCI network card. | ||||||
Mini-PCI add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
Mini-PCI-Express add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
PCI-X add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
AGP graphics cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x1 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine with PCIe x1 network card in x16 slot | ||||||
PCI Express x2 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x4 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x8 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
PCI Express x16 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine, tested with an Nvidia x16 graphics card | ||||||
PCI Express x32 add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
HTX add-on cards | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Legacy / Super I/O | ||||||||
Floppy | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Serial port 1 (COM1) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Serial port 2 (COM2) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | There are also COM3 and COM4 pin headers on this board. | ||||||
Parallel port | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Doing modprobe ppdev works, but no further test were performed. You probably need a special cable to connect to the onboard pin-header. | ||||||
PS/2 keyboard | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
PS/2 mouse | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Game port | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Infrared | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
PC speaker | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
DiskOnChip | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Input | ||||||||
Trackpoint | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Touchpad | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Fn Hotkeys | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Fingerprint Reader | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Laptop | ||||||||
Docking VGA | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Docking LAN | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Docking USB | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Docking Audio | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Docking Displayport | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Thinklight | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Webcam | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Miscellaneous | ||||||||
Sensors / fan control | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine using the w83627hf, coretemp (and also i2c-dev, i2c-i810, and eeprom) Linux kernel modules. | ||||||
Hardware watchdog | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Not yet actually tested, but it seems to be found: iTCO_wdt: Found a ICH7 or ICH7R TCO device (Version=2, TCOBASE=0x0560). | ||||||
SMBus | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | |||||||
CAN bus | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
CPU frequency scaling | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | WIP | With pci=noacpi the cpufreq-info utility doesn't output anything useful. On vendor BIOS you can use p4-clockmod (discouraged) or acpi-cpufreq (iff you enabled the respective option in the BIOS menu). On coreboot with ACPI, you can modprobe p4-clockmod successfully (but not acpi-cpufreq), but it's unclear if it really works correctly. | ||||||
Other powersaving features | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
ACPI | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | |||||||
Reboot | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Seems to work fine, even with pci=noacpi. | ||||||
Poweroff | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine. | ||||||
Suspend | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
Nonstandard LEDs | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
High precision event timers (HPET) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | The HPET is detected by Linux (hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0) and powertop output suggests that it works ok. | ||||||
Random number generator (RNG) | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Wake on modem ring | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | |||||||
Wake on LAN | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine. Tested using the wakeonlan utility. | ||||||
Wake on keyboard | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Untested | Works fine with vendor BIOS. | ||||||
Wake on mouse | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | N/A | Doesn't seem to be supported (by the hardware / vendor BIOS), tested with a PS/2 mouse, as well as with a USB mouse. | ||||||
TPM | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | Unknown | |||||||
Flashrom | OK=lime | TODO=red | No=red | WIP=orange | Untested=yellow | N/A=lightgray | yellow }}" | OK | Works fine, but you might need -m kontron:986lcd-m when booted with the vendor BIOS (not needed when booted with coreboot). |
Build tutorial (with onboard VGA)
$ svn co svn://coreboot.org/coreboot/trunk coreboot $ cd coreboot $ make menuconfig
In the payload menu change the settings like follows:
Add a payload (An ELF executable payload) ---> (payload.elf) Payload path and filename [*] Use LZMA compression for payloads
To add a VGABIOS image to the CBFS image go to the VGA BIOS submenu and change the settings to the following:
[*] Add a VGA BIOS image (amipci_01.20) VGA BIOS path and filename (8086,27a2) VGA device PCI IDs
Now copy your payload into the current directory and name it payload.elf. Then:
$ make
The resulting build/coreboot.rom is your coreboot ROM image you can flash using flashrom.
Getting the VGABIOS image
Then, you have to obtain the VGA blob from the vendor BIOS. Thus, get the original vendor BIOS image using flashrom:
$ flashrom -r kontron.dd
You can list all components of the vendor BIOS via the amideco utility (apt-get install amideco on Debian systems):
$ amideco kontron.dd -l -=AmiBIOSDeco, version 0.31e (Linux)=- FileLength : 100000 (1048576 bytes) FileName : kontron.dd AMIBIOS information: Version : 0800 Packed Data : 693A0 (431008 bytes) Start : DF83C Packed Offset : DF83C Offset : 0 Released : 07 June 2007 DirName : kontron.--- +------------------------------------------------------------------------------+ | Class.Instance (Name) Packed ---> Expanded Compression Offset | +------------------------------------------------------------------------------+ 08 01 ( Interface) 00798 ( 01944) => 00798 ( 01944) DF83Ch 04 02 ( Setup Client) 05B6E ( 23406) => 09437 ( 37943) + D9CB8h 0C 03 ( ROM-ID) 00008 ( 00008) => 00008 ( 00008) D9C9Ch 0E 04 ( OEM Logo) 0005D ( 00093) => 03E11 ( 15889) + D9C28h 1A 05 ( Small Logo) 00532 ( 01330) => 026A2 ( 09890) + D96E0h 18 06 (ADM (Display MGR)) 017FD ( 06141) => 04245 ( 16965) + D7ECCh 19 07 ( ADM Font) 0059C ( 01436) => 01304 ( 04868) + D791Ch 1B 08 ( SLAB) 2FF20 (196384) => 65299 (414361) + A79E8h 21 09 ( Multilanguage) 032A6 ( 12966) => 0723E ( 29246) + A472Ch 20 10 ( PCI AddOn ROM) 09145 ( 37189) => 0EC00 ( 60416) + 9B5D0h 20 11 ( PCI AddOn ROM) 09681 ( 38529) => 10000 ( 65536) + 91F38h 20 12 ( PCI AddOn ROM) 06008 ( 24584) => 0A800 ( 43008) + 8BF1Ch 11 13 ( P6 Microcode) 00001 ( 00001) => 00005 ( 00005) + 7DEF4h 90 14 ( User-Defined ;)) 021DE ( 08670) => 04200 ( 16896) + 7BD00h 2A 15 ( User ROM) 005F8 ( 01528) => 00C7A ( 03194) + 7B6F4h 2E 16 ( User ROM) 047B3 ( 18355) => 07800 ( 30720) + 76F2Ch 06 17 ( DMI Data) 00258 ( 00600) => 01024 ( 04132) + 76CC0h 80 18 ( User-Defined ;)) 00044 ( 00068) => 00044 ( 00068) 76C68h Total Sections : 18
The next step is to extract all components:
$ amideco kontron.dd -x -=AmiBIOSDeco, version 0.31e (Linux)=- FileLength : 100000 (1048576 bytes) FileName : kontron.dd AMIBIOS information: Version : 0800 Packed Data : 693A0 (431008 bytes) Start : DF83C Packed Offset : DF83C Offset : 0 Released : 07 June 2007 DirName : kontron.--- +------------------------------------------------------------------------------+ | Class.Instance (Name) Packed ---> Expanded Compression Offset | +------------------------------------------------------------------------------+ Total Sections : 18
The file we need is the 64KB VGA blob named amipci_01.20:
$ ls amibody.04 amibody.0e amibody.1a amibody.2e amipci_01.20 amibody.06 amibody.11 amibody.1b amibody.80 amipci_02.20 amibody.08 amibody.18 amibody.21 amibody.90 kontron.dd amibody.0c amibody.19 amibody.2a amipci_00.20
Notes
- If you use FILO, SATA will probably be hda and hdb, while hdc is the master drive of the IDE controller.
- If you experience kernel crashes (when building without onboard VGA support) try to blacklist the agpgart and intel_agp kernel modules.
Boot speed
This is a non-scientific, quick'n'dirty boot speed measurement using coreboot v2 (r4341) + FILO trunk (r98) and the vendor BIOS, where coreboot was configured with no serial output (loglevel 0).
BIOS | Power-up — GRUB | Power-up — Linux login prompt |
---|---|---|
Vendor BIOS (boot from SATA disk) | 13.1s | 38.8 |
coreboot (boot from SATA disk) | 7.3s | 37.9 |
Although coreboot is ca. 6 seconds faster at the GRUB prompt, the "Loading initrd" part of the Linux kernel booting seems to take longer than on the vendor BIOS. This should be investigated.
I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.
In case this is not legally possible: |