Re: temp. mem mappings

Stephen C. Tweedie
2001-06-05T18:41:36Z

Hi,

On Tue, Jun 05, 2001 at 01:25:27PM -0500, Timur Tabi wrote:
> ** Reply to message from cohutta <cohutta@MailAndNews.com> on Tue, 5 Jun 2001
> 13:54:15 -0400
>
> > what is the a preferred/correct method to map and unmap memory
> > temporarily?
>
> Allocate a virtual memory area using vmalloc and then save and modify the
> pmd/pgd/pte to point to the physical memory you want. To unmap, just undo the
> previous steps.

ioremap() is there for exactly that purpose. Playing with page
tables directly is most definitely frowned upon and is unlikely to
lead to portable code. ioremap() will take a physical address and
return the new virtual address, and ioremap_nocache() additionally
specifies the memory as being uncachable (via page table flags) so
that it can be used for PCI control register remapping.

Both functions are declared in <asm/io.h> and are available on both
2.2 and 2.4.

Cheers,
Stephen