[SeaBIOS] Running out of space in e/f-segments

Kevin O'Connor kevin at koconnor.net
Sun Aug 22 18:08:27 CEST 2010


On Sun, Aug 22, 2010 at 02:25:44PM +0300, Avi Kivity wrote:
>  On 08/22/2010 02:15 PM, Gleb Natapov wrote:
> >>
> >>4 - Have the entry points switch immediately to 32-bit mode and call
> >>32-bit unpaged code in 4G-2M+.  Everything, for example the INT 13
> >>code, would run in 32-bit mode from high memory.
> >>
> >IIRC this was discussed already. Some applications call BIOS from vm16
> >mode so switch to 32-bin is impossible.
> 
> Ugh.  We could use the old 286 trick and reset the CPU to escape to
> real mode, but this isn't a viable solution (for example, how would
> we get back?)

It may not even be possible to reset the cpu as that may be blocked by
the OS when the bios is in vm86 mode.

One could try invoking an SMI to get into 32bit mode, but that also
has difficulties (eg, the OS could block that too, paging would have
to be emulated, it could be a security problem).

Even with all its warts I think .code16gcc is the best route.

-Kevin



More information about the SeaBIOS mailing list