Subject: Re: [PATCH] 8xx: map_page() skip pinned region and tlbie debugging aid

From: Marcelo Tosatti <[email-masked]>
Date: Wed, 29 Jun 2005 14:19:06 -0300

On Tue, Jun 28, 2005 at 09:53:26AM -0400, Dan Malek wrote:
> 
> On Jun 28, 2005, at 2:30 AM, Benjamin Herrenschmidt wrote:
> 
> >You should consider 8Mb pages the way we do BATs yes,
> 
> It's always been considered, just never fully implemented :-)
> 
> >Note that I'll soon send the patch I told you about that makes the
> >virtual address picked by io_block_mapping() dynamic, so we no longer
> >have to do crappy assumptions all over the place :)
> 
> Whatever, I'll never use it that way and no one else should either.

Why not? AFAICS the idea is to have the virtual mappings dynamic 
and not static - this is the _whole_ point of ioremap() instead
of io_block_mapping(), isnt it?

I fail to see any practical arguments against it...

> All of the io_block_mapping() calls should be used to set these 8M
> mapped IO spaces, everyone should use ioremap() to map them,
> and ioremap() has to be modified to find them for the 8xx.

What do you mean "everyone should use ioremap() to map them"? 

Once the physical->virtual mapping for device IO space are set
with io_block_mapping() (or with ioremap() for dynamic virtual 
addresses), why would you want to ioremap() the physical address
again??? 

PS: I've had a quick try at converting the IMMAP to use
ioremap instead (and have that dynamic virtual address stored
in a pointer), changed drivers to use that pointer instead of 
hardcoded "IMMAP". Didnt work immediately :) Its not that the 
idea?