[SeaBIOS] [PATCH] vgabios: Use EBDA (instead of PMM) for extra stack

Kevin O'Connor kevin at koconnor.net
Sun Feb 1 00:59:53 CET 2015


On Mon, Jan 19, 2015 at 01:12:24PM -0500, Kevin O'Connor wrote:
> Instead of allocating the SeaVGABIOS extra stack via a PCIv3 style PMM
> call, use the EBDA to store the stack.  The stack is placed at the end
> of the first 1KiB of the EBDA.  Normally this EBDA space is reserved
> for the main BIOS, but SeaBIOS doesn't use the space.
> 
> This works around an issue with 16bit code running on Windows Vista
> (and likely later versions of Windows).  The Windows 16bit emulator
> can not handle a stack in the e-segment.  Using the EBDA, and thus
> relocating the stack to the 9-segment, works around the issue.

I ran some tests as part of committing this change and found that this
patch regresses an old Digital Research "Concurrent DOS" image I was
sent some time back.  :-(

I do think that 16bit support on recent Windows is a higher priority
than "Concurrent DOS", but I am leery of making a change like this
just before we tag the next release.

Richard - it sounds like you have a short term solution in place, so
I'm inclined to make the next SeaBIOS release without this change.
The 16bit support in Windows will, of course, need to be fixed.  Maybe
a better solution can be found for the following release though.

Thoughts?
-Kevin



More information about the SeaBIOS mailing list