Subject: Re: i915 AGP support
To: Patrick Welche <>
From: Eric Anholt <>
List: tech-x11
Date: 12/10/2005 05:05:02
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Thu, 2005-12-08 at 17:53 +0000, Patrick Welche wrote:
> On Thu, Dec 08, 2005 at 09:49:32AM +0000, Jonathan Perkin wrote:
> > Based on the recent FreeBSD patch and some older work by itohy@ I've
> > come up with
> >=20
> >
> >=20
> > Please can people test that this works for their 915-based cards.  I'd
> > also like to know that this doesn't break agp support for older i810
> > cards.
> It appears to work on a 82915GM!
> > (still doesn't fix X on my Lifebook S7020 but that's another story...)
> (.. and I still get f000:4a9a: 01 ILLEGAL EXTENDED X86 OPCODE! .. but
> again don't know if that is the actual cause of X not working as
> xsrc/18702 seems to suggest X should work anyway..)

I really should be sleeping, but I'll answer anyway.  At startup, X is
doing all this int10 card bootstrapping stuff through an emulator,
rather than using your x86's vm86 support to run the code, since getting
the vm86 stuff working is hard (or at least that's been my experience
when I tried).  Linux uses native vm86, and that's it currently.  The
fallback "x86emu" int10 emulator is rather limited -- basically it's the
set of opcodes that bios writers have used in the past.  So when someone
comes along with a new bios that decided to use some new feature, the
emulator whines loudly and probably behaves incorrectly.  Periodically
someone (usually the upstream -- was it Xig, can't remember) comes along
and fixes up the emulator for some new BIOSes, and issues go away for a

So, you could figure out if that opcode was legit and implement it in
the int10 code, you could write a native vm86-using int10 layer (fixing
it for x86 folks only, which I guess is OK if you're trying to fix
i915 :) ), or you could just wait for someone else to do it.

Eric Anholt                               

Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

Version: GnuPG v1.4.2 (FreeBSD)