On Tue, 2009-05-19 at 22:51 -0700, David Miller wrote: > From: Benjamin Herrenschmidt <b...@kernel.crashing.org> > Date: Wed, 20 May 2009 13:01:30 +1000 > > > For example, some of the OF parsing bits may fail to convert memory > > addresses to IO addresses if the PCI host bridges have not been > > discovered yet, potentially causing issues with matching of resources > > between the early serial stuff and the generic serial driver (if you > > use an IO driven UART, the PCI 8250 driver may not properly figure out > > that what it's finding in its IO BARs is actually the same port as > > what it gets from the platform code as the later will end up with > > memory addresses rather than IO ones). That's one example. > > FWIW, I never run into this issue on sparc64 exactly because I > fully resolve all resources when I populate the OF device tree > in the kernel.
What do you mean by fully resolve ? IE. The issue above is specific to IO space, which you can resolve both as MMIO, or as "IO" which in linux means going through the special mapping for IO which allows the use of the inX/outX instructions... The later can only be done after we have established the special mapping in question for a given PCI bus IO space, at which point, we know what IO "base" corresponds to the IO space of that bridge. So in the meantime, all we have is an MMIO resource, which is "resolved" in the sense that it does contain all the right bits to get the serial ports (address translation etc...) but isn't an IORESOURCE_IO type resource and thus doesn't contain a magic token we can pass to inX/outX. One of the issues we may have here on powerpc is that our very early probe of serial ports (so we get some debug output early) may get to those resources while the serial driver later sees the actual IORESOURCE_IO resources coming from the PCI probe, and is unable to figure that they are the same things. Currently, we do a pass of "conversion" over those early resolved resources just after the PCI bridges have been discovered to check if they happen to land into the IO space of a bridge and then turn them into IORESOURCE_IO tokens. If we delay the probing of PCI bridges, things can get fishy there. Cheers, Ben. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev