Difference between revisions of "Board:via/epia-m850"

From coreboot
Jump to: navigation, search
(Created page with "Placeholder for EPIA-M850 board. Content coming soon. Please yell at mrnuke on #coreboot if nothing changes soon. He's from Texas, he won't mind.")
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
[[File:Epia_m850_top.jpg|thumb|right|VIA EPIA-M850]]
 +
 
Placeholder for EPIA-M850 board. Content coming soon. Please yell at mrnuke on #coreboot if nothing changes soon. He's from Texas, he won't mind.
 
Placeholder for EPIA-M850 board. Content coming soon. Please yell at mrnuke on #coreboot if nothing changes soon. He's from Texas, he won't mind.
 +
 +
The EPIA-M850 is a mini-ITX board from VIA. It comes with either a 1.3GHz or 1.6GHz via Nano CPU, and a VX900 chipset.
 +
 +
This board is not fully supported. It has a number of issues one should be prepared to deal with.
 +
# On DIMMs with two memory ranks, odd ranks are disabled by default. The memory initialization does not deal with odd ranks very well, and leaves them disabled.
 +
# Even with a VGA BIOS, you will get a garbled display. GRUB2 and linux are able to get a working text console though, but only if a VGA BIOS has been run.
 +
# IRQs only work in PIC mode (no APIC and no ACPI). Do not expect to boot anything other than linux, and be prepared to boot with "noapic acpi=off 3": that is disable APICs _and_ do not use ACPI _and_ start in runlevel 3.
 +
# Cards plugged in PCI-Express slots may not work.
 +
# Linux sometimes likes to just hang. It stops responding: no serial output, no panic message, no response to keyboard presses.
 +
 +
If you still want to try coreboot on this board, have a way to recover by flashing externally in case things go south. There is an SPI header that can be used to reprogram the ROM if the board is powered off. flashrom does NOT work when running coreboot; this is NOT a good recovery plan.
 +
 +
== Status ==
 +
{{Status|
 +
 +
|CPU_status = OK
 +
|CPU_comments =
 +
|CPU_L1_status = OK
 +
|CPU_L1_comments = Always on
 +
|CPU_L2_status = OK
 +
|CPU_L2_comments = Always on
 +
|CPU_L3_status = N/A
 +
|CPU_multiple_status = N/A
 +
|CPU_multicore_status = N/A
 +
|CPU_virt_status = ?
 +
 +
|RAM_EDO_status = N/A
 +
|RAM_SDRAM_status = N/A
 +
|RAM_SODIMM_status = N/A
 +
|RAM_DDR_status = N/A
 +
|RAM_DDR2_status = N/A
 +
|RAM_DDR3_status = Even ranks only
 +
|RAM_dualchannel_status = N/A
 +
|RAM_ecc_status = N/A
 +
 +
|IDE_status = N/A
 +
|IDE_comments = N/A
 +
|IDE_CF_status = N/A
 +
|IDE_CF_comments = N/A
 +
|IDE_25_status = N/A
 +
|CDROM_DVD_status = OK
 +
|CDROM_DVD_comments =
 +
|SATA_status = OK
 +
|SATA_comments =
 +
|USB_status = OK
 +
|USB_comments =
 +
|Onboard_VGA_status = Not OK
 +
|Onboard_VGA_comments =
 +
|Onboard_ethernet_status = OK
 +
|Onboard_audio_status = ?
 +
|Onboard_modem_status = N/A
 +
|Onboard_firewire_status = N/A
 +
|Smartcard_status = N/A
 +
|Onboard_CF_status = N/A
 +
|Onboard_PCMCIA_status = N/A
 +
 +
|ISA_cards_status = N/A
 +
|AMR_cards_status = N/A
 +
|AGP_cards_status = N/A
 +
|PCI_cards_status =  N/A
 +
|PCI_cards_comments =
 +
|PCIE_x1_status = ?
 +
|PCIE_x1_comments =
 +
|PCIE_x2_status = ?
 +
|PCIE_x4_status = ?
 +
|PCIE_x8_status = N/A
 +
|PCIE_x16_status = N/A
 +
|PCIE_x16_comments =
 +
|PCIE_x32_status = N/A
 +
|HTX_status = N/A
 +
 +
|Floppy_status = N/A
 +
|Floppy_comments =
 +
|COM1_status = OK
 +
|COM2_status = Not tested
 +
|PP_status = N/A
 +
|PP_comments =
 +
|PS2_keyboard_status = OK
 +
|PS2_mouse_status = Not tested
 +
|Game_port_status = N/A
 +
|Game_port_comments =
 +
|IR_status = N/A
 +
|Speaker_status = Not tested
 +
|DiskOnChip_status = N/A
 +
 +
|Sensors_status = Not tested
 +
|Sensors_comments =
 +
|Watchdog_status = Not tested
 +
|Watchdog_comments =
 +
|CAN_bus_status = N/A
 +
|CPUfreq_status = Not tested
 +
|CPUfreq_comments =
 +
|Powersave_status = N/A
 +
|ACPI_status = Zero
 +
|ACPI_comments =
 +
|Reboot_status = Not tested
 +
|Poweroff_status = Not tested
 +
|LEDs_status = OK
 +
|LEDs_comments =
 +
|HPET_status = Not tested
 +
|HPET_comments =
 +
|RNG_status = N/A
 +
|WakeOnModem_status = Untested
 +
|WakeOnLAN_status = Untested
 +
|WakeOnKeyboard_status = Untested
 +
|WakeOnMouse_status = Untested
 +
|Flashrom_status = No
 +
|Flashrom_comments = Only works with vendor BIOS
 +
 +
}}
 +
 +
== Getting ready for coreboot ==
 +
 +
===== Do not expect a graphics console to work =====
 +
 +
===== Prepare an external programmer =====
 +
 +
The EPIA-M850 has an SPI ROM. The ROM can be programmed externally via the SPI header. (TODO: Add picture and pinout of header). While the board is powered off, a programmer is generally capable of supplying enough power. An FT4232H module has been tested to work.
 +
 +
Make sure the programmer can read the chip. If it can't read it, it won't be able to write it in case recovery is needed.
 +
 +
===== Extract the VGA BIOS =====
 +
 +
Use bios_extract to to get the VGA BIOS from the vendor's BIOS. Put it in an easy-to-find place. Let's call it path/to/vgabios.bin.
 +
 +
===== Configure coreboot =====
 +
 +
Run either
 +
 +
$ make menuconfig
 +
 +
or
 +
 +
$ make xconfig
 +
 +
* Mainboard -> Select VIA->EPIA-M850
 +
* VGA BIOS -> Select "Add a VGA BIOS image" + "VGA BIOS path and filename:" path/to/vgabios.bin
 +
* Console -> Make sure serial console is on and turned all the way up to SPEW (in case things go south)
 +
* System tables -> Make sure at least a PIRQ table is generated. Generating other tables does not hurt us, so they can remain enabled.
 +
* Debugging -> Output verbose RAM init debug messages.
 +
* For the first try, it is higly recommended to use SeaBIOS as a payload.
 +
* Save and exit
 +
 +
===== Configure linux =====
 +
 +
For the time being, append the following options to the boot parameters: "acpi=off noapic 3" to the linux that will be booting this board after coreboot finishes.
 +
If you forget to do this, you will also be able to change them at the GRUB2 prompt, assuming you are using GRUB2.
 +
 +
===== Prepare a serial console =====
 +
 +
The board has a serial port in the back. How convenient! Use it.
 +
 +
===== Build and flash coreboot =====
 +
 +
===== Start monitoring the serial console and power on the board =====
 +
 +
If you encounter any errors, or even if you succeed and are happy, let us know.
 +
== Photos ==
 +
<gallery>
 +
File:Epia_m850_top.jpg|<small> Board, top </small>
 +
File:Epia_m850_bottom.jpg|<small> Board, bottom </small>
 +
File:Epia_m850_spi_header.jpg|<small> SPI header </small>
 +
File:Epia_m850_com24.jpg|<small> Headers for three additional serial ports </small>
 +
</gallery>

Revision as of 17:07, 12 June 2013

VIA EPIA-M850

Placeholder for EPIA-M850 board. Content coming soon. Please yell at mrnuke on #coreboot if nothing changes soon. He's from Texas, he won't mind.

The EPIA-M850 is a mini-ITX board from VIA. It comes with either a 1.3GHz or 1.6GHz via Nano CPU, and a VX900 chipset.

This board is not fully supported. It has a number of issues one should be prepared to deal with.

  1. On DIMMs with two memory ranks, odd ranks are disabled by default. The memory initialization does not deal with odd ranks very well, and leaves them disabled.
  2. Even with a VGA BIOS, you will get a garbled display. GRUB2 and linux are able to get a working text console though, but only if a VGA BIOS has been run.
  3. IRQs only work in PIC mode (no APIC and no ACPI). Do not expect to boot anything other than linux, and be prepared to boot with "noapic acpi=off 3": that is disable APICs _and_ do not use ACPI _and_ start in runlevel 3.
  4. Cards plugged in PCI-Express slots may not work.
  5. Linux sometimes likes to just hang. It stops responding: no serial output, no panic message, no response to keyboard presses.

If you still want to try coreboot on this board, have a way to recover by flashing externally in case things go south. There is an SPI header that can be used to reprogram the ROM if the board is powered off. flashrom does NOT work when running coreboot; this is NOT a good recovery plan.

Status

Device/functionality Status Comments
CPU
CPU works OK
L1 cache enabled OK Always on
L2 cache enabled OK Always on
L3 cache enabled N/A
Multiple CPU support N/A
Multi-core support N/A
Hardware virtualization  ?
RAM
EDO N/A
SDRAM N/A
SO-DIMM N/A
DDR N/A
DDR2 N/A
DDR3 Even ranks only
Dual channel support N/A
ECC support N/A
On-board Hardware
On-board IDE 3.5" N/A N/A
On-board IDE 2.5" N/A
On-board SATA OK
On-board SCSI Unknown
On-board USB OK
On-board VGA Not OK
On-board ethernet OK
On-board audio  ?
On-board modem N/A
On-board FireWire N/A
On-board smartcard reader N/A
On-board CompactFlash N/A
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 N/A
Mini-PCI add-on cards Unknown
PCI-X add-on cards Unknown
AGP graphics cards N/A
PCI Express x1 add-on cards  ?
PCI Express x2 add-on cards  ?
PCI Express x4 add-on cards  ?
PCI Express x8 add-on cards N/A
PCI Express x16 add-on cards N/A
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) Not tested
Parallel port N/A
PS/2 keyboard OK
PS/2 mouse Not tested
Game port N/A
Infrared N/A
PC speaker Not tested
DiskOnChip N/A
Miscellaneous
Sensors / fan control Not tested
Hardware watchdog Not tested
SMBus Unknown
CAN bus N/A
CPU frequency scaling Not tested
Other powersaving features N/A
ACPI Zero
Reboot Not tested
Poweroff Not tested
Suspend Unknown
Nonstandard LEDs OK
High precision event timers (HPET) Not tested
Random number generator (RNG) N/A
Wake on modem ring Untested
Wake on LAN Untested
Wake on keyboard Untested
Wake on mouse Untested
Flashrom No Only works with vendor BIOS

Getting ready for coreboot

Do not expect a graphics console to work
Prepare an external programmer

The EPIA-M850 has an SPI ROM. The ROM can be programmed externally via the SPI header. (TODO: Add picture and pinout of header). While the board is powered off, a programmer is generally capable of supplying enough power. An FT4232H module has been tested to work.

Make sure the programmer can read the chip. If it can't read it, it won't be able to write it in case recovery is needed.

Extract the VGA BIOS

Use bios_extract to to get the VGA BIOS from the vendor's BIOS. Put it in an easy-to-find place. Let's call it path/to/vgabios.bin.

Configure coreboot

Run either

$ make menuconfig

or

$ make xconfig
  • Mainboard -> Select VIA->EPIA-M850
  • VGA BIOS -> Select "Add a VGA BIOS image" + "VGA BIOS path and filename:" path/to/vgabios.bin
  • Console -> Make sure serial console is on and turned all the way up to SPEW (in case things go south)
  • System tables -> Make sure at least a PIRQ table is generated. Generating other tables does not hurt us, so they can remain enabled.
  • Debugging -> Output verbose RAM init debug messages.
  • For the first try, it is higly recommended to use SeaBIOS as a payload.
  • Save and exit
Configure linux

For the time being, append the following options to the boot parameters: "acpi=off noapic 3" to the linux that will be booting this board after coreboot finishes. If you forget to do this, you will also be able to change them at the GRUB2 prompt, assuming you are using GRUB2.

Prepare a serial console

The board has a serial port in the back. How convenient! Use it.

Build and flash coreboot
Start monitoring the serial console and power on the board

If you encounter any errors, or even if you succeed and are happy, let us know.

Photos