freebsd-nq/sys/sparc64/pci
Marius Strobl bda8e754a1 Make sparc64 compatible with NEW_PCIB and enable it:
- Implement bus_adjust_resource() methods as far as necessary and in non-PCI
  bridge drivers as far as feasible without rototilling them.
- As NEW_PCIB does a layering violation by activating resources at layers
  above pci(4) without previously bubbling up their allocation there, move
  the assignment of bus tags and handles from the bus_alloc_resource() to
  the bus_activate_resource() methods like at least the other NEW_PCIB
  enabled architectures do. This is somewhat unfortunate as previously
  sparc64 (ab)used resource activation to indicate whether SYS_RES_MEMORY
  resources should be mapped into KVA, which is only necessary if their
  going to be accessed via the pointer returned from rman_get_virtual() but
  not for bus_space(9) as the later always uses physical access on sparc64.
  Besides wasting KVA if we always map in SYS_RES_MEMORY resources, a driver
  also may deliberately not map them in if the firmware already has done so,
  possibly in a special way. So in order to still allow a driver to decide
  whether a SYS_RES_MEMORY resource should be mapped into KVA we let it
  indicate that by calling bus_space_map(9) with BUS_SPACE_MAP_LINEAR as
  actually documented in the bus_space(9) page. This is implemented by
  allocating a separate bus tag per SYS_RES_MEMORY resource and passing the
  resource via the previously unused bus tag cookie so we later on can call
  rman_set_virtual() in sparc64_bus_mem_map(). As a side effect this now
  also allows to actually indicate that a SYS_RES_MEMORY resource should be
  mapped in as cacheable and/or read-only via BUS_SPACE_MAP_CACHEABLE and
  BUS_SPACE_MAP_READONLY respectively.
- Do some minor cleanup like taking advantage of rman_init_from_resource(),
  factor out the common part of bus tag allocation into a newly added
  sparc64_alloc_bus_tag(), hook up some missing newbus methods and replace
  some homegrown versions with the generic counterparts etc.
- While at it, let apb_attach() (which can't use the generic NEW_PCIB code
  as APB bridges just don't have the base and limit registers implemented)
  regarding the config space registers cached in pcib_softc and the SYSCTL
  reporting nodes set up.
2011-10-02 23:22:38 +00:00
..
apb.c Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
fire.c Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
firereg.h Add a driver for the `Fire' JBus to PCIe bridges found in at least 2009-12-27 16:55:44 +00:00
firevar.h Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
ofw_pci_if.m - Merge the *_SET macros from fire(4) which generally print out the 2011-03-26 16:49:12 +00:00
ofw_pci.h - Merge the *_SET macros from fire(4) which generally print out the 2011-03-26 16:49:12 +00:00
ofw_pcib_subr.c Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
ofw_pcib_subr.h On sparc64 machines with multiple host-PCI-bridges these bridges 2008-04-17 12:38:00 +00:00
ofw_pcib.c Reimplement how PCI-PCI bridges manage their I/O windows. Previously the 2011-05-03 17:37:24 +00:00
ofw_pcibus.c - Merge the *_SET macros from fire(4) which generally print out the 2011-03-26 16:49:12 +00:00
psycho.c Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
psychoreg.h Sync licenses and the corresponding RCS IDs with NetBSD, mainly switching 2011-03-12 14:33:32 +00:00
psychovar.h Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
sbbc.c Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
schizo.c Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00
schizoreg.h - Merge the *_SET macros from fire(4) which generally print out the 2011-03-26 16:49:12 +00:00
schizovar.h Make sparc64 compatible with NEW_PCIB and enable it: 2011-10-02 23:22:38 +00:00