Justin Carlson wrote:
I'm still looking for a reason for the existence of __flush_cache_all().
It is needed by kgdb where gdb client may modify several instructions before a
'c' command is issued. In that case, you cannot use flush_icache_range
because you don't know the range. It is probably not safe either as the data
cache may not be written back yet
Does flush_icache_range() mandates write-back of dcache in the same range? If
it does, you might be able to get away with flush_icache_range(ICACHE_BEGIN,
Like someone else has pointed out, __flush_cache_all() is introduced to ensure
i-cache/d-cache consistency. I remember it was shortly introduced after we
had the first cache-coherent system where flush_cache_all() is a null function.