cvs commit: src/sys/sparc64/pci psycho.c psychovar.h
scottl at samsco.org
Tue Nov 22 22:39:17 GMT 2005
Marius Strobl wrote:
> marius 2005-11-22 22:32:50 UTC
> FreeBSD src repository
> Modified files:
> sys/sparc64/pci psycho.c psychovar.h
> - Add a workaround (change the interrupt map mask to compare the full
> INO) for incorrect interrupt map entries on E250 machines. These
> incorrect entries caused the INO of the on-board HME to be also
> assigned to the second on-board NS16550 and to the on-board printer
> port controller. Further down the road caused hme(4) to fail to attach
> to the on-board HME in FreeBSD 5 and 6 as INTR_FAST and non-INTR_FAST
> handlers can't share the same IRQ there (it's unknown what whould
> happen in -CURRENT now that INTR_FAST and non-INTR_FAST handlers can
> share an IRQ but I'd expect funny problems with uart(4)).
> - Make sure there are exactly 4 PCI ranges instead of just checking
> that the bridge has a 'ranges' property in the OFW device tree at all.
> Besides the fact that currently the 64bit memory range isn't used by
> this driver it we can't really work with less than 4 ranges and don't
> have memory for more than 4 bus handles for the ranges in the softc.
> - Remove sc_range and sc_nrange from softc; for the bridges supported
> by this driver we no longer need to know the ranges besides the bus
> handles obtained from them once this driver is attached. That way we
> also can free the memory allocated for sc_range during attach again.
> - Remove sc_dvmabase from the softc and pass it to psycho_iommu_init()
> via an additional argument as we no longer need to know the DVMA base
> in this driver once the IOMMU is initialized.
> - Remove sc_dmatag from the softc, there isn't much sense in keeping
> the nexus dma tag around locally.
It's been a TODO item forever to merge busdma tag management with
newbus, so that a driver can request the tag of its newbus's parent
instead of just guessing what constraints the parent allows.
More information about the cvs-src