[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