IBM 440GP 36-bit addressing

Hollis Blanchard hollis at
Tue Aug 27 01:48:27 EST 2002

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.


** Sent via the linuxppc-embedded mail list. See

More information about the Linuxppc-embedded mailing list