[SeaBIOS] Problems with Linux payload

Curt Brune curt at cumulusnetworks.com
Sat Aug 16 00:38:30 CEST 2014


Hello -

First time poster, so take it easy on me :)

This is a great project -- I was able to get a kvm+coreboot+SeaBIOS
environment going pretty easily.  I started with the master branch of
coreboot and went from there.

I am having a problem trying to load a Linux kernel+initramfs payload
from SeaBIOS.

I can successfully boot the same kernel+initramfs straight from
coreboot (without SeaBIOS) as a payload.  Also I can boot the same
kernel+initramfs from the hard disk using SeaBIOS when GRUB is
installed on the hard disk.  So I'm pretty sure my kernel+initramfs is
OK.

My rom looks like this:

  coreboot.rom: 16384 kB, bootblocksize 1416, romsize 16777216, offset 0x0
  alignment: 64 bytes
   
  Name                           Offset     Type         Size
  cmos_layout.bin                0x0        cmos_layout  1160
  fallback/romstage              0x4c0      stage        19569
  fallback/ramstage              0x5180     stage        55849
  config                         0x12c00    raw          3132
  fallback/payload               0x13880    payload      57928
  vgaroms/sgabios.bin            0x21b00    raw          4096
  etc/boot-menu-wait             0x22b40    raw          8
  etc/boot-menu-key              0x22b80    raw          8
  etc/boot-menu-message          0x22bc0    raw          34
  etc/screen-and-debug           0x22c40    raw          8
  img/LINUX                      0x22c80    payload      8474826
  (empty)                        0x837d80   null         8158360

When I break into SeaBIOS during the boot I get this menu:

  Select boot device:
   
  1. DVD/CD [ata1-0: QEMU DVD-ROM ATAPI-4 DVD/CD]
  2. Virtio disk PCI:0:4
  3. Legacy option rom
  4. iPXE (PCI 00:03.0)
  5. Payload [LINUX]

When I select "5" I get this:

  Searching bootorder for: HALT
  drive 0x000f4d50: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=33554432
  Running option rom at cc80:0003
  Booting from CBFS...
  Run img/LINUX
  Calling addr 0x00040000
  ...
  [System Reboots]

I turned on some debug in coreboot and SeaBIOS and compared the
successful boot (coreboot+Linux) to the unsuccessful boot
(coreboot+SeaBIOS+Linux).  I compared the segment offsets and sizes
between the two cases and they were the same.  Also the 0x00040000
entry point was the same.

I am mostly stuck now.  Is this even a supported boot option?  I'm new
to SeaBIOS, so any help is much appreciated.

Thanks again for a great project -- I had pretty smooth sailing up to
this point.

Cheers,
Curt



More information about the SeaBIOS mailing list