Skip to content
Snippets Groups Projects
Commit 2a8382c6 authored by Alexey Brodkin's avatar Alexey Brodkin
Browse files

arc/cache: really do flush_dcache_all() even if IOC exists


flush_dcache_all() is used in the very end of U-Boot self relocation
to write back all copied and then patched code and data to their
new location in the very end of available memory space.

Since that has nothing to do with IO (i.e. no external DMA happens
here) IOC won't help here and we need to write back data cache contents
manually.

Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
parent ee8b25fa
No related branches found
No related tags found
No related merge requests found
...@@ -430,13 +430,10 @@ void invalidate_dcache_all(void) ...@@ -430,13 +430,10 @@ void invalidate_dcache_all(void)
void flush_dcache_all(void) void flush_dcache_all(void)
{ {
#ifdef CONFIG_ISA_ARCV2 __dc_entire_op(OP_FLUSH);
if (!ioc_exists)
#endif
__dc_entire_op(OP_FLUSH);
#ifdef CONFIG_ISA_ARCV2 #ifdef CONFIG_ISA_ARCV2
if (slc_exists && !ioc_exists) if (slc_exists)
__slc_entire_op(OP_FLUSH); __slc_entire_op(OP_FLUSH);
#endif #endif
} }
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