cfi_cmdset_0002 and writes

Tim Hockin thockin at sun.com
Wed Jul 18 17:58:25 EDT 2001


ok, so I've got (in mylocal CVS, not checked in) some code that sets up our
flash ROM.  I have the MTD layer reading my device just fine.

What I DON'T have is writing working.

I don't know how the other devices supported by cfi_cmdset_0002 work, but
let me explain how our flash works.  I am hoping someone can then explain
to me how cfi_cmdset_0002 can work.

The flash can be erased by 64k blocks.  Since it is flash, you can only
reprogram '1' bits to '0' bits, and never vice versa.  What I don't find is
any hooks in cfi_cmdset_0002 to read a whole block, erase it, make changes
to the in-memory block and write it back to flash.

How/where does it do this?  Or are all the other chips that use this cmdset
more flexible?  Obviosuly, we don't want to do that for every write.


In my previous incarnation of a flashrom driver, the driver created the in
buffer shadow whenever a write occurred to a block. Then, on fsync() would
flush all the block back to flash.

Secondly, the specs call for specific spin checks (checkin the high bot of
each byte) rather than wait-times.

Is the existing model going to work for me at all?

feeling frustrated,
Tim


-- 
Tim Hockin
Systems Software Engineer
Sun Microsystems, Cobalt Server Appliances
thockin at sun.com




More information about the linux-mtd mailing list