2009/4/2 Markus Törnqvist <mjt@nysv.org>
Hi

I dug out my abandoned Epia to see if I could do something with it,
and based the stuff on

http://www.coreboot.org/VIA_EPIA-MII

There were some things I found weird and I'm hoping someone could
shed light on them..

The web says:
"The configuration as set up by the buildtarget process will create a coreboot
file which is exactly 196608 bytes long, which is exactly 64K bytes short of
what needs to go into the 256K flash rom."

For me, that's not true.
root@coraline:/usr/src/coreboot-v2-4046/targets/via/epia-m/epia-m# ls -l
normal/coreboot.rom fallback/coreboot.rom
-rw-r--r-- 1 root src 131072 Apr  2 20:46 fallback/coreboot.rom
-rw-r--r-- 1 root src 131072 Apr  2 20:46 normal/coreboot.rom

Q1: Why is there a mismatch here?

Because with the open source xf86-unichrome and Luc Verhaegan's kernel driver, it's now possible for the kernel to initialize a framebuffer console and X video without the need for the VGA BIOS, so someone decided to change the default to build a 256k image and remove the commented out line with the 192k size. I believe the console driver is included with recent kernels, but I couldn't tell you the exact version. If you want to use a different driver, modify this line:

option ROM_SIZE=256*1024

to be

option ROM_SIZE=192*1024

Then, re-run buildtarget, make clean, and make. You should end up with a 128k fallback image and 64k normal image (yes, it's a nasty solution, part of the reason for v3), and a 192k image in build directory (the one you ran make from), that's the image you should probably use. If you want to continue using your current solution, you should probably use the fallback coreboot.rom, as there is code that will attempt to boot from the fallback image in the event of an error, and if there is no fallback image to boot from, nasty things could happen. If anything's not clear, let me know, I'm terrible at explaining things.

-Corey
 


Also, when encouraged to change the cat like
   cat fallback/coreboot.rom > coreboot.rom
to
   cat /video.bios.bin fallback/coreboot.rom >coreboot.rom

it wasn't accurate; the line is
   cat  normal/coreboot.rom  fallback/coreboot.rom > ./coreboot.rom

Let's remember those two are 262144 bytes, because now the wiki
tells us to add the 64k video.

It obviously doesn't fit in 256k, if we're there already, so what I
actually did was cat the video bios TWICE(!!) and then the normal
bios to make it 256k.

That seems kludgy but I got a FILO prompt :)

Q2: Ideas on why I had to do that?

Here's the Config.lb, where I just changed the FILO payload
to /filo.nohting.elf (to reflect the fact nothing seems to fit
in a rom this small ;)

Thanks!

# Sample config file for EPIA-M
# This will make a target directory of ./epia-m

target epia-m

mainboard via/epia-m

option  MAXIMUM_CONSOLE_LOGLEVEL=8
option  DEFAULT_CONSOLE_LOGLEVEL=8
option  CONFIG_CONSOLE_SERIAL8250=1


option HAVE_OPTION_TABLE=1
option CONFIG_ROM_PAYLOAD=1
option HAVE_FALLBACK_BOOT=1

###
### Compute the location and size of where this firmware image
### (coreboot plus bootloader) will live in the boot rom chip.
###
option FALLBACK_SIZE=131072

## Coreboot C code runs at this location in RAM
option _RAMBASE=0x00004000

#
###
### Compute the start location and size size of
### The coreboot bootloader.
###

#
# EPIA-M
#

romimage "fallback"
 option USE_FALLBACK_IMAGE=1
 option ROM_IMAGE_SIZE=0x10000
 option COREBOOT_EXTRA_VERSION=".0Fallback"
# payload /usr/share/etherboot/5.1.9pre2-lnxi-lb/tg3--ide_disk.zelf
# payload ../../../../tg3--ide_disk.zelf
# payload ../../../../../lnxieepro100.ebi
 payload /filo.nothing.elf
end

romimage "normal"
 option USE_FALLBACK_IMAGE=1
 option ROM_IMAGE_SIZE=0x10000
 option COREBOOT_EXTRA_VERSION=".0Fallback"
# payload /usr/share/etherboot/5.1.9pre2-lnxi-lb/tg3--ide_disk.zelf
# payload ../../../../tg3--ide_disk.zelf
# payload ../../../../../lnxieepro100.ebi
 payload /filo.nothing.elf
end

buildrom ./coreboot.rom ROM_SIZE "normal" "fallback"

--
mjt


--
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot