cache.h 969 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * (C) Copyright 2009
  3. * Marvell Semiconductor <www.marvell.com>
  4. * Written-by: Prafulla Wadaskar <prafulla@marvell.com>
  5. *
  6. * SPDX-License-Identifier: GPL-2.0+
  7. */
  8. #ifndef _ASM_CACHE_H
  9. #define _ASM_CACHE_H
  10. #include <asm/system.h>
  11. /*
  12. * Invalidate L2 Cache using co-proc instruction
  13. */
  14. static inline void invalidate_l2_cache(void)
  15. {
  16. unsigned int val=0;
  17. asm volatile("mcr p15, 1, %0, c15, c11, 0 @ invl l2 cache"
  18. : : "r" (val) : "cc");
  19. isb();
  20. }
  21. void l2_cache_enable(void);
  22. void l2_cache_disable(void);
  23. void set_section_dcache(int section, enum dcache_option option);
  24. void dram_bank_mmu_setup(int bank);
  25. /*
  26. * The current upper bound for ARM L1 data cache line sizes is 64 bytes. We
  27. * use that value for aligning DMA buffers unless the board config has specified
  28. * an alternate cache line size.
  29. */
  30. #ifdef CONFIG_SYS_CACHELINE_SIZE
  31. #define ARCH_DMA_MINALIGN CONFIG_SYS_CACHELINE_SIZE
  32. #else
  33. #define ARCH_DMA_MINALIGN 64
  34. #endif
  35. #endif /* _ASM_CACHE_H */