[PATCH 1/2] ppc64: Block config accesses during BIST #3
Brian King
brking at us.ibm.com
Sun Nov 21 10:16:49 EST 2004
Thanks for taking a look at this. I'm currently looking at handling this
in the generic pci layer instead. I recently submitted a patch to
linux-kernel to just this.
Thanks,
-Brian
Milton Miller wrote:
> Hi Brian.
>
> Sorry it took so long to look at this, but I was totally burried 2 weeks
> ago and am just catching up with the fun stuff.
>
> A few comments, mostly 1/2.
>
> 0) line numbers are off after Anton's clean up pci controller allocation :)
> 1) I don't see any reason for adding exports pcibios_*config* routines
> 2) pci_ops should go in pci-bridge, its private to the arch. Maybe call
> this block_ops ?
> 3) in pci_bus_to_host don't worry about searching for the hose, Ben and
> I agree the pci code will always have bus->sysdata when calling
> config routines. (pci_bus sysdata is copied form parent, and to pci_dev)
> 4) define a HAVE_PCI_CONFIG_BLOCK or something for the drivers to key on
> 5) Other places we return 1's we are careful to return the right number
> of them (ie FF, FFFF, or FFFFFFFF depending on size). (ok _PCI_NOP
> doesn't even set the return).
>
> And last but not least, how it is broken:
>
> 6) There is a hose per phb not per bus. You are not including the bus
> number in your block table. With a EADS bridge, you are blocking the
> other slots on the same phb.
>
> The real problem with number 6 is that (as mentioned in 5) the bus->sysdata
> is not always correct. We currently use bus->sysdata 2 or 3 places in
> arch code, and then later explicitly copy the sysdata down from the phb
> (which I think is redundant with 2.6 pci code). Actually we never use
> bus-sysdata except for host bridges (bus->self == NULL) but it is still
> copied to the pci devs on hotplug etc so it has to be compatable with
> dev->sysdata aka a OF device node.
>
> The cleanest is to add this to struct pci_bus but we could also use a word
> in struct device_node (call to_OF_node on bus->self, sysdata if NULL) if
> needed. We could also search a list of (bus, mask) pairs or something, but
> we don't use many of the 256 possible buses on each PHB.
>
> milton
>
--
Brian King
eServer Storage I/O
IBM Linux Technology Center
More information about the Linuxppc64-dev
mailing list