[SeaBIOS] [PATCH] vgabios: Use EBDA (instead of PMM) for extra stack
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.
More information about the SeaBIOS