armv7: add function for dcache_clean_by_mva()

This adds a function for using the DCCMVAC instruction (dcache clean
by MVA at point of coherency (main memory)). We already have the
inline defined, it's just not used by anything.

Change-Id: Ia0641566a8881335bed8da2963e1db8321d74267
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/2871
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins)
This commit is contained in:
David Hendricks 2013-03-19 18:38:48 -07:00
parent 758abdd75b
commit 426ce4192b
2 changed files with 9 additions and 0 deletions

View File

@ -215,6 +215,9 @@ static inline void write_sctlr(unsigned int val)
/* dcache clean and invalidate all (on current level given by CCSELR) */
void dcache_clean_invalidate_all(void);
/* dcache clean by modified virtual address to PoC */
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);

View File

@ -79,6 +79,7 @@ enum dcache_op {
OP_DCCISW,
OP_DCISW,
OP_DCCIMVAC,
OP_DCCMVAC,
};
/*
@ -193,6 +194,11 @@ static void dcache_op_mva(unsigned long addr,
}
}
void dcache_clean_by_mva(unsigned long addr, unsigned long len)
{
dcache_op_mva(addr, len, OP_DCCMVAC);
}
void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len)
{
dcache_op_mva(addr, len, OP_DCCIMVAC);