[SeaBIOS] [PATCH] fix two issues with virtio-blk
Kevin O'Connor
kevin at koconnor.net
Sat May 15 23:05:11 CEST 2010
On Sat, May 15, 2010 at 10:08:54PM +0200, Sebastian Herbszt wrote:
> Kevin O'Connor wrote:
> >On Sat, May 15, 2010 at 05:17:31PM +0200, Sebastian Herbszt wrote:
> >>Doing a read emulation
> >>in BIOS shouldn't be too bad, but a write emulation will need a "physical
> >>sector size" RMW buffer (no clue where the BIOS could steal those 4KB from).
> >SeaBIOS has a "malloc_low" function which obtains permanent memory in
> >the first 1Meg. Currently, it grabs memory at the end of 640K (it
> >moves the ebda down if needed). It's probably possible to use memory
> >in the c/d/e/f segments - though that's tricky because parts of that
> >area are likely to be read-only.
> >
> >Right now SeaBIOS allocates a 2K buffer to support cdrom emulation
> >(this is different from what bochs bios does). So, going to a 4K
> >buffer is probably reasonable.
> This explains why i see 2 KB less free memory with SeaBIOS.
> With current SeaBIOS i get 511 KB free memory running MS-DOS 6.22
> with CDROM support. Sure you can grab another 4 KB for a RMW buffer,
It's only 2KB more - the buffer could be shared.
> but sooner or later there won't be enough memory free to play your favorite
> game from the 90s. And i didn't even load an option ROM which also wants
> 1-2 KB EBDA or some useful TSR program.
>
> Why is a 4 KB physical sector size needed in a VM anyway?
It isn't - I was just describing where one could get the memory. I'm
not planning on implementing this.
There may come a point where drives require a bigger sector size.
(SeaBIOS can also run on real hardware.) In that case, it may be
necessary to add support - after all, one can't run old games if their
computer doesn't boot. However, I think we can cross that bridge when
we get to it.
-Kevin
More information about the SeaBIOS
mailing list