45#define CACHE_L1_ICACHE_SIZE 8 * 1024
51#define CACHE_L1_ICACHE_ASSOC 1
57#define CACHE_L1_ICACHE_LINESIZE 32
63#define CACHE_L1_DCACHE_SIZE 16 * 1024
69#define CACHE_L1_DCACHE_ASSOC 1
75#define CACHE_L1_DCACHE_LINESIZE 32
81#define CACHE_L2_CACHE_SIZE 0
87#define CACHE_L2_CACHE_ASSOC 0
93#define CACHE_L2_CACHE_LINESIZE 0
205 __asm__ __volatile__(
"pref @%0\n"
219 __asm__ __volatile__(
"pref @%0\n"
234 uint32_t *src32 = (uint32_t *)src;
236 __asm__ (
"movca.l r0, @%8\n\t"
245 :
"r" (src32),
"z" (value)
Various common macros used throughout the codebase.
static __always_inline void dcache_alloc_block(void *src, uint32_t value)
Allocate one block of the data/operand cache.
Definition cache.h:233
void dcache_inval_range(uintptr_t start, size_t count)
Invalidate the data/operand cache.
void dcache_purge_all(void)
Purge all the data/operand cache.
void icache_flush_range(uintptr_t start, size_t count)
Flush the instruction cache.
static __always_inline void dcache_pref_block(const void *src)
Prefetch one block to the data/operand cache.
Definition cache.h:204
void icache_inval_range(uintptr_t start, size_t count)
Invalidate the instruction cache.
void dcache_purge_range(uintptr_t start, size_t count)
Purge the data/operand cache.
static __always_inline void dcache_wback_sq(void *src)
Write-back Store Queue buffer to external memory.
Definition cache.h:218
void dcache_flush_all(void)
Flush all the data/operand cache.
void dcache_purge_all_with_buffer(uintptr_t start, size_t count)
Purge all the data/operand cache with buffer.
void dcache_flush_range(uintptr_t start, size_t count)
Flush the data/operand cache.