mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 13:15:18 -05:00
Make basic cache functions into calls, and get rid of CACHE_FUNCTION_WRAPPERS and CACHE_FUNCTIONS_AS_CALL macros. Rename flush/invalidate_icache to cpucache_flush/invalidate. They're inlined only if an implementation isn't provided by defining HAVE_CPUCACHE_FLUSH/INVALIDATE.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19971 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
4cd7597172
commit
21f0c9a282
28 changed files with 136 additions and 173 deletions
|
|
@ -57,34 +57,12 @@ void imx31_regclr32(volatile uint32_t *reg_p, uint32_t mask);
|
|||
|
||||
#define KDEV_INIT
|
||||
|
||||
#define HAVE_INVALIDATE_ICACHE
|
||||
static inline void invalidate_icache(void)
|
||||
{
|
||||
asm volatile(
|
||||
/* Clean and invalidate entire data cache */
|
||||
"mcr p15, 0, %0, c7, c14, 0 \n"
|
||||
/* Invalidate entire instruction cache
|
||||
* Also flushes the branch target cache */
|
||||
"mcr p15, 0, %0, c7, c5, 0 \n"
|
||||
/* Data synchronization barrier */
|
||||
"mcr p15, 0, %0, c7, c10, 4 \n"
|
||||
/* Flush prefetch buffer */
|
||||
"mcr p15, 0, %0, c7, c5, 4 \n"
|
||||
: : "r"(0)
|
||||
);
|
||||
}
|
||||
#define HAVE_CPUCACHE_INVALIDATE
|
||||
#define HAVE_CPUCACHE_FLUSH
|
||||
|
||||
#define HAVE_FLUSH_ICACHE
|
||||
static inline void flush_icache(void)
|
||||
{
|
||||
asm volatile (
|
||||
/* Clean entire data cache */
|
||||
"mcr p15, 0, %0, c7, c10, 0 \n"
|
||||
/* Data synchronization barrier */
|
||||
"mcr p15, 0, %0, c7, c10, 4 \n"
|
||||
: : "r"(0)
|
||||
);
|
||||
}
|
||||
/* Different internal names */
|
||||
#define cpucache_flush clean_dcache
|
||||
#define cpucache_invalidate invalidate_idcache
|
||||
|
||||
struct ARM_REGS {
|
||||
int r0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue