linux/arch/avr32/include/asm/cache.h
<<
>>
Prefs
   1#ifndef __ASM_AVR32_CACHE_H
   2#define __ASM_AVR32_CACHE_H
   3
   4#define L1_CACHE_SHIFT 5
   5#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
   6
   7/*
   8 * Memory returned by kmalloc() may be used for DMA, so we must make
   9 * sure that all such allocations are cache aligned. Otherwise,
  10 * unrelated code may cause parts of the buffer to be read into the
  11 * cache before the transfer is done, causing old data to be seen by
  12 * the CPU.
  13 */
  14#define ARCH_DMA_MINALIGN       L1_CACHE_BYTES
  15
  16#ifndef __ASSEMBLER__
  17struct cache_info {
  18        unsigned int ways;
  19        unsigned int sets;
  20        unsigned int linesz;
  21};
  22#endif /* __ASSEMBLER */
  23
  24/* Cache operation constants */
  25#define ICACHE_FLUSH            0x00
  26#define ICACHE_INVALIDATE       0x01
  27#define ICACHE_LOCK             0x02
  28#define ICACHE_UNLOCK           0x03
  29#define ICACHE_PREFETCH         0x04
  30
  31#define DCACHE_FLUSH            0x08
  32#define DCACHE_LOCK             0x09
  33#define DCACHE_UNLOCK           0x0a
  34#define DCACHE_INVALIDATE       0x0b
  35#define DCACHE_CLEAN            0x0c
  36#define DCACHE_CLEAN_INVAL      0x0d
  37
  38#endif /* __ASM_AVR32_CACHE_H */
  39