Hi Amol,
I have seen the latest Yaffs2 code , As you said
I guess ,
dev->nChunksPerBlock = mtd->erasesize / mtd->writesize;
will override
dev->nChunksPerBlock = YAFFS_CHUNKS_PER_BLOCK
in YAFFS2.
With Regards
Moorthy
> From: yaffs-request@lists.aleph1.co.uk> Subject: yaffs Digest, Vol 39, Issue 9> To: yaffs@lists.aleph1.co.uk> Date: Tue, 19 Aug 2008 12:00:07 +0100> > Send yaffs mailing list submissions to> yaffs@lists.aleph1.co.uk> > To subscribe or unsubscribe via the World Wide Web, visit> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs> or, via email, send a message with subject or body 'help' to> yaffs-request@lists.aleph1.co.uk> > You can reach the person managing the list at> yaffs-owner@lists.aleph1.co.uk> > When replying, please edit your Subject line so it is more specific> than "Re: Contents of yaffs digest..."> > > Today's Topics:> > 1. yaffs_tagscompat aliasing problem (James Kehl)> 2. Yaffs2 and MLC NAND with Block size 256K (Amol Lad)> 3. Re: Yaffs2 and MLC NAND with Block size 256K (James Kehl)> 4. notification about data error during read (Evgeny Habinsky)> 5. Can't open files under "/" (Evgeny Habinsky)> 6. Re: Yaffs2 and MLC NAND with Block size 256K (Amol Lad)> > > ----------------------------------------------------------------------> > Message: 1> Date: Tue, 19 Aug 2008 16:11:11 +1000> From: "James Kehl" <jamesk@edmi.com.au>> Subject: [Yaffs] yaffs_tagscompat aliasing problem> To: <yaffs@lists.aleph1.co.uk>> Message-ID:> <DA07ABAEC04C914DB72E4885251CCF8AB474A2@MERCURY.edmi.local>> Content-Type: text/plain; charset="us-ascii"> > Hi all,> > The Yaffs1 tag ECC routine runs into aliasing problems when I compile it> with ARM GCC (CodeSourcery 2008q1-126), and causes the check routine to> flip random bits. I attach a fix (a slightly cleaner fix than> -fno-strict-aliasing!)> > There are some other problems with the yaffs1 tag ECC: it can't cope> with a single bit error in the ECC data itself (it either causes> miscorrections, or makes the check routine return -1), and it only ever> uses 7 bits out of the 12 provided for ECC. Yaffs2 probably doesn't have> these problems, and I think Yaffs1 folk wouldn't want backwards> compatibility broken, so these remain unfixed :)> > (This is unrelated to the problems I was seeing under mingw, btw)> > James> -------------- next part --------------> A non-text attachment was scrubbed...> Name: yaffs_tagscompat-aliasing.patch> Type: application/octet-stream> Size: 826 bytes> Desc: yaffs_tagscompat-aliasing.patch> Url : http://lists.aleph1.co.uk/lurker/list/yaffs.html/attachments/20080819/75d129ff/attachment.obj > > ------------------------------> > Message: 2> Date: Tue, 19 Aug 2008 11:57:58 +0530> From: "Amol Lad" <amol.lad@gmail.com>> Subject: [Yaffs] Yaffs2 and MLC NAND with Block size 256K> To: yaffs@lists.aleph1.co.uk> Message-ID:> <8c675e9b0808182327g35cafc21k61b45f05b9f03901@mail.gmail.com>> Content-Type: text/plain; charset=ISO-8859-1> > Hi,> > I'm using a year old snapshot of Yaffs2 cvs tree. I want to know if> there are any assumptions about the block size for 2K page NAND. For> example, Samsung K9F4G08U0A is SLC NAND with 2K page size and 128K> block size. Samsung K9G4G08U0A is MLC NAND with 2K page size and 256K> block size (both have same device id - 0xDC)> > So, are there any assumptions about block size for 2K page ? or 256K> block size will work as is..> > >From README-linux: "Block - Eraseable unit. 64 Pages. (128K on 2K> NAND, 32K on 512b NAND)"> > Thanks> Amol> > > > ------------------------------> > Message: 3> Date: Tue, 19 Aug 2008 17:04:56 +1000> From: "James Kehl" <jamesk@edmi.com.au>> Subject: Re: [Yaffs] Yaffs2 and MLC NAND with Block size 256K> To: "Amol Lad" <amol.lad@gmail.com>, <yaffs@lists.aleph1.co.uk>> Message-ID:> <DA07ABAEC04C914DB72E4885251CCF8AB474C3@MERCURY.edmi.local>> Content-Type: text/plain; charset="us-ascii"> > > -----Original Message-----> > From: yaffs-bounces@lists.aleph1.co.uk [mailto:yaffs-> > bounces@lists.aleph1.co.uk] On Behalf Of Amol Lad> > Sent: Tuesday, 19 August 2008 4:28 PM> > To: yaffs@lists.aleph1.co.uk> > Subject: [Yaffs] Yaffs2 and MLC NAND with Block size 256K> > > > Hi,> > > > I'm using a year old snapshot of Yaffs2 cvs tree. I want to know if> > there are any assumptions about the block size for 2K page NAND. For> > example, Samsung K9F4G08U0A is SLC NAND with 2K page size and 128K> > block size. Samsung K9G4G08U0A is MLC NAND with 2K page size and 256K> > block size (both have same device id - 0xDC)> > > > So, are there any assumptions about block size for 2K page ? or 256K> > block size will work as is..> > > > The define YAFFS_CHUNKS_PER_BLOCK (from yaffs_guts.h) might be what> you're looking for. That, or dev->nChunksPerBlock if you're using> Yaffs-Direct.> > If you've got no way of knowing whether it's a 128K block size or a 256K> block size, then you might be best off telling Yaffs to use a 256K block> size, and tweaking your NAND driver to send two erase commands (so 128K> NAND will behave like 256K NAND).> > James> > > > > ------------------------------> > Message: 4> Date: Tue, 19 Aug 2008 10:59:11 +0300> From: "Evgeny Habinsky" <evgenyh@Surf-com.com>> Subject: [Yaffs] notification about data error during read> To: <yaffs@lists.aleph1.co.uk>> Message-ID:> <17E66600668C05419793F4C955966EF55425EA@everest_n.Surfdom.dom>> Content-Type: text/plain; charset="us-ascii"> > Hi!> > I use YAFFS via direct interface.> > When YAFFS encounters unrecoverable ECC error during file read it> retires the block but the application gets no notification from the file> system that the file data is corrupted (except for printed error> message).> > One could pass such notification via global variable from directly from> yaffs_ReadChunkFromNAND() to application. I'd like to know how do you> deal with this problem or think it should be dealt with.> > Thanks.> -------------- next part --------------> An HTML attachment was scrubbed...> URL: http://lists.aleph1.co.uk/lurker/list/yaffs.html/attachments/20080819/62f0de4f/attachment.htm > > ------------------------------> > Message: 5> Date: Tue, 19 Aug 2008 11:00:54 +0300> From: "Evgeny Habinsky" <evgenyh@Surf-com.com>> Subject: [Yaffs] Can't open files under "/"> To: <yaffs@lists.aleph1.co.uk>> Message-ID:> <17E66600668C05419793F4C955966EF55425EB@everest_n.Surfdom.dom>> Content-Type: text/plain; charset="us-ascii"> > I found that after upgrading to the latest version of YAFFS I'm no> longer able to create files in root directory. My flash is mounted as> "/" and it seems like yaffsfs_FindDevice() does not allow to open files> directly under "/".> > I am trying to open /testfile for writing. Before matching the file> prefix to YAFFS device prefix yaffsfs_FindDevice() strips leading> slashes from both file name and the device prefix. This means it will> try to match "testfile" to "\0" which fails. > > Was this change introduced intentionally to prevent mounting under root?> > Regards> Evgeny Habinsky> > > > ------------------------------> > Message: 6> Date: Tue, 19 Aug 2008 14:03:33 +0530> From: "Amol Lad" <amol.lad@gmail.com>> Subject: Re: [Yaffs] Yaffs2 and MLC NAND with Block size 256K> To: "James Kehl" <jamesk@edmi.com.au>> Cc: yaffs@lists.aleph1.co.uk> Message-ID:> <8c675e9b0808190133o2fa8ca1dw9b79294463faf33d@mail.gmail.com>> Content-Type: text/plain; charset=ISO-8859-1> > >> So, are there any assumptions about block size for 2K page ? or 256K> >> block size will work as is..> >>> >> > The define YAFFS_CHUNKS_PER_BLOCK (from yaffs_guts.h) might be what> > you're looking for. That, or dev->nChunksPerBlock if you're using> > Yaffs-Direct.> >> > If you've got no way of knowing whether it's a 128K block size or a 256K> > block size, then you might be best off telling Yaffs to use a 256K block> > size, and tweaking your NAND driver to send two erase commands (so 128K> > NAND will behave like 256K NAND).> > It seems for yaffs2, these parameters are not set using #defines but> from mtd. Please see below snippet.> > yaffs_fs.c:> > if (yaffsVersion == 2) {> ....> ....> #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))> dev->nDataBytesPerChunk = mtd->writesize;> dev->nChunksPerBlock = mtd->erasesize / mtd->writesize;> #else> dev->nDataBytesPerChunk = mtd->oobblock;> dev->nChunksPerBlock = mtd->erasesize / mtd->oobblock;> #endif> nBlocks = mtd->size / mtd->erasesize;> > dev->startBlock = 0;> dev->endBlock = nBlocks - 1;> > So are above the only parameters ? or some other place also I need to verify.> > >> > James> > Thanks> Amol> > > > ------------------------------> > _______________________________________________> yaffs mailing list> yaffs@lists.aleph1.co.uk> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs> > > End of yaffs Digest, Vol 39, Issue 9> ************************************
_________________________________________________________________
Searching for the best deals on travel? Visit MSN Travel.
http://msn.coxandkings.co.in/cnk/cnk.do