Difference between revisions of "Kontron 986LCD-M mITX"
(Add initial status table.) |
(→Build tutorial (without onboard VGA)) |
||
| (33 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_multiple_status = | + | |CPU_L3_status = N/A |
| − | | | + | |CPU_multiple_status = N/A |
| − | | | + | |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 20: | 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 41: | 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 |
| − | |Powersave_status = | + | |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. |
| − | |ACPI_status = | + | |Powersave_status = N/A |
| − | |Reboot_status = | + | |ACPI_status = OK |
| − | |Poweroff_status = | + | |ACPI_comments = |
| − | |LEDs_status = | + | |Reboot_status = OK |
| − | |HPET_status = | + | |Reboot_comments = Seems to work fine, even with '''pci=noacpi'''. |
| − | |RNG_status = | + | |Poweroff_status = OK |
| − | |WakeOnModem_status = | + | |Poweroff_comments = Works fine. |
| − | |WakeOnLAN_status = | + | |LEDs_status = N/A |
| − | |WakeOnKeyboard_status = | + | |HPET_status = OK |
| − | |WakeOnMouse_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. |
| + | |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/ | + | $ '''svn co svn://coreboot.org/coreboot/trunk coreboot''' |
| − | $ cd 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 08:21, 5 May 2010
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.
Contents |
[edit] Status
| Device/functionality | Status | Comments | ||||||
|---|---|---|---|---|---|---|---|---|
| CPU | ||||||||
| CPU works | OK | Intel(R) Core(TM)2 CPU T5300 @ 1.73GHz (dual core) | ||||||
| L1 cache enabled | OK | CPU: L1 I cache: 32K, L1 D cache: 32K | ||||||
| L2 cache enabled | OK | L2 cache: 2048K | ||||||
| L3 cache enabled | N/A | |||||||
| Multiple CPU support | N/A | |||||||
| Multi-core support | OK | Both cores show up in /proc/cpuinfo. | ||||||
| Hardware virtualization | Untested | Hardware virtualization is not supported by this CPU (modprobe kvm-intel fails on coreboot + vendor BIOS). | ||||||
| RAM | ||||||||
| EDO | N/A | |||||||
| SDRAM | N/A | |||||||
| SO-DIMM | N/A | |||||||
| DDR | N/A | |||||||
| DDR2 | 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 | N/A | |||||||
| Dual channel support | OK | Works fine according to memtest86+ (Tested: 2x 1GB DIMMs, interleaved mode). | ||||||
| ECC support | N/A | |||||||
| On-board Hardware | ||||||||
| On-board IDE 3.5" | OK | |||||||
| On-board IDE 2.5" | N/A | |||||||
| On-board SATA | OK | Tested: SATA disk ((hd0,0) / hda1 in FILO, /dev/sda1 in Linux). | ||||||
| On-board SCSI | N/A | |||||||
| On-board USB | 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 | 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 | All three NICs show up correctly in ifconfig -a and work fine. | ||||||
| On-board audio | OK | Works fine. | ||||||
| On-board modem | N/A | |||||||
| On-board FireWire | 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 | N/A | |||||||
| On-board CompactFlash | 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 | N/A | |||||||
| Add-on slots/cards | ||||||||
| ISA add-on cards | N/A | |||||||
| Audio/Modem-Riser (AMR/CNR) cards | N/A | |||||||
| PCI add-on cards | OK | Works fine, tested with a PCI network card. | ||||||
| Mini-PCI add-on cards | Untested | |||||||
| PCI-X add-on cards | N/A | |||||||
| AGP graphics cards | N/A | |||||||
| PCI Express x1 add-on cards | OK | Works fine with PCIe x1 network card in x16 slot | ||||||
| PCI Express x2 add-on cards | N/A | |||||||
| PCI Express x4 add-on cards | N/A | |||||||
| PCI Express x8 add-on cards | N/A | |||||||
| PCI Express x16 add-on cards | OK | Works fine, tested with an Nvidia x16 graphics card | ||||||
| PCI Express x32 add-on cards | N/A | |||||||
| HTX add-on cards | N/A | |||||||
| Legacy / Super I/O | ||||||||
| Floppy | N/A | |||||||
| Serial port 1 (COM1) | OK | |||||||
| Serial port 2 (COM2) | Untested | There are also COM3 and COM4 pin headers on this board. | ||||||
| Parallel port | 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 | |||||||
| PS/2 mouse | OK | |||||||
| Game port | N/A | |||||||
| Infrared | Untested | |||||||
| PC speaker | OK | |||||||
| DiskOnChip | N/A | |||||||
| Miscellaneous | ||||||||
| Sensors / fan control | OK | Works fine using the w83627hf, coretemp (and also i2c-dev, i2c-i810, and eeprom) Linux kernel modules. | ||||||
| Hardware watchdog | 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 | Untested | |||||||
| CAN bus | N/A | |||||||
| CPU frequency scaling | 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 | N/A | |||||||
| ACPI | OK | |||||||
| Reboot | OK | Seems to work fine, even with pci=noacpi. | ||||||
| Poweroff | OK | Works fine. | ||||||
| Suspend | Unknown | |||||||
| Nonstandard LEDs | N/A | |||||||
| High precision event timers (HPET) | 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) | N/A | |||||||
| Wake on modem ring | N/A | |||||||
| Wake on LAN | OK | Works fine. Tested using the wakeonlan utility. | ||||||
| Wake on keyboard | Untested | Works fine with vendor BIOS. | ||||||
| Wake on mouse | 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. | ||||||
| Flashrom | OK | Works fine, but you might need -m kontron:986lcd-m when booted with the vendor BIOS (not needed when booted with coreboot). | ||||||
[edit] 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.
[edit] 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
[edit] 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.
[edit] 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: |