xserver-multidpi/hw/xfree86/x86emu
Bart Trojanowski 66f8001b61 X86EMU: handle CPUID instruction
After trying to switch from X to VT (or just quit) the video-amd driver
attempts to issue INT 10/0 to go to mode 3 (VGA).  The emulator, running
the BIOS code, would then spit out:

        c000:0282: A2 ILLEGAL EXTENDED X86 OPCODE!

The opcode was 0F A2, or CPUID; it was not implemented in the emulator.
This simple patch, against 1.3.0.0, handles the CPUID instruction in one of
two ways:
 1) if ran on __i386__ or __x86_64__ then it calls the CPUID instruction
     directly.
 2) if ran elsewhere it returns a canned 486dx4 set of values for
     function 1.

This fix allows the video-amd driver to switch back to console mode,
with the GSW BIOS.

Thanks to Symbio Technologies for funding my work, and ThinCan for
providing hardware :)

Signed-off-by: Bart Trojanowski <bart@jukie.net>
Acked-by: Eric Anholt <eric@anholt.net>
2008-02-08 10:48:40 -08:00
..
x86emu X86EMU: handle CPUID instruction 2008-02-08 10:48:40 -08:00
debug.c Make x86emu's I/O cycle tracing more useful. 2007-07-02 18:41:55 -04:00
decode.c Remove libcwrapper usage from xorg server modules. The libcwrapper is only 2006-02-10 22:00:30 +00:00
fpu.c Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
Makefile.am Remove smashing of CFLAGS from server build. 2006-09-18 12:11:18 -07:00
ops.c Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
ops2.c X86EMU: handle CPUID instruction 2008-02-08 10:48:40 -08:00
prim_ops.c X86EMU: handle CPUID instruction 2008-02-08 10:48:40 -08:00
sys.c Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
validate.c Initial revision 2003-11-14 16:48:57 +00:00
x86emu.h Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00