Hi Frederic,
STEMMELIN, FREDERIC (FREDERIC)** CTR ** wrote:
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 correctly.
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.
//Peter