armv7: add wrapper for DCCSW (data cache clean by set/way)
This adds a wrapper for data cache clean (without invalidate) by set/way. Signed-off-by: David Hendricks <dhendrix@chromium.org> BUG=none BRANCH=none TEST=tested in follow-up patches Change-Id: I09ee1563890350a6c1d04f1b96ac5d0c042e2af2 Reviewed-on: https://gerrit.chromium.org/gerrit/66118 Commit-Queue: David Hendricks <dhendrix@chromium.org> Tested-by: David Hendricks <dhendrix@chromium.org> Reviewed-by: Ronald G. Minnich <rminnich@chromium.org>
This commit is contained in:
parent
5dff43f929
commit
05bc4f8564
2 changed files with 14 additions and 0 deletions
|
|
@ -76,6 +76,7 @@ void icache_invalidate_all(void)
|
|||
}
|
||||
|
||||
enum dcache_op {
|
||||
OP_DCCSW,
|
||||
OP_DCCISW,
|
||||
OP_DCISW,
|
||||
OP_DCCIMVAC,
|
||||
|
|
@ -179,6 +180,11 @@ void dcache_clean_invalidate_all(void)
|
|||
dcache_foreach(OP_DCCISW);
|
||||
}
|
||||
|
||||
void dcache_clean_all(void)
|
||||
{
|
||||
dcache_foreach(OP_DCCSW);
|
||||
}
|
||||
|
||||
void dcache_invalidate_all(void)
|
||||
{
|
||||
dcache_foreach(OP_DCISW);
|
||||
|
|
|
|||
|
|
@ -170,6 +170,12 @@ static inline void dccmvac(unsigned long mva)
|
|||
asm volatile ("mcr p15, 0, %0, c7, c10, 1" : : "r" (mva) : "memory");
|
||||
}
|
||||
|
||||
/* data cache clean by set/way */
|
||||
static inline void dccsw(uint32_t val)
|
||||
{
|
||||
asm volatile ("mcr p15, 0, %0, c7, c10, 2" : : "r" (val) : "memory");
|
||||
}
|
||||
|
||||
/* data cache invalidate by MVA to PoC */
|
||||
static inline void dcimvac(unsigned long mva)
|
||||
{
|
||||
|
|
@ -289,6 +295,8 @@ void dcache_clean_by_mva(unsigned long addr, unsigned long len);
|
|||
/* dcache clean and invalidate by modified virtual address to PoC */
|
||||
void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len);
|
||||
|
||||
void dcache_clean_all(void);
|
||||
|
||||
/* dcache invalidate all (on current level given by CCSELR) */
|
||||
void dcache_invalidate_all(void);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue