OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
CVS: cvs.openbsd.org: xenocara

From: Marc Balmer (mbalmercvs.openbsd.org)
Date: Tue Jun 10 2008 - 17:31:30 CDT


CVSROOT: /cvs
Module name: xenocara
Changes by: mbalmercvs.openbsd.org 2008/06/10 16:31:30

Modified files:
        xserver/hw/xfree86/x86emu: ops2.c prim_ops.c
        xserver/hw/xfree86/x86emu/x86emu: prim_ops.h
Added files:
        xserver/hw/xfree86/x86emu/x86emu: prim_x86_gcc.h

Log message:
Pull in a patch from X.Org-current to let X11 run on AMD Geode LX
CPUs in basic VESA mode:

X86EMU: handle CPUID instruction

Starting X on an AMD Geode LX system such as an Alix board with VGA
connector, the Xorg 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. With this patch it 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.

Tested with & ok matthieu