libpayload: armv7: Add cache control function to invalidate range.
When dealing with DMA, we need a function to invalidate cache without corrupting contents on main memory (clean). Change-Id: I28e632ae57a7b7ed1accee74e76045b92f92a699 Signed-off-by: Hung-Te Lin <hungte@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/61078 Reviewed-by: Gabe Black <gabeblack@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org> Reviewed-on: http://review.coreboot.org/4345 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
parent
d0fa1d1a61
commit
cb0aeef0a9
|
@ -80,6 +80,7 @@ enum dcache_op {
|
|||
OP_DCISW,
|
||||
OP_DCCIMVAC,
|
||||
OP_DCCMVAC,
|
||||
OP_DCIMVAC,
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -220,6 +221,9 @@ static void dcache_op_mva(unsigned long addr,
|
|||
case OP_DCCMVAC:
|
||||
dccmvac(line);
|
||||
break;
|
||||
case OP_DCIMVAC:
|
||||
dcimvac(line);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -238,6 +242,11 @@ void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len)
|
|||
dcache_op_mva(addr, len, OP_DCCIMVAC);
|
||||
}
|
||||
|
||||
void dcache_invalidate_by_mva(unsigned long addr, unsigned long len)
|
||||
{
|
||||
dcache_op_mva(addr, len, OP_DCIMVAC);
|
||||
}
|
||||
|
||||
void dcache_mmu_disable(void)
|
||||
{
|
||||
uint32_t sctlr;
|
||||
|
|
|
@ -266,6 +266,9 @@ 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);
|
||||
|
||||
/* dcache invalidate by modified virtual address to PoC */
|
||||
void dcache_invalidate_by_mva(unsigned long addr, unsigned long len);
|
||||
|
||||
/* dcache invalidate all (on current level given by CCSELR) */
|
||||
void dcache_invalidate_all(void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue