Hi All,
I have an Intel/Truxton (Tolapai/EP80579) type platform that I am using coreboot and seabios on. Up to now I have been using a pre-compiled binary from Kevin's download site:
http://linuxtogo.org/~kevin/SeaBIOS/seabios-0.5.1.tar.gz
and that has been working fine. (The coreboot is modified to support some changes on this particular hardware platform).
Now the problem is that I want to generate seabios binaries from source. And I can't seem to be able to compile a working one.
My host build system is a Ubuntu 9.10 x86_64 install (using the most up to date packages). This a gcc-4.4.1 and binutils-2.20 setup.
If I get the source seabios-0.5.1 package from Kevin's download page and compile that I end up with a bios.bin.elf that is:
-rwxr-xr-x 1 gerg gerg 1048716 2010-02-17 15:11 bios.bin.elf
Hmm, rather large :-) The actual contents maybe ok:
out/bios.bin.elf: file format elf32-i386
Sections: Idx Name Size VMA LMA File off Algn 0 .text 00013000 000ed000 000ed000 000ed000 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE
The file offset is looking bad here.
If I instead use a binutils-2.18 "ld" that I have lying around (doing "make LD=i386-linux-ld") then I end up with a more reasonable sized bios.bin.elf of 82060 bytes. But this bios.bin.elf just hangs after being loaded by coreboot on my target.
I tried compiling this same seabios version (0.5.1) on an older Fedora Core 9 system (also an x86_64 install), and again that produced a non-working bios.bin.elf.
I also got the latest seabios git tree and tried that. I also couldn't get a working seabios binary using that either.
What versions of gcc/binutils do others use? Does anyone have any ideas where by building could be going wrong?
Regards Greg
------------------------------------------------------------------------ Greg Ungerer -- Principal Engineer EMAIL: gerg@snapgear.com SnapGear Group, McAfee PHONE: +61 7 3435 2888 8 Gardner Close FAX: +61 7 3217 5323 Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com
Greg Ungerer wrote:
My host build system is a Ubuntu 9.10 x86_64 install (using the most up to date packages). This a gcc-4.4.1 and binutils-2.20 setup.
coreboot has no end of problems with all distribution toolchains. It is recommended to use a vanilla toolchain with known-good component versions for building coreboot whenever coreboot is acting up - I think it might be a good idea to do so for SeaBIOS as well.
You could use the script coreboot/util/crossgcc/buildgcc to create a toolchain.
Kevin, is there a problem with using a non-linux toolchain, ie. one for i386-elf?
//Peter
On Wed, Feb 17, 2010 at 03:30:36PM +1000, Greg Ungerer wrote:
My host build system is a Ubuntu 9.10 x86_64 install (using the most up to date packages). This a gcc-4.4.1 and binutils-2.20 setup.
If I get the source seabios-0.5.1 package from Kevin's download page and compile that I end up with a bios.bin.elf that is:
-rwxr-xr-x 1 gerg gerg 1048716 2010-02-17 15:11 bios.bin.elf
This looks like a binutils quirk that others have run into - a work around was recently added to SeaBIOS git (after the 0.5.1 release).
If I instead use a binutils-2.18 "ld" that I have lying around (doing "make LD=i386-linux-ld") then I end up with a more reasonable sized bios.bin.elf of 82060 bytes. But this bios.bin.elf just hangs after being loaded by coreboot on my target.
That's odd. Did you follow the instructions at:
http://www.coreboot.org/SeaBIOS#SeaBIOS
In particular, make sure the proper changes are made to the src/config.h file.
-Kevin
Hi Kevin,
Kevin O'Connor wrote:
On Wed, Feb 17, 2010 at 03:30:36PM +1000, Greg Ungerer wrote:
My host build system is a Ubuntu 9.10 x86_64 install (using the most up to date packages). This a gcc-4.4.1 and binutils-2.20 setup.
If I get the source seabios-0.5.1 package from Kevin's download page and compile that I end up with a bios.bin.elf that is:
-rwxr-xr-x 1 gerg gerg 1048716 2010-02-17 15:11 bios.bin.elf
This looks like a binutils quirk that others have run into - a work around was recently added to SeaBIOS git (after the 0.5.1 release).
Just using an older ld was enough to fix. So it does look to be a binutils problem.
I tried the current git head, it still has the same problem though.
If I instead use a binutils-2.18 "ld" that I have lying around (doing "make LD=i386-linux-ld") then I end up with a more reasonable sized bios.bin.elf of 82060 bytes. But this bios.bin.elf just hangs after being loaded by coreboot on my target.
That's odd. Did you follow the instructions at:
http://www.coreboot.org/SeaBIOS#SeaBIOS
In particular, make sure the proper changes are made to the src/config.h file.
Ahh, thats what I was missing. From the README I thought it was enough to just "make" :-)
I can now generate working seabios.
Thanks Greg
------------------------------------------------------------------------ Greg Ungerer -- Principal Engineer EMAIL: gerg@snapgear.com SnapGear Group, McAfee PHONE: +61 7 3435 2888 8 Gardner Close FAX: +61 7 3217 5323 Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com