X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fasm-avr32%2Fio.h;h=06e52b137f51e476bfb13ec104a89a88e1a7070b;hb=f12e4549b6fb01cd2654348af95a3c7a6ac161e7;hp=3c0d569233e2693933ea667075a362fe7535e3ec;hpb=3a197b2fe49d6fa03978e60af2394efe9c70b527;p=u-boot diff --git a/include/asm-avr32/io.h b/include/asm-avr32/io.h index 3c0d569233..06e52b137f 100644 --- a/include/asm-avr32/io.h +++ b/include/asm-avr32/io.h @@ -22,6 +22,8 @@ #ifndef __ASM_AVR32_IO_H #define __ASM_AVR32_IO_H +#include + #ifdef __KERNEL__ /* @@ -93,4 +95,34 @@ static inline void sync(void) { } +/* + * 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". + * + * This implementation works for memory below 512MiB (flash, etc.) as + * well as above 3.5GiB (internal peripherals.) + */ +#define MAP_NOCACHE (0) +#define MAP_WRCOMBINE (1 << 7) +#define MAP_WRBACK (MAP_WRCOMBINE | (1 << 9)) +#define MAP_WRTHROUGH (MAP_WRBACK | (1 << 0)) + +static inline void * +map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags) +{ + if (flags == MAP_WRBACK) + return (void *)P1SEGADDR(paddr); + else + return (void *)P2SEGADDR(paddr); +} + +/* + * Take down a mapping set up by map_physmem(). + */ +static inline void unmap_physmem(void *vaddr, unsigned long len) +{ + +} + #endif /* __ASM_AVR32_IO_H */