Flash erase wait time

Adil Hafeez adilhafeez80 at gmail.com
Fri Aug 26 06:54:22 EDT 2005


Hi,

I am using a custom mips board that includes 8 MB Am29LV641D flash
chip. This chip is 16-bit, has 128 sectors of 64k each.

This flash is memory mapped and starts at address 1c40:0000. I can
read the flash using dd utility. But I cannot erase flash. Erase
operation using 'eraseall' utility doesnt take more than 6 seconds to
finish and erases only first two blocks i.e. 128k. Whereas, full flash
erase from our custom developed flash utlity takes 60 seconds to erase
flash.

Then after hacking into cmd cfi commad set. The erase issue was fixed by 
adding a while loop for checking polarity bit in do_erase_oneblock function.

while (!sectorDone) {
    unsigned volatile short *flash_addr = adr + map->map_priv_1;
    if( (*flash_addr) & 0x0080 )
        sectorDone = 1;
}

Was it really required to double check the polarity bit, or there are
some timeout timer issues with my mips port ?


- Adil
-------------- next part --------------
A non-text attachment was scrubbed...
Name: erase_all_fix.patch
Type: application/octet-stream
Size: 663 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/linux-mtd/attachments/20050826/8d1ed808/attachment.obj 


More information about the linux-mtd mailing list