
In message f96d234e04120911001d14d232@mail.gmail.com you wrote:
I have seen this several times over the years while working on embedded systems (including U-boot on PXA255 -- I did the same thing you did). If you write random data to flash, chances are you will hit a sequence that will corrupt the flash. All "protecting" flash memory
This has nothing to do with PXA255, and happens only ith certain types of flash chips. If you use for example AMD chips, then a special programming sequence must be written to special, no-consequtive addresses. It is impossible to generate such a write pattern by copying data sequentially to flash memory. Such chips are safe.
does is require a slightly more complicated sequence of write operations to unlock it.
No. Not even that. For most boards, the "protect" feature in U-Boot is only a flag that prevents certain commands from working on such "protected" flash areas. Only very few flash chips, and even fewer boards using these chips, actually use some kind of hardware protection.In most cases, just using a couple of "mm" or "mw" commands to enter the erase or program seqence is all what's needed to erase / corrupt "protected" sectors.
The "protect" stuff is something that is intended to prevent accidential data loss by a istyped command etc. It cannot protect you from doing stupid things.
I slightly more reliable mechanism is to gate the write strobe in hardware or some other hardware mechanism, but this is usually not
It is perfectly sufficient to chose a different kind of flash chips, that cannot be brought into erase or protgram mode by writing sequential data. If your hardware guys selected such a type of flash you just get what you deserve. There is no protection against bad design decisions.
Best regards,
Wolfgang Denk