
Dear Albert ARIBAUD,
In message 4CBF4D17.6020403@free.fr you wrote:
Is the data cache on or off when you experience the issue? If it was on,
DC is always off. DC on has always casued problems with lots of drivers, including USB, so we never attempted doing that (except for verification that it indeed does cause problems).
can you try with data cache off and instruction cache on?
Done. The situation was IC off/DC off versus IC on/DC off.
If the issue arises when both caches are on, then *maybe* the issue is caused by code which was loaded into i-cache *before* it was fixed up, or loaded while its fixups were still in the data cache. However this does not explain everything, since even with instruction cache off, data cache can hold fixups for some time and thus non-cached instruction fetches could return the wrong code.
As mentioned, DC has always been off.
Still, since ELF fixups are some sort of code self-modification, they must, according to the ARM doc, be followed by an IMB sequence. The exact sequence varies; I will look up and provide the sequence for ARM1136 tomorrow -- unless someone else can do it sooner, of course.
Thanks.
Best regards,
Wolfgang Denk