xserver-multidpi/hw/xfree86/x86emu/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
..
debug.h Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
decode.h Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
fpu_regs.h Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
fpu.h Initial revision 2003-11-14 16:48:57 +00:00
ops.h Initial revision 2003-11-14 16:48:57 +00:00
prim_asm.h Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
prim_ops.h X86EMU: handle CPUID instruction 2008-02-08 10:48:40 -08:00
prim_x86_gcc.h X86EMU: handle CPUID instruction 2008-02-08 10:48:40 -08:00
regs.h Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
types.h Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00
x86emui.h Updated x86emu and resynced with upsteam at Scitech. 2004-05-26 17:44:29 +00:00