#ifndef __ASM_AVR32_CACHE_H #define __ASM_AVR32_CACHE_H #define L1_CACHE_SHIFT 5 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) /* * Memory returned by kmalloc() may be used for DMA, so we must make * sure that all such allocations are cache aligned. Otherwise, * unrelated code may cause parts of the buffer to be read into the * cache before the transfer is done, causing old data to be seen by * the CPU. */ #define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES #ifndef __ASSEMBLER__ struct cache_info { unsigned int ways; unsigned int sets; unsigned int linesz; }; #endif /* __ASSEMBLER */ /* Cache operation constants */ #define ICACHE_FLUSH 0x00 #define ICACHE_INVALIDATE 0x01 #define ICACHE_LOCK 0x02 #define ICACHE_UNLOCK 0x03 #define ICACHE_PREFETCH 0x04 #define DCACHE_FLUSH 0x08 #define DCACHE_LOCK 0x09 #define DCACHE_UNLOCK 0x0a #define DCACHE_INVALIDATE 0x0b #define DCACHE_CLEAN 0x0c #define DCACHE_CLEAN_INVAL 0x0d #endif /* __ASM_AVR32_CACHE_H */