I have been doing lots of testing, and have now reached the following conclusion.
I can consistently reproduce silent data corruption with the following settings:
current_limit_override=0x5A000020
over_voltage_sdram=5
over_voltage=4
force_turbo=1
arm_freq=1026
sdram_freq=500
core_freq=300
Same settings without core_freq=300 does not cause corruption.
There is one more thing needed for corruption to occur.
XBMC must be running. Just having it sit at the homescreen with RSS-feed enabled is enough to cause corruption. If I have core_freq=300 but without xbmc running, I do not get corruption. Maybe other application also cause corruption, but this is a rock solid way of reproducing for me. Sometimes I killed xbmc during my previous testing. That caused unreliable results in my testing.
When I get corruption, it is during write of file to SD-card. Reading file is OK.
During conditions explained above, when I get corruption during write to SD-card, I can write OK to usb drive. So for me, it is only write to SD-card that have this data corruption issue.
When I get corruption, sometimes the following is logged in dmesg during the write of the file to SD-card:
mmc0: final write to SD card still running
mmc0: Timeout waiting for hardware interrupt - cmd12.
mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
I do not get messages like this everytime I get corruption, but sometimes.
I do not know if there is a relationship between these messages and the data corruption.
I never get the above messages in dmesg when writes are ok.
On even more rare occasions, I also get the following in dmesg during a write that cause data corruption.
http://pastebin.com/rNek0rsn