Himanshu Patel wrote:
Okay...Thanks...
YAFFS2 is not a possible option...As device should also be able to access on
Windows PC using mass storage interface...
Is this a NAND memory smart-card (MMC, SD, USB flash drive or whatever)?
These usually come with an FTL on-board, which offers a file system like
FAT32. You need no Flash code for that.
Is this a raw flash? So, how is it going to be accessed from Windows if
the file system is completely in software?
Can we use NFTL (NAND flash translation layer) support provided by Linux?
I am no Linux expert, but my feeling is that NFTL is very old, and that
flash handling is done through UBI/UBIFS. The UBIFS link in my message
below seems rather informative.
Rutger
Regards,
Himanshu Patel
-----Original Message-----
From: Rutger Hofman [mailto:[email protected]]
Sent: Tuesday, January 20, 2009 8:15 PM
To: Himanshu Patel; 'eCos Discuss'
Subject: Re: [ECOS] FAT32 over NAND
Andrew Lunn wrote:
On Tue, Jan 20, 2009 at 07:38:02PM +0530, Himanshu Patel wrote:
Hi,
We want to have FAT32 file system over NAND flash. Is it possible? What
approach should we take for developing the same?
If you look back in the archive, last year there was some work to get
YAFFS on NAND working. I would suggest trying to build on the NAND
infrastructure that provided.
I implemented basic NAND flash functionality and a wrapper layer for
YAFFS2, a file system designed specifically for NAND flash. For an alpha
release (and maybe later on, beta release) of my code, see:
http://www.cs.vu.nl/~rutger/software/ecos/nand-flash/
If you want FAT32, you will have to create (port from elsewhere?) a FTL
(Flash Translation Layer) that implements lots of stuff to make FAT32
behave in a NAND-compatible way. For a discussion of this in the context
of UBIFS (the latest-greatest Linux NAND flash file system), see:
http://www.linux-mtd.infradead.org/doc/ubifs.html#L_raw_vs_ftl
An FTL should minimally provide:
- wear levelling
- garbage collection for released blocks
- bad block management
- write caching because programming has to be consecutive and in at most
a few operations.
YAFFS2 implements all this already. Is using YAFFS2 an option, maybe?
Rutger Hofman
VU Amsterdam
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss