freebsd-dev/sys/dev/pci
John Baldwin 15d107308f 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
2015-11-23 23:48:07 +00:00
..
eisa_pci.c Revert previous change. The magical constants can't be changed 2015-06-06 17:04:36 +00:00
fixup_pci.c Use device_printf(). 2013-08-11 06:57:57 +00:00
hostb_pci.c Revert previous change. The magical constants can't be changed 2015-06-06 17:04:36 +00:00
ignore_pci.c Revert previous change. The magical constants can't be changed 2015-06-06 17:04:36 +00:00
isa_pci.c Revert previous change. The magical constants can't be changed 2015-06-06 17:04:36 +00:00
pci_host_generic.c Rename ECAM PCI driver file. 2015-06-12 13:54:25 +00:00
pci_if.m Create a separate kobj interface for leaf-driver PCI IOV methods. 2015-05-28 22:01:50 +00:00
pci_iov_if.m Create a separate kobj interface for leaf-driver PCI IOV methods. 2015-05-28 22:01:50 +00:00
pci_iov_private.h Add infrastructure for exporting config schema from PF drivers 2015-03-01 00:40:42 +00:00
pci_iov_schema.c Validate the schema that the PF driver passed to us 2015-03-01 00:59:28 +00:00
pci_iov.c Create a separate kobj interface for leaf-driver PCI IOV methods. 2015-05-28 22:01:50 +00:00
pci_iov.h Create a separate kobj interface for leaf-driver PCI IOV methods. 2015-05-28 22:01:50 +00:00
pci_pci.c drop a bunch of white space at end of lines and end of files... 2015-10-18 08:13:51 +00:00
pci_private.h Add infrastructure for exporting config schema from PF drivers 2015-03-01 00:40:42 +00:00
pci_subr.c Reassign copyright statements on several files from Advanced 2015-04-23 14:22:20 +00:00
pci_user.c Emulate the Device ID and Vendor ID registers for VFs 2015-03-01 00:40:19 +00:00
pci.c Add a new helper function for PCI devices to locate the upstream 2015-11-05 21:27:25 +00:00
pcib_if.m drop a bunch of white space at end of lines and end of files... 2015-10-18 08:13:51 +00:00
pcib_private.h Add a PCI bridge for the Freescale PCIe Root Complex 2015-05-11 20:58:05 +00:00
pcib_support.c Add some pcib methods to get ARI-related information 2015-03-01 00:39:40 +00:00
pcireg.h Add a new -B flag for use with list mode (-l) that lists details about 2015-11-23 23:48:07 +00:00
pcivar.h Add a new -B flag for use with list mode (-l) that lists details about 2015-11-23 23:48:07 +00:00
schema_private.h Validate the schema that the PF driver passed to us 2015-03-01 00:59:28 +00:00
vga_pci.c Disable VGA PCI interrupts until a chipset driver is loaded for VGA 2015-06-05 06:23:03 +00:00