Subject: Re: libpciaccess for Xorg
To: Blair Sadewitz <>
From: Eric Anholt <>
List: tech-x11
Date: 05/15/2007 10:53:27
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Mon, 2007-05-14 at 14:16 -0400, Blair Sadewitz wrote:=20
> Has anyone looked at this?  I think Xorg is going to switch to using
> this in the future (makes sense).

I've got a FreeBSD implementation that mostly works (works about on par
with the Linux implementation, that is).  The main issues I've
encountered are:
1) making sure that you can access the BIOS for a device, whether it's
through the 0xc0000 aperture or a PCI resource.  FreeBSD code only maps
0xc0000 currently, and we'd really rather have a general kernel
interface to it like Linux does (though it's hard to imagine a worse
design for that interface than the Linux one).
2) making sure that you can get PCI resources allocated by the kernel.
The old X code would activate resources on its own if it found that
necessary, which was rather error-prone, but worked often enough.  That
code hasn't been ported to libpciaccess, so we've regressed in terms of
functionality on the FreeBSD side since we have no userland interface to
do this.

Currently, pci-rework looks like it'll land around server 1.4 or 1.5,
probably in time for the 7.3 release a few months from now.  I've
stopped pushing back on it, since I've got basic functionality working
on my systems, and I was getting tired of fighting over it.

And, I just noticed that I apparently never pushed my last set of
FreeBSD changes for libpciaccess which did the BIOS reading, which are
on the dead hard drive.  I guess I get to re-write those.

I'm guessing that a NetBSD equivalent of the FreeBSD support could be
done relatively easily, but if you have or can get those bits of
userland interface, that would be a significant advantage.

Eric Anholt                                  

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

Version: GnuPG v1.4.7 (FreeBSD)