
Hi Stefan,
even after pulling the latest CFI updates from the u-boot-cfi-flash repository, I still see the following issues:
a) on MPC8260:
[Stefan: for testing please use the TQM8260_AD board in the xpert VL.]
The CFI driver returns from an "erase" operation with the flash still in a undefined state; immediate reads after an erase do not show 0xFF patterns. If you wait a few milliseconds, the flash will finally change into the expected erased state.
Example:
=> era 40280000 +1 ; md 40280000 10 ; sleep 1 ; md 40280000
. done Erased 1 sectors 40280000: 004c004c 00080008 004c004c 00080008 .L.L.....L.L.... <= bad 40280010: 004c004c 00080008 004c004c 00080008 .L.L.....L.L.... <= bad 40280020: 004c004c 00080008 004c004c 00080008 .L.L.....L.L.... <= bad 40280030: 004c004c 00080008 004c004c 00080008 .L.L.....L.L.... <= bad 40280000: ffffffff ffffffff ffffffff ffffffff ................ <- good 40280010: ffffffff ffffffff ffffffff ffffffff ................ <- good 40280020: ffffffff ffffffff ffffffff ffffffff ................ <- good 40280030: ffffffff ffffffff ffffffff ffffffff ................ <- good
Playing with CFI paramaters (like manually increasing write timeout and/or erase timeout) does not change anything. Neither does adding sync() instructions to the flash_read?() and flash_write?() functions.
b) on 440EPx:
[Stefan: for testing please use the Sequoia board in the pollux VL.]
The CFI driver does not detect that it's writing to flash that is not (sufficiently) erased:
=> md FC000000 10 fc000000: 00000000 00000000 00000000 00000000 ................ fc000010: 00000000 00000000 00000000 00000000 ................ fc000020: 00000000 00000000 00000000 00000000 ................ fc000030: 00000000 00000000 00000000 00000000 ................ => mw.b 0 FF 400 => md 0 00000000: ffffffff ffffffff ffffffff ffffffff ................ 00000010: ffffffff ffffffff ffffffff ffffffff ................ 00000020: ffffffff ffffffff ffffffff ffffffff ................ 00000030: ffffffff ffffffff ffffffff ffffffff ................ => cp.b 0 FC000000 400 Copy to Flash... done <= should issue error message here!!!! => md FC000000 fc000000: 00000000 00000000 00000000 00000000 ................ fc000010: 00000000 00000000 00000000 00000000 ................ fc000020: 00000000 00000000 00000000 00000000 ................ fc000030: 00000000 00000000 00000000 00000000 ................ =>
I consider this a major bug.
Any ideas what might cause such effects?
Best regards, Viele Grüße,
Wolfgang Denk