[ECOS] FAT32 over NAND

Rutger Hofman rutger@cs.vu.nl
Tue Jan 20 15:40:00 GMT 2009


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:rutger@cs.vu.nl] 
> 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



More information about the Ecos-discuss mailing list