[coreboot] First coreboot build for Tyan s2895 K8WE mobo with seabios payload, computer starts, but graphical ubuntu 64bits is crashing

Peter Stuge peter at stuge.se
Thu Sep 16 23:21:52 CEST 2010

Hi Frederic,

> this was my first try to build a coreboot bios ever, for my tyan
> s2895 mobo.

Cool! Remember that coreboot is not a BIOS, all the BIOS stuff is in
SeaBIOS, the coreboot payload. coreboot just does the early hardware
initialization. :)

> The computer is booting, and then crashing on Ubuntu logo (10.04
> 64bits version), so far so nice.

This is pretty good progress for the very first try! :)

> I downloaded latest available verszion of payload seabios, with
> command "git clone git://git.linuxtogo.org/home/kevin/seabios.git seabios".
> The make command has build the file => out/bios.bin.elf 1048716 bytes

This is wrong. The SeaBIOS payload file should only be a few hundred
kb. There is a problem with the build of SeaBIOS.

> Now i downloaded latest coreboot files, with a
> "svn co svn://coreboot.org/coreboot/trunk coreboot"
> But, on first "make", i run into troubles:
> Then i find out (in some mailing list archive) that there is a
> integrated compiling toolchain in the coreboot files, under
> "coreboot/util/crossgcc".

We have discovered that the toolchains shipped in many distributions
can not correctly build coreboot. So the script that makes a
"reference" toolchain was created.

> I burned the coreboot.rom into the RD1 chip, and restared the
> computer. I then saw briefly a message about pressing F12 for some
> configuration.

This message is from SeaBIOS. When you see the message, coreboot has
already finished.

> After some other quick messages, which i coulnd read, i saw Ubuntu
> starting and then crashing on the graphical logo.

Too bad. :( Hopefully we can identify the reason for this.

> Now i have a 3 questions for you:
> Is the coreboot.rom 32bits only and is there any advantage to build
> a 64bits version of the coreboot bios, as i intend to run a 64bits OS ?

coreboot.rom has both 16-bit and 32-bit code, but no 64-bit code. I
don't believe it is common (at least not yet) to boot directly in
64-bit mode. Rather all operating systems will handle the switch into
64-bit mode themselves.

> I build the seabios with Ubuntu gcc 64bits version, it is
> compatible, can i mix it, with the coreboot.rom build with i386-elf
> coreboot toolchain ?

In theory yes, you can build coreboot with one toolchain, and the
payload with another, that's not a problem, but it of course requires
that both toolchains actually build correct binaries. :) Because of
the abnormally large size of your SeaBIOS binary I think it is
possible that the Ubuntu toolchain also can not build SeaBIOS

I would definately try to build SeaBIOS with the i386-elf toolchain
and see if the results are any different.

> The build seabios (bios.bin.elf) is about 1MB in size, how it is
> possible to put it into a smaller 512KB chip inside coreboot.rom ?

bios.bin.elf should be much smaller.

> I didnt put VGA bios so far into the coreboot.rom.

Do you have a discrete graphics card in your system? I think you do,
otherwise how could the graphics card have been initialized?

> In my opinion, it would be a good idea to mention, somewhere in the
> build howto, that there is a integrated toolchain in coreboot, and
> may be also mention not to forget to delete the .xcompile file
> after the toolchain was built.

I think this is a good point.

> What are your advice for the next steps ?

Make sure that coreboot and SeaBIOS are built with maximum debug
loglevel and connect a second PC to the serial port of your Tyan
board. You will get quite verbose output, which you can study to
follow what coreboot and SeaBIOS are doing, and you can also send the
output to this mailing list to have more eyes try to find if there is
a problem somewhere.

> Put VGA bios into coreboot.rom, change Ubuntu default start to
> non-graphical one ?

I think the problems are way before Ubuntu, so the first step should
be coreboot+SeaBIOS debug output, but sure, setting also the Ubuntu
console to the serial port is a good idea; that way all messages from
starting the system can be collected in one place.


More information about the coreboot mailing list