"Maciej W. Rozycki" wrote:
> Hmm, I believe there should be no such problem. For systems equipped
> with the PCI bus we may just assume the low 16MB of PCI memory address
> space is reserved for ISA memory addresses (it's hardwired for many
> platforms, so there should be no problem with it), i.e. avoid programming
> BARs to point to that space and make ioremap() (or __ioremap(), actually)
> act accordingly, i.e. assume a 1:1 mapping for addresses above 16MB and
> perform an ISA mapping for ones below 16MB.
I see. I missed that part where you have a pivoting point at 16MB.
That sounds like a working solution to me.
Overall, I still feel using isa_xxx() macros in the driver seems like a
cleaner solution. That essentially treats ISA memory space as a separate
space. The ioremap/readb/writeb approach tries to lump ISA memory and PCI
memory space together but in fact we still have treat them differently (based
on whether the address is greater than 16MB, which is a little hackish.)