[coreboot] build failure: cannot move location counter backwards

Kevin O'Connor kevin at koconnor.net
Wed Jun 22 05:34:56 CEST 2011


On Mon, Jun 20, 2011 at 10:58:06PM -0700, Darren Hart wrote:
> On 06/20/2011 04:09 PM, Cristian Măgherușan-Stanciu wrote:
> > Hi,
> > 
> > I documented the latest developments (git and crossgcc) at
> > http://www.coreboot.org/Build_HOWTO. Please someone double-check.
> 
> My build succeeded following these instructions. As a first-time user,
> it would be helpful to have a quick-start guide which would be basically
> this wiki page + the steps necessary to do boot what I built in qemu.
> There are bits of that here:
> 
> http://www.coreboot.org/QEMU

Unfortunately, it looks like that page has old information on it.

> So perhaps a link, although it is a bit unclear to me which bits of what
> I built get used when I try to boot searbios in qemu. I don't seem to
> need corebios.rom at all, just the seabios bios.bin:
> 
> $ qemu -bios ./payloads/external/SeaBIOS/seabios/out/bios.bin -hda
> /dev/zero -serial stdio

SeaBIOS ( http://seabios.org/ ) is now the default BIOS for both QEMU
and KVM.  So, it is possible to run SeaBIOS without coreboot on these
emulators.  SeaBIOS, however, can't initialize a real machine - that's
what coreboot does.

> I get an option to press F12 in the console and select a boot device.
> Seems to work.
> 
> Am I using coreboot?

No.

>Is it integrated into the payload? Reading the
> QEMU_Build_tutorial, http://www.coreboot.org/QEMU_Build_Tutorial, led me
> to try:
> 
> $ qemu -bios build/coreboot.rom -hda /dev/zero -serial stdio
> 
> This resulted in something else entirely, the shell output terminating
> in the following:
> 
> coreboot memory table:
>  0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES
>  1. 0000000000001000-000000000009ffff: RAM
>  2. 00000000000c0000-0000000017feffff: RAM
>  3. 0000000017ff0000-0000000017ffffff: CONFIGURATION TABLES
>  4. 00000000ff800000-00000000ffffffff: RESERVED
> Wrote coreboot table at: 17ff1400 - 17ff15c4  checksum 6c1c
> coreboot table: 452 bytes.
> Multiboot Information structure has been written.
>  0. FREE SPACE 17ff3400 0000cc00
>  1. GDT        17ff0200 00000200
>  2. IRQ TABLE  17ff0400 00001000
>  3. COREBOOT   17ff1400 00002000
> Check CBFS header at fffcfc39
> magic is 386f92fa
> ERROR: No valid CBFS header found!
> CBFS:  Could not find file fallback/payload
> Boot failed.

You're now running coreboot, but coreboot was unable to find your
payload (eg, SeaBIOS).  Make sure when you run coreboot's "make
menuconfig", you set "Add a payload" to "SeaBIOS" - this is the
fastest way to get up and running.

> It isn't clear to me from the various pages I've read which of the above
> (if either) is the appropriate way to boot coreboot on qemu. Can anyone
> clear that up for me?

Hope this helps.

-Kevin




More information about the coreboot mailing list