>> PCI memory space sits on the PCI bus, not on the PCI host bridge, >> so is not part of "reg" but is part of "ranges" here, since it is >> direct mapped into the host's address space. > That's right, but what about this example here (from a Pegasos II): > > /proc/device-tree/[EMAIL PROTECTED]:
> reg 80000000 40000000 > ranges 01000000 00000000 00000000 fe000000 00000000 00010000 > 02000000 00000000 80000000 80000000 00000000 40000000 That's just broken. > AFAIU the reg property overlaps the ranges property for the PCI memory > space from 0x80000000 to 0xC0000000 or the CPU address space at the > same location!? reg = < something for pci config space >, < fe000000 10000 > ranges = < 02000000 0 80000000 80000000 0 40000000 > >> PCI legacy I/O is not direct mapped: there is no legacy I/O on a >> PowerPC system bus. So, it can not be mentioned in the "ranges" >> property, but the PHB registers used to access it should be shown >> in the "reg" property. It could be a simple linear window (it >> sounds like it is here?), but it could for example also be implemented >> via an address/data register pair. > Yes, it is a simple linear address window. I'll remove its address > range > from the reg property. No, please remove it from the "ranges" property, instead. >> The order of the "reg" entries depends on the exact model of PCI >> bridge, so a device binding for it has to be written. > Only the Pegasos I and the AmigaOne use this PCI bridge. I guess it > should > be enough to check for the board type, but a compatible property > doesn't > hurt. Please always use "compatible" to probe any devices. Segher _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev