
Hi Marek,
On 10/10/2015 01:55 PM, Thomas Chou wrote:
Hi Marek,
On 10/09/2015 10:42 PM, Marek Vasut wrote:
In nios2, we don't skip the flushing when the inputs are not aligned like that of arm926ejs. We always flush all cache lines in the range, even if a single byte to flush is in request. So the inputs are rounded to get the lower and upper cache lines range inside the cache flush functions. The caller need not be aware of the detail.
This is incorrect and all the places which produce these unaligned cache operations must be fixed.
I take a look into the cache flush operations in every arch of u-boot. It turns out that the arm926ejs is the only platform that does such cache line range check and skip. All other ARM and all other arch don't. And the cache flush in Linux don't.
+arm11, which is based on the same code.
I see your patch on this range check. I would prefer that the details of cache line configuration be kept inside the cache flush operators, and need not be exposed to drivers. As drivers might be used by different arch with different cache implementation, L1,L2..etc. It is not good for drivers to adjust the flush range before passing to cache flush operators.
Best regards, Thomas