[SeaBIOS] [PATCH] vgabios: Don't use "smsww" instruction - it confuses x86emu
pbonzini at redhat.com
Thu Apr 9 18:39:55 CEST 2015
On 09/04/2015 18:37, Kevin O'Connor wrote:
> Commit 251e2638 introduced the "smsww" instruction to the vgabios.
> Unfortunately, it appears at least some versions of x86emu crash when
> executing that instruction (eg, FC13 installer crashes). That
> instruction wasn't required to work around the problem fixed in
> 251e2638, so just avoid it.
> Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
> The fix for the "skifree bug" tickled yet another old OS problem - old
> versions of x86emu don't like smsww. :-( The smsww wasn't strickly
> necessary, so this patch just stops using it.
> vgasrc/vgabios.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/vgasrc/vgabios.c b/vgasrc/vgabios.c
> index 7c1f0b8..f07e85b 100644
> --- a/vgasrc/vgabios.c
> +++ b/vgasrc/vgabios.c
> @@ -304,7 +304,7 @@ vga_set_mode(int mode, int flags)
> SET_BDA(video_mode, 0xff);
> SET_BDA_EXT(vbe_mode, mode | (flags & MF_VBEFLAGS));
> SET_BDA_EXT(vgamode_offset, (u32)vmode_g);
> - if (CONFIG_VGA_ALLOCATE_EXTRA_STACK && !(getcr0_vm86() & CR0_PE))
> + if (CONFIG_VGA_ALLOCATE_EXTRA_STACK)
> // Disable extra stack if it appears a modern OS is in use.
> // This works around bugs in some versions of Windows (Vista
> // and possibly later) when the stack is in the e-segment.
Is it worth keeping the definition in src/x86.h?
More information about the SeaBIOS