[U-Boot-Users] bugs in flush_cache
Shinya Kuribayashi
skuribay at ruby.dti.ne.jp
Tue May 13 18:18:01 CEST 2008
Eyal Bari wrote:
> in your version of the function the iterated cache ops second argument
> was start_addr which stay constant.
Probably already fixed in the latest git. See below commit:
http://git.denx.de/?p=u-boot.git;a=commitdiff;h=188e94c370621708d13547d58dbc6ed3c5602aa8
> the second bug is that it doesn't iterate over the entire range:
> for example:
> if size is 42 and the cache line size is 32 - it takes two cache lines
> to cache this buffer
> your version will iterate only over one cache line
> my version will iterate over two cache line covering the entire range
Note that (addr == aend) is evaluated *after* cache_op()s.
If start_addr = 0x80000000, size = 42, CFG_CACHE_LINE_SIZE = 32,
cache_op( , 0x80000000) and cache_op( , 0x80000020) will be done.
I hope I don't miss anything.
More information about the U-Boot
mailing list