]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add a new -B flag for use with list mode (-l) that lists details about
authorjhb <jhb@FreeBSD.org>
Mon, 23 Nov 2015 23:48:07 +0000 (23:48 +0000)
committerjhb <jhb@FreeBSD.org>
Mon, 23 Nov 2015 23:48:07 +0000 (23:48 +0000)
commit464700478881c433707f3256886a2ddbeae0de2c
tree52dd986a8771c61b7bdc3535634aebbbb2500ad0
parentee4901db9d33f42b9abf5c0e70d03d0ee42f49c2
Add a new -B flag for use with list mode (-l) that lists details about
bridges.  Currently this includes information about what resources a
bridge decodes on the upstream side for use by downstream devices including
bus numbers, I/O port resources, and memory resources.  Windows and bus
ranges are enumerated for both PCI-PCI bridges and PCI-CardBus bridges.

To simplify the implementation, all enumeration is done by reading the
appropriate config space registers directly rather than querying the
bridge driver in the kernel via new ioctls.  This does result in a few
limitations.

First, an unimplemented window in a PCI-PCI bridge cannot be accurately
detected as accurate detection requires writing to the window base
register.  That is not safe for pciconf(8).  Instead, this assumes that
any window where both the base and limit read as all zeroes is
unimplemented.

Second, the PCI-PCI bridge driver in a tree has a few quirks for
PCI-PCI bridges that use subtractive decoding but do not indicate that
via the progif config register.  The list of quirks is duplicated in
pciconf's source.

Reviewed by: imp
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D4171
sys/dev/pci/pcireg.h
sys/dev/pci/pcivar.h
usr.sbin/pciconf/pciconf.8
usr.sbin/pciconf/pciconf.c