I am working on an OpenWRT system for a custom board with a Flash Memory Chip. One problem is that U-Boot only works if the Flash Memory is in 3 Byte Addressing Mode while Linux needs 4 byte Addressing Mode. This switch is done in U-Boot and everything works.
The problems start when i want to reboot the board. For this i am changing the addressing mode of the Flash Memory from Linux back to 3 byte(U-Boot needs it) but then the whole system is unresponsive and what's worst is that after I power cycle the device, the entire Flash Memory is erased (0xFF everywhere). My system is using OpenWRTs SQUASHFS and JFFS2 and i see lots of messages like this:
[ 1204.490000] SQUASHFS error: Unable to read page, block 2e6c4a, size a57c [ 1204.490000] SQUASHFS error: Unable to read fragment cache entry [2e6c4a]
Now i am trying to track down when is the whole memory erased but no luck so far. Does anyone have some idea about when this happens? is it a normal behaviour if the whole memory is "corrupted"(wrong addressing mode in my case) the whole chip gets erased? Is there anything i can do in order to stop this?