[Yaffs] Re: Use YAFFS in RTOS

Austin Chen austin at chen.name
Wed Aug 24 00:31:29 BST 2005


Please give me some introduce. If I want to port the YAFFS Direct to Nucleus Plus RTOS, which documents should I read first? How about the license type and license fee and when I need to license it?

Austin Chen

> I'll add a few comments to what Wookey has written.
> 
> On Wednesday 24 August 2005 00:56, Wookey wrote:
>> +++ Austin Chen [05-08-23 19:52 +0800]:
>> > Dear All,
>> >
>> >     I am new to here. I have a design use the NAND Flash File System
>> > designed by myself. It has bad block management but lack of wear
>> > leveling. It also use a non-standard FAT to store files. Now I want to
>> > improve my design and incorporate a full-featured Flash File System.
>> >
>> > Is the YAFFS or YAFFS2 suitable for embedded design with RTOS?
>>
>> Yes. The YAFFS Direct variant is designed with this purpose in mind. You
>> just need to provide a few functions (read/write/inet/erase NAND, get time,
>> get/drop mutex).
>>
>> It has been used with pSOS and Vxworks and at least one in house system.
>>
>> > My design use Nucleus Plus RTOS and Nucleus File system.
>>
>> A port for this OS has not yet been done (SFAIK). You will need to do some
>> work to merge it in. If Nucleos is not GPL-compatible then you will need to
>> get a licence from Aleph One to use the code in a non-GPL context.
> 
> The actual OS porting is almost trivial. You just need to write a few simple 
> functions to provide a locking semaphore etc.
>>
>> > The Nucleus File is used to access a USB Disk. Since there already has a
>> > File System, I hope the YAFFS can be used as a pure FTL (Flash
>> > Translation Layer) to make the NAND Flash as disk like block device. Is
>> > it possible to split FTL and File System from YAFFS?
>>
>> I don't think this is possible. YAFFS is a whole filesystem, and presents a
>> posix-style interface to the OS (open, read, write, rename etc). This
>> should be reasonable easy to integrate into nucleous. Trying to just use it
>> as an FTL/block device is really the wrong tool for the job. Charles may
>> wish to comment further here?
> 
> Many flash implementations (eg. DiskOnChip + FAT/ext2/... or SmartMedia + FAT) 
> use a regular file system and wrap up the NAND to look like a block device. 
> Most block devices (eg. your hard drive) are thin software layers over a true 
> block device. When you do this with flash, you're telling a pack of "lies" 
> and quite a bit of effort is required to keep the charade going.  This 
> approach has various limitations, particularly with regard to reliability and 
> write performance.
> 
> YAFFS does not use a block device, but is "flash friendly". It expects to be 
> working with NAND and exploits the NAND-ness in the way the file system 
> works. So, there are no seperate FTL + file system layerings that can be 
> separated out.
> 
> You could, however, use YAFFSs under the hood for a "block driver" ie. write 
> an FTL on top of YAFFS, then run FAT on top of that. However, it is not clear 
> trhat this would really get you anything very useful (apart from the academic 
> exercise).
> 
> It seems though that your main goal is to try reduce memory footprint by only 
> having one FS. I'd suggest doing a trial build of YAFFS Direct to see what 
> the footprint implications would be. 
> 
> Please feel free to discuss this further on or off list.
> 
> -- CHarles
> 
>


More information about the yaffs mailing list