svn commit: r188018 - in head: sys/dev/pci usr.sbin/pciconf
nwhitehorn at freebsd.org
Wed Feb 25 16:34:49 PST 2009
Robert Noland wrote:
> On Wed, 2009-02-25 at 12:51 -0500, John Baldwin wrote:
>> On Wednesday 25 February 2009 12:27:23 pm Nathan Whitehorn wrote:
>>> John Baldwin wrote:
>>>> Author: jhb
>>>> Date: Mon Feb 2 19:54:16 2009
>>>> New Revision: 188018
>>>> URL: http://svn.freebsd.org/changeset/base/188018
>>>> - Add a new ioctl to /dev/pci to fetch details on an individual BAR of a
>>>> device. The details include the current value of the BAR (including all
>>>> the flag bits and the current base address), its length, and whether or not
>>>> it is enabled. Since this operation is not invasive, non-root users are
>>>> allowed to use it (unlike manual config register access which requires
>>>> root). The intention is that userland apps (such as Xorg) will use this
>>>> interface rather than dangerously frobbing the BARs from userland to
>>>> obtain this information.
>>>> - Add a new sub-mode to the 'list' mode of pciconf. The -b flag when used
>>>> with -l will now list all the active BARs for each device.
>>> Do you happen to have any patches for libpciaccess to use this?
>>> Libpciaccess (and so the latest Xorg server) hoses my PowerPC machine
>>> when trying to list BARs, but pciconf -b works correctly. There are
>>> probably endianness problems in the libpciaccess code, and it would be
>>> nice to just replace that mess with this interface.
>> No, I don't have any patches. rnoland@ might. This interface was explicitly
>> designed to replace mess in libpciaccess. :)
> I still need to work on getting this into libpciaccess. It's
> complicated by the fact that we still need to keep the existing code in
> place and only use the new ioctl where it exists...
> I'll try and get a patch together soon.
I have a patch at http://people.freebsd.org/~nwhitehorn/freebsd_pci.c.patch
This is tested on PowerPC and amd64 running -CURRENT, and is in addition
to the patch currently applied by ports. It *should* gracefully use the
old pathway if the new ioctl isn't available. And now I have working X
More information about the svn-src-head