Anyone can help me about do_write_buffer at cfi_cmdset_0002

Gernot Hoyler Gernot.Hoyler at spansion.com
Thu Sep 9 08:38:21 EDT 2010


 >    In functions
 >    do_write_buffer @ drivers/mtd/chips/cfi_cmdset_0002.c.
 >    /* why word_write_time? */

I assume this is because the write times as given by CFI are typical times and 
is most cases the device is faster than that. In other words, if we waited 
"buffer_write_time" before starting to poll then the device would already have 
finished the operation and we would waste time in most cases.

Actually, newer devices would work without any delay after sending the command 
cycles and before polling. However, first generation MirrorBit devices (-A and 
-M families) required a 4us delay to give stable status information. So 
waiting the typical word program time is a good compromise. It gives you 
maximum performance while still keeping compatiblility with older devices.

--Gernot




More information about the linux-mtd mailing list