On Sat, 2002-08-24 at 02:05, Vishwanath wrote: > > By going through the code, I understood that ioremap64() is used for mapping > the 36-bit real address onto 32-bit effective address space. How this > mapping information is conveyed to user applications ?
I don't understand the question. Do you mean "how does userspace know what the kernel has ioremapped"? I don't think it does. Do you mean "how can userspace map in a 36-bit real address"? The usual (32-bit) way is to mmap(/dev/mem). I don't know if that will work with 36-bit addresses. > If I am writing assembly instructions to access 440GP registers, do I have > to pass 36-bit real address or 32-bit effective address ? Do you mean a memory-mapped register, i.e. an on-chip peripheral like the UART? If so, that's what we've been talking about. You must map the 36-bit real address into your 32-bit effective address space, then access the effective address. > Physical address map of 440GP provides information only about Real > addresses. How can I convert these real addresses onto effective addresses > ? Do I have to write a TLB entry regarding my addresses ? Exactly, that's what I mean by "mapping". Of course, some TLB entries may already have been set up for you by the kernel or firmware. Whatever the case, you need to make sure there is a TLB entry in place. -Hollis ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/