We have system with a 16MB Intel flash. The flash is split into five
sections, boot code, cpu1 code, cpu2 code, cpu3 code and tffs. We
require the capability to update the boot, cpu1,2 or 3 sections during
system operation, when tffs being accessed. Our routines that update
the boot,cpu1,2,3 sections is custom code that just writes directly to
the flash device without using any vxworks or bsp drivers. Of course,
there have been intermittent corruption issues within tffs.
Subsequently, we have added a mutex shared by our flash routines and
the CFI routines ( in sysFlashWriteEnable/sysFlashWriteDisable ) which
helped out remendously, but only during writes, so we added the dos
mutex to the sysFlashWritexxx routines ( pVolDesc->devSem of tffs )
which helped during reads as well. Now, we have seen ( only once ) a
dcache error ( 0x7f45030 (tDcacheUpd): disk cache error: device 7ec0270
block 19 errno c0006, disk removed while writing data, possible data
loss ) which is the tffs device. I was planning to add the cbio mutex
as well to my sysFlashWritexxx routines, but was wondering if that was
the last one or if I need to add more? Or, maybe there is a much easier
way around this problem? Seems like someone would have run into this
already and maybe has some advice?

Randy Krakora