Missing cache flush.
Johan Adolfsson
johan.adolfsson at axis.com
Tue Jun 5 05:43:39 EDT 2001
Possibly saying something extremly stupid here,
how about simply "fakewriting" 0xFF to the flash
after an erase to update any caches?
> 2. Flash. A few writes of magic data to magic addresses and a whole erase
> block suddenly contains 0xFF. The CPU doesn't notice that either.
do_erase_stuff();
/* While verifying, update cache */
for (address = adr; address < (adr + size); address++) {
if ((verify = map->read8(map, address)) != 0xFF) {
error = 1;
break;
}
/* "Fake" write 0xFF's to the erased sector so that
caches are updated
* after we verified that uncached data is ok
*/
*(unsigned char*)CACHED(address) = 0xFF;
}
/Johan
More information about the linux-mtd
mailing list