Hi Kevin,
On Wed, Aug 12, 2009 at 8:18 AM, Kevin O'Connor kevin@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.
- <<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.
- 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?
- 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:
- 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