[Yaffs] Yaffs Packed Tags and bad block markings

Charles Manning manningc2@actrix.gen.nz
Tue, 29 Mar 2005 16:26:42 +1200


To give another perspective on this...
The main reason for the change to ExtendedTags in YAFFS2 was to make an=20
abstraction between YAFFS data structures and their actual storage in the=
=20
NAND spare area.

This move was driven by:
1) YAFFS1 supports primarily SmartMedia. The yaffs_guts knows about spare=
=20
areas etc and expects a certain spare area layout (though of course this =
can=20
be corrected with some hacking and byte shuffling etc to accomodate hardw=
are=20
ECC and different byte ordering).
2) YAFFS1 expects the SmartMedia bad block marking strategy. YAFFS2's=20
extended tags pushes the bad block management out of YAFFS and into the m=
td.=20
This was done to support the various bad block handling strategies that=20
various chips use. For example, some chinks use the SmartMedia strategy a=
nd=20
others need bad block tables for initial bad blocks. These strategies are=
=20
chip specific and do not really belong in YAFFS.

-- Charles


On Thursday 24 March 2005 11:29, Thomas Gleixner wrote:
> On Wed, 2005-03-23 at 23:46 +0100, Thomas Gleixner wrote:
> > On Wed, 2005-03-23 at 16:55 -0500, Lance Ware wrote:
> > > I am using yaffs2 and i am looking at the arrangement of the extend=
ed
> > > tags areas.  My question is i have a Samsung chip which uses bad bl=
ock
> > > markers at the 0 byte of the 64-byte spare area.  But when i pass t=
he
> > > extended tags parameter to my nand_write function, the bad block ma=
ker
> > > is overwritten with the tag information.
> >
> > What is your nand_write function ? Userspace application ?
> >
> > >  I was wondering was their a way to change the arrangement of the b=
ad
> > > block marker.
> >
> > No
>
> Oops, I forgot about bad block tables, but there is no necessity to use
> them.
>
> The NAND driver can create bad block table(s) on the first detection of
> the chip. Then the bad block marker position is not longer reserved,
> because the driver scans for bad block tables instead of the oob bits,
> which mark the block bad. This requires to have intact bad block
> information on the first detection.
>
> tglx
>
>
>
> _______________________________________________
> yaffs mailing list
> yaffs@stoneboat.aleph1.co.uk
> http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs