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