On Tue, Sep 08, 2009 at 04:40:15PM +0200, Jan Kiszka wrote:
Gerd Hoffmann wrote:
> On 09/08/09 15:47, Jan Kiszka wrote:
>> - This is just an implementation detail: Do we really need to implement
>> booting from virtio and scsi via an extension rom? Isn't it possible
>> to merge the corresponding support into the main bios?
>
> Well. There are quite a few. bochs pcbios, seabios, coreboot ...
Ok, but that's only an argument to have extboot as a workaround for
bioses not yet supporting scsi and virtio natively, isn't it? I'm
thinking long-term here, not arguing against a extboot-based short-term
solution.
I doubt we'll see native scsi support as I believe each scsi
controller needs its own initialization. However, usb booting will
bring along with it mass storage class support.
I'm not familiar with virtio, however, I don't think it would be
difficult to add support to SeaBIOS. The disk access code in SeaBIOS
has an intermediate layer which makes it easier to add new backends.
For an example of this, see the ramdisk.c code:
http://git.linuxtogo.org/?p=kevin/seabios.git;a=blob;f=src/ramdisk.c;h=7a...
The above code adds support for a virtual floppy drive that is
populated with a floppy image stored in flash (useful with coreboot).
Basically, its possible to add driver support by adding a new drive
type (eg, DTYPE_RAMDISK) and implementing a new drive handler (eg,
process_ramdisk_op). The handler just has to implement read and write
capability - the bios call handlers, interfaces, and lba manipulation
are handled by SeaBIOS.
-Kevin