Difference between revisions of "Board:kontron/986lcd-m"

From coreboot
Jump to: navigation, search
(Lots more stuff works fine now.)
(Poweroff works fine now. Wake-on-LAN works fine.)
Line 98: Line 98:
 
|Reboot_status = OK
 
|Reboot_status = OK
 
|Reboot_comments = Seems to work fine, even with '''pci=noacpi'''.
 
|Reboot_comments = Seems to work fine, even with '''pci=noacpi'''.
|Poweroff_status = WIP
+
|Poweroff_status = OK
|Poweroff_comments = Needs ACPI, thus won't work if you use '''pci=noacpi'''.
+
|Poweroff_comments = Works fine.
 
|LEDs_status = N/A
 
|LEDs_status = N/A
 
|HPET_status = OK
 
|HPET_status = OK
Line 105: Line 105:
 
|RNG_status = N/A
 
|RNG_status = N/A
 
|WakeOnModem_status = N/A
 
|WakeOnModem_status = N/A
|WakeOnLAN_status = Untested
+
|WakeOnLAN_status = OK
|WakeOnLAN_comments = The board supports WOL (tested with vendor BIOS using the '''wakeonlan''' utility).
+
|WakeOnLAN_comments = Works fine. Tested using the '''wakeonlan''' utility.
 
|WakeOnKeyboard_status = Untested
 
|WakeOnKeyboard_status = Untested
 
|WakeOnKeyboard_comments = Works fine with vendor BIOS.
 
|WakeOnKeyboard_comments = Works fine with vendor BIOS.

Revision as of 21:42, 26 March 2009

Top
Side
Backpanel
Board and power supply

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).

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.
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 Unknown
AGP graphics cards N/A
PCI Express x1 add-on cards N/A
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 WIP Doesn't seem to work (at least not with pci=noacpi). A tested PCIe VGA card doesn't appear in lspci,
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 Needs ACPI. 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).
Other powersaving features N/A
ACPI OK There is an ACPI implementation for this board which seems to work, but not much of it has been tested, yet.
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).

Build tutorial (without onboard VGA)

$ svn co svn://coreboot.org/repos/trunk/coreboot-v2
$ cd coreboot-v2/targets
$ ./buildtarget kontron/986lcd-m
$ cd kontron/986lcd-m/kontron_986lcd_m

Now copy your payload into the current directory and name it payload.elf. Then:

$ make -s

The resulting coreboot.rom is your coreboot ROM image you can flash using flashrom.

Build tutorial (with onboard VGA)

$ svn co svn://coreboot.org/repos/trunk/coreboot-v2
$ cd coreboot-v2/targets

In order to use on-board VGA you have to use the VGA blob from the vendor BIOS, and modify the coreboot config files a bit. Edit src/mainboard/kontron/986lcd-m/Config.lb in the section starting with chip drivers/pci/onboard. Depending on whether you use a 1 MB, 512 KB, or 256 KB ROM chip, you'll have to set the correct rom_address value:

chip drivers/pci/onboard
  device pci 02.0 on end # vga controller
  # register "rom_address" = "0xfffc0000" # 256 KB image
  # register "rom_address" = "0xfff80000" # 512 KB image
  register "rom_address" = "0xfff00000"   # 1 MB image
end

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

In order to use onboard VGA you further need to edit targets/kontron/986lcd-m/Config.lb. Comment out the line

option ROM_SIZE = 1024 * 1024

and enable the line

option ROM_SIZE = (1024 * 1024) - (64 * 1024)

instead (we're assuming a 1 MB ROM chip here, change that if you use another size). This will leave 64 KB room in the coreboot ROM image. We can now build coreboot as usual:

$ ./buildtarget kontron/986lcd-m
$ cd kontron/986lcd-m/kontron_986lcd_m

Now copy your payload into the current directory and name it payload.elf. Then:

$ make -s

Finally, prepend the 64 KB VGA blob to the coreboot image:

$ cat amipci_01.20 coreboot.rom > coreboot_final.rom

The resulting coreboot_final.rom is your coreboot ROM image you can flash using flashrom.

Notes

  • If you use FILO, SATA will probably be hda and hdb, while hdc is the master drive of the IDE controller.
  • Currently you have to use pci=noacpi on the kernel command line to make IDE and SATA work.
  • If you experience kernel crashes (when building without onboard VGA support) try to blacklist the agpgart and intel_agp kernel modules.
Public domain I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.