On Wed, 1 Aug 2007, Sergei Shtylyov wrote: > > > Of course it will. It shall work with whatever physical address space is > > > supported by your MMU. As long as the MMU is handled correctly that is, > > > but I guess I may have omitted this clarification as obvious. > > > Even on a CPU with 36-bit physical address? ;-) > > WTF... I know I've typed "32-bit CPU"! :-/ It does not matter. The physical address of an I/O resource can be treated as a cookie that is converted, typically though an MMU, to another cookie that can be used with {read,write}{b,w,l}(). Of course you may have troubles ioremap()ping say 4GB of I/O space on a processor with a 32-bit virtual address space, but that is a corner case and typically your I/O space will be sparsely occupied. On a MIPS32 processor you have 512MB of KSEG0/1 unmapped virtual address space available for I/O devices located within the first 512MB of the physical address space plus 1GB of KSEG2 mapped virtual address space available for I/O devices located anywhere in the physical address space. That gives you from 1GB to 1.5GB of virtual address space for I/O which is enough for all the usual cases. Maciej