Skip to content
Snippets Groups Projects
Commit ee47c4cb authored by Vladimir Zapolskiy's avatar Vladimir Zapolskiy Committed by Tom Rini
Browse files

sh4: cache: correct dcache flush to invalidate with write-back


In common usecases flush_cache() assumes both cache invalidation and
write-back to memory, thus in flush_dcache_range() implementation
change SH4 cache write-back only instruction 'ocbwb' with cache purge
instruction 'ocbp', according to the User's Manual there should be no
performance penalty for that.

Note that under circumstances only cache invalidation is expected from
flush_cache() call, in these occasional cases the current version of
flush_cache() works, which is a wrapper over invalidate_dcache_range()
at the moment, this will be fixed in the following change.

Signed-off-by: default avatarVladimir Zapolskiy <vz@mleia.com>
parent fd184b9c
No related branches found
No related tags found
No related merge requests found
......@@ -97,7 +97,7 @@ void flush_dcache_range(unsigned long start, unsigned long end)
start &= ~(L1_CACHE_BYTES - 1);
for (v = start; v < end; v += L1_CACHE_BYTES) {
asm volatile ("ocbwb %0" : /* no output */
asm volatile ("ocbp %0" : /* no output */
: "m" (__m(v)));
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment