[coreboot] option rom progress and some issues

Jason Wang wangqingpei at gmail.com
Wed Aug 12 04:59:51 CEST 2009


Hi Kevin,


On Wed, Aug 12, 2009 at 8:18 AM, Kevin O'Connor <kevin at koconnor.net> wrote:

> 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 use a BCV now, sorry for messing this two types. Which i use is BCV.
I  tried to put only an "lretw" in BCV. but still failed.

>
> 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.
>
So, BCV handler is used to hook int13, anything else that BCV should do?

>
> 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
>
> -Kevin
>



-- 
Jason Wang
Peking University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20090812/0a26a70a/attachment.html>


More information about the coreboot mailing list