
Hi, [snip..]
If it is a problem with unaligned regions, then that is the only thing to be fixed right ?. Just trying to understand why this change is required ?
The problem is that within the USB/network/filesystem stacks we have a lot of not cache safe alignments apparently. Without this every '#' of a tftp gives a screen full of error printfs. So tftp'ing a kernel takes minutes, not seconds, to complete.
Ok,but when buffers are not aligned isn't that you are going to have coherency problems ?
Exactly. USB requires dcache to be turned off today. With it turned off it spams these messages making tftp to an aligned address take minutes because the console is busy printing all of these messages about flushes it didn't need to do. The alternative is to build omap4/omap5/etc with dcache disabled or USB disabled.
Ok, but who is calling cache maintenance in your case after turning off caches ?
I think the answer here is we need to make sure that when we switch the cache off (dcache_off()) we're always doing the kind of flushing that we had been doing for the kernel.
Yes, and also unaligned buffers will always be a problem. There should be a way to address that as well.
Thanks, Sricharan