[coreboot] option rom progress and some issues

Kevin O'Connor kevin at koconnor.net
Wed Aug 12 02:18:02 CEST 2009

On Wed, Aug 12, 2009 at 03:59:02AM +0800, Jason Wang wrote:
> Hi all
>     Since USB ROM has already added into the booting menu list(IPL table),
> and the UHCI stack can be run well in usbrom now, i have some issues to
> confirm, any advices are welcome.
> 1) <<Plug and Play BIOS Specification>>Page21, There is an r Return Status
> from Initialization Call of OPTION ROM. Which used to let the bios know the
> status. But it seems Seabios does not
>    check the return code. Is that OK?

SeaBIOS assumes the rom runs successfully - I think that is okay.  If
you wish to unload the optionrom, set its size to 0.

> 2) After Seabios make an far call into the BEV, the OPTION ROM should begin
> to load OS.if it failed, it can return back to BIOS. But it can not return
> back with my USB OPTION ROM, Is there any configuration
>    I should set?

You should not use BEV; you should use a BCV.

I don't know why you can't return - it should work.  Maybe the stack
or gdt/idt was changed?

> 3) In my eyes, OPTION ROM hook int13 after jump into BEV, not in the
> initialization.But after that how does it jump into the booting code which
> located in the USB disk?

As above, define a BCV and hook int13 from the BCV handler.

SeaBIOS will make int13 calls to load the OS and boot it.  As long as
your rom can handle the int13 calls, SeaBIOS will be able to boot an
OS from usb.

> BTW:
>  Kevin: I looked the code of Seabios ata.c to learn how seabios booting OS
> from ata disk. some question i have:
> 1) ATA used add_bcv_hd to add ata disk into IPL table. it's type is
> IPL_TYPE_HARDDISK(0x02). It's vector is the driver id. how does seabios know
> the bootstrap vector based the driver ID?

add_bcv_hd() adds the drive to the BCV table, not the IPL table.

SeaBIOS populates the BCV table with built-in harddrives and
optionroms with a BCV.

>    what does ata fill FDPT area for? Should my usbrom do the same?

It's some weird legacy thing.  Nothing modern will require it.  I
don't know what legacy things will break without it.

> For my usbrom, i should not use add_bcv to add option rom into IPL ? or just
> take the ata as example?

As above, you should use a BCV.

> -- 
> Jason Wang
> Peking University


More information about the coreboot mailing list