How to Sync properly ?

Patrick Allaire pallaire at
Tue Jan 8 08:48:27 EST 2002

Yes we can, but my driver cant for the moment, Since there is no driver for
ST flash in your cvs, We have to port the one from INTEL to ST ... the guy
who did the first draft cant work on it for the moment. 

I have been told :

>>> You can write less than 128k at a time, but there is an architectural
feature of the ST multilevel flash which causes a little issue, there is no
word write command, only a buffer write command - the write buffer is 32
bytes long, and this is broken into 4 8-byte pages. You have to write a
complete 8-byte page at a time. You cannot write (for example 2 bytes of a
page and then write the other 6-bytes later) - this hangs up the state
machine. The reason for this is that they have included an ECC engine in the
device, and each 8-byte page has ECC calculated automatically as you write -
this is obviously stored in flash somewhere, so when you try to write to the
same page again, when it tries to write the ECC codes, it gets into a
screw-up - the issue is, if you want to re-write a page, you need to erase
the entire erase block (128k). <<<

Is this true ? is there a work around to use properly ST flash ? because
INTEL flash cost us the double !

thank you

Patrick Allaire
mailto:pallaire at
If you can see it, but it's not there, it's virtual. 
If you can't see it, but it is there, it's hidden. 
It you can't see it and it isn't there, it's gone.

> -----Original Message-----
> From: David Woodhouse [mailto:dwmw2 at]
> Sent: January 8, 2002 4:08 AM
> To: Patrick Allaire
> Cc: linux-mtd at
> Subject: Re: How to Sync properly ? 
> pallaire at said:
> > Do you know any of the standard FS that will support sync ??
> Linux has no way to signal to the block device driver that it 
> should flush 
> the write cache - so _no_ Linux filesystem can get it right, even on 
> disc drives with write caches. It's just more obvious with 
> the large write 
> cache on the mtdblock device, that's all. 
> Linux is broken. Unless Linux gets unbroken and starts to 
> deal with block 
> devices having internal write caches, the only option you have is to 
> disable the caching completely.
> > because for the moment the dirver for my ST falsh will only 
> write 128k
> > at a time ... I would have to change my hardware to use Intel Flash,
> > to be able to use JFFS 1 or 2.
> I thought you could write the ST flash in 8-byte chunks?
> --
> dwmw2

More information about the linux-mtd mailing list