freebsd-dev/sys/dev/pci
John Baldwin c825d4dc50 Properly handle I/O windows in bridges with the ISA enable bit set. These
beasts still exist unfortunately.  More details can be found in other
references, but the short version is that bridges with this bit set ignore
I/O port ranges that alias to valid ISA I/O port ranges.  In the driver
this requires not allocating these alias regions from the parent device
(so they are free to be acquired by ISA devices), and ensuring no child
devices use resources from these alias regions.
- Change the pcib_window structure to allow for an array of backing
  resources rather than a single resource and update the existing code
  to cope with this.  Some of the coping requires using the saved
  base and limit values in pcib_window instead of using rman operations
  on the backing resource.
- Add special handling for allocating and adjusting the I/O port window
  of an ISA-enabled bridge to only allocate the non-alias ranges and
  add those to the associated resource manager.
- Reject I/O port allocations for a fixed request that conflicts with an
  ISA alias range.
- Remove the "no prefected decode" verbose printf during boot.  The absence
  of a "prefetched decode" line is sufficient.
- Replace the "subtractively decoded bridge" verbose printf with a single
  printf that lists all the "special" decoding modes of a bridge: ISA,
  subtractive, and VGA.
- Add a custom bus_release_resource() method to the PCI bus driver so that
  it can properly free resources for I/O windows of PCI-PCI bridges.
  (These resources are not stored in the bridge device's resource list.)

PR:		misc/179033
MFC after:	2 weeks
2013-07-18 15:17:11 +00:00
..
eisa_pci.c
fixup_pci.c
hostb_pci.c Expand the set of APIs available for locating PCI capabilities: 2012-03-03 18:08:57 +00:00
ignore_pci.c
isa_pci.c Implement BUS_ADD_CHILD() for the isab(4) driver. It already calls 2011-12-14 12:34:02 +00:00
pci_if.m Expand the set of APIs available for locating PCI capabilities: 2012-03-03 18:08:57 +00:00
pci_pci.c Properly handle I/O windows in bridges with the ISA enable bit set. These 2013-07-18 15:17:11 +00:00
pci_private.h Properly handle I/O windows in bridges with the ISA enable bit set. These 2013-07-18 15:17:11 +00:00
pci_subr.c
pci_user.c Always initialize pattern_buf pointers to NULL, otherwise AMD64 machine 2012-12-26 13:07:17 +00:00
pci.c Properly handle I/O windows in bridges with the ISA enable bit set. These 2013-07-18 15:17:11 +00:00
pcib_if.m
pcib_private.h Properly handle I/O windows in bridges with the ISA enable bit set. These 2013-07-18 15:17:11 +00:00
pcireg.h Add new capability types encodings from HyperTransport I/O Link 2013-05-17 14:04:31 +00:00
pcivar.h - As it turns out, not only MSI-X is broken for devices passed through by 2013-07-09 23:12:26 +00:00
vga_pci.c Usnure that PCI bus BIS_GET_DMA_TAG() method sees the actual PCI 2013-04-14 14:02:34 +00:00