[U-Boot-Users] CFI driver does not verify writes in buffered mode - feature?
Tolunay Orkun
listmember at orkun.us
Wed May 9 22:25:34 CEST 2007
Detlev Zundel wrote:
> Hi,
>
> when using the CFI flash driver with CFG_FLASH_USE_BUFFER_WRITE the
> "usual" verification whether the write did indeed happen correctly is
> not done:
>
> => erase fc000000 +1
>
> . done
> Erased 1 sectors
> => mw 200000 55555555 100
> => cp.b 200000 fc000000 100
> Copy to Flash... done
> => md fc000000
> fc000000: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000010: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000020: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000030: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000040: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000050: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000060: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000070: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000080: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000090: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000a0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000b0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000c0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000d0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000e0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000f0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> => mw 200000 ffffffff 100
> => cp.b 200000 fc000000 100
> Copy to Flash... done
> => md fc000000
> fc000000: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000010: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000020: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000030: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000040: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000050: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000060: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000070: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000080: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc000090: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000a0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000b0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000c0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000d0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000e0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
> fc0000f0: 55555555 55555555 55555555 55555555 UUUUUUUUUUUUUUUU
>
>
> So the write did indeed *not proceed* correctly without the expected
> "flash not erased" error message appearing.
In the above example you are overwriting the same data. Which is OK to
write without erasing first. You can turn 1 bits to 0 or re-write the
same data without erasing which is OK. The redundant environment
implementation takes advantage of this in U-Boot. This is not an error.
Am I missing something?
Tolunay
More information about the U-Boot
mailing list