diff options
author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-12-13 12:56:33 +0100 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2007-12-13 13:15:16 +0100 |
commit | 4d7d6936eb29af7cca330937808312aa5f61454d (patch) | |
tree | b376f7dce492d171cf6740ac4ec36574e94eec1e /include/asm-ppc | |
parent | cdbaefb5f5f03e54455d0439dcf6dbd97ead1f9d (diff) | |
download | u-boot-imx-4d7d6936eb29af7cca330937808312aa5f61454d.zip u-boot-imx-4d7d6936eb29af7cca330937808312aa5f61454d.tar.gz u-boot-imx-4d7d6936eb29af7cca330937808312aa5f61454d.tar.bz2 |
Introduce map_physmem() and unmap_physmem()
map_physmem() returns a virtual address which can be used to access a
given physical address without involving the cache. unmap_physmem()
should be called when the virtual address returned by map_physmem() is
no longer needed.
This patch adds a stub implementation which simply returns the
physical address cast to a uchar * for all architectures except AVR32,
which converts the physical address to an uncached virtual mapping.
unmap_physmem() is a no-op on all architectures, but if any
architecture needs to do such mappings through the TLB, this is the
hook where those TLB entries can be invalidated.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Diffstat (limited to 'include/asm-ppc')
-rw-r--r-- | include/asm-ppc/io.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/asm-ppc/io.h b/include/asm-ppc/io.h index 86fe8dc..91c9c1e 100644 --- a/include/asm-ppc/io.h +++ b/include/asm-ppc/io.h @@ -238,4 +238,30 @@ extern inline void out_be32(volatile unsigned __iomem *addr, int val) __asm__ __volatile__("sync; stw%U0%X0 %1,%0" : "=m" (*addr) : "r" (val)); } +/* + * Given a physical address and a length, return a virtual address + * that can be used to access the memory range with the caching + * properties specified by "flags". + */ +typedef unsigned long phys_addr_t; + +#define MAP_NOCACHE (0) +#define MAP_WRCOMBINE (0) +#define MAP_WRBACK (0) +#define MAP_WRTHROUGH (0) + +static inline void * +map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags) +{ + return (void *)paddr; +} + +/* + * Take down a mapping set up by map_physmem(). + */ +static inline void unmap_physmem(void *vaddr, unsigned long flags) +{ + +} + #endif |