Query

Estelle HAMMACHE estelle.hammache at st.com
Wed Dec 22 04:26:14 EST 2004


Rudresh NB wrote:
> 
> Hi,
>     Thanx for the reply.
> 
> I have couple of questions.
> 
> 1) How JFFS2 will take care of Updating the same page
> in the block.

JFFS2 will not _update_ a NAND Flash page. When the user
overwrites a file with new data, JFFS2 will NOT update the
previous data. Rather JFFS2 will write the new data at
another free place, increasing the version number. The
old data which is not needed anymore will disappear during
garbage collection. JFFS2 does not write twice to the same
physical page, unless the block was erased in the meantime.
I suggest that you read http://sources.redhat.com/jffs2/jffs2.pdf 
if you haven't already.

> 2) How does the logical addr to physical addr of block
>  no happens

JFFS2 is NOT an FTL. There are no logical block numbers
in JFFS2. I think the block adresses are relative to the
start of the partition, this is managed in mtd drivers (?).

bye
Estelle



> --- Estelle Hammache wrote:
> 
> > Hi,
> > JFFS2 write pages sequentially from the start of an
> > erase
> > block to the end of the block. The current
> > write block is in c->nextblock. The current write
> > offset
> > in this block is c->nextblock->offset.
> > There is a write buffer (see file wbuf.c) to ensure
> > that
> > only full pages are written, even though data nodes
> > may
> > overlap a page boundary.
> > Data nodes may not overlap an erase block boundary:
> > if there
> > is no more room in the current block, a new (empty)
> > block
> > is selected (and the page buffer is flushed in the
> > old block
> > previously to writing to the new block). The new
> > block
> > selection and the write address selection happen in
> > nodemgmt.c (jffs2_do_reserve_space).
> > Does this answer your question ?
> > Estelle
> >
> > Rudresh NB wrote:
> > >
> > > Hi All,
> > >        Iam using samsung Nand flash (k9f2g08u0m).
> > In
> > > that there is restriction of random page program.
> > I
> > > heard that jffs2 takes care. but iam unable to
> > find
> > > where exactly (In which file ) it is taken care.
> > > Brief explanation is appreciated.
> > >
> > > Thanx in advance
> > >
> > > Rgds
> > > NBR




More information about the linux-mtd mailing list