On Wed, 1 Aug 2007, Sergei Shtylyov wrote: > > And regarding what you have written above and the size issue you mentioned > > in another e-mail (do you map the whole PCI config space linearly in the > > physical address space of the CPU or suchlike?) -- PCI > > No, I don't. But that was why the original code preferred the wired entry > approach over ioremap() -- not to map a whole range... So what is the issue with the size then? How big is the area? > > config space accesses are rare (by design rather than chance), so > > That depends on the drivers used (some IDE drivers access it really often). It is their problem I would say -- there is a design problem either in these drivers or the hardware handled. The PCI spec is very explicit that the config space is meant to be seldom accessed only. Device initialization/shutdown and bus error recovery are the normal places. > > performance is a non-issue and it should be absolutely fine for you to call > > ioremap() and iounmap() in code specific for your PCI host bridge for the > > required fragment upon every access. There is no need for a permanent > > That's an idea -- however, as the currecnt code uses a cached mapping, this > part would certainly need to be saved in the new implementaion -- if someone > will go and fix it eventually. :-) Well, cached mapping does not seem particularly wise with PCI configuration registers, but you have got the ioremap_cachable() call if you insist. ;-) > > Well, more about Linux perhaps than MIPS in general. :-) > > Let's say that was about Linux/MIPS. But the key word was "wasting". ;-) I reckon the key is how you look at it. ;-) Maciej