Hello, I am not sure about NAND flash support of eCos Open Source Repository. I found a few hints in the source code for NAND flash (mainly in jffs2 implementation), but nothing in general! So I am not sure, if eCos is fully supporting NAND flashes? Is there an open source driver for NAND flashes available, which implements all aspects for NAND support (bad block management, wear levelling,...), which is usable from higher level drivers (fs fat/jffs2) ? Thanks Richard Richard Rauch www.itrgmbh.com -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
Last time I tried it, the code was too buggy to try to use in an actual product. That was about 2 years ago. Frank On 12/15/2014 09:52 AM, Richard Rauch wrote: > Hello, > > I am not sure about NAND flash support of eCos Open Source Repository. > > I found a few hints in the source code for NAND flash (mainly in jffs2 > implementation), but nothing in general! > So I am not sure, if eCos is fully supporting NAND flashes? > > Is there an open source driver for NAND flashes available, which implements > all aspects for NAND support (bad block management, wear levelling,...), > which is usable from higher level drivers (fs fat/jffs2) ? > > Thanks > > Richard > > Richard Rauch > www.itrgmbh.com > > > > -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
On Mon, Dec 15, 2014 at 01:38:14PM -0500, Frank Pagliughi wrote: > Last time I tried it, the code was too buggy to try to use in an > actual product. That was about 2 years ago. Take a look here for instructions and source to the tested, documented and product grade NAND library and optional log-structured, wear-levelling, bad block managing, error correcting and fast mounting NAND filesystem: http://www.ecoscentric.com/devzone/yaffs.shtml Both the NAND library epk and upstream YAFFS port have recently been updated and re-validated. There are also drivers contributed by Spansion available on ecos-patches. Daniel %<---------------------------------------------------------------------- Daniel Morris - Sales & Marketing Director eCosCentric - The eCos and RedBoot experts Tel: +44 1223 245 571 - info@eCosCentric.com DDI: +44 1269 591 171 - danielm@eCosCentric.com -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
Hello All, many thanks for all the answers! So, as I understand, full NAND functionality is implemented inside YAFFS only? As I understand, beside user data YAFFS is writing additionally control information to the Flash (like FAT)? But, when we have only NAND on board, how we can boot from NAND? ROM bootstrap loader from uController is expecting simple Binary image. Thanks Richard Richard Rauch email: rrauch@itrgmbh.de _______________________________________________ ITR GmbH Informationstechnologie Rauch web: http://www.itrgmbh.de email: info@itrgmbh.de Büroaddresse: Business Terminal West, 3. Stock Muggenhofer Strasse 136 90429 Nürnberg phone: +49 (0) 911 / 32 609 86- 8 Sitz: Schnepfenreuther Hauptstrasse 27b D-90425 Nuernberg Geschaeftsfuehrer: Richard Rauch Handelsregister: Nuernberg HR B 21676 USt-Id Nr. : DE228051873 _______________________________________________ > -----Ursprüngliche Nachricht----- > Von: ecos-discuss-owner@ecos.sourceware.org [mailto:ecos-discuss- > owner@ecos.sourceware.org] Im Auftrag von Daniel Morris > Gesendet: Montag, 15. Dezember 2014 23:20 > An: Frank Pagliughi > Cc: ecos-discuss@ecos.sourceware.org > Betreff: Re: [ECOS] General NAND Flash support? > > On Mon, Dec 15, 2014 at 01:38:14PM -0500, Frank Pagliughi wrote: > > Last time I tried it, the code was too buggy to try to use in an > > actual product. That was about 2 years ago. > > Take a look here for instructions and source to the tested, documented and > product grade NAND library and optional log-structured, wear-levelling, bad > block managing, error correcting and fast mounting NAND filesystem: > > http://www.ecoscentric.com/devzone/yaffs.shtml > > Both the NAND library epk and upstream YAFFS port have recently been > updated and re-validated. There are also drivers contributed by Spansion > available on ecos-patches. > > Daniel > > > %<---------------------------------------------------------------------- > Daniel Morris - Sales & Marketing Director > eCosCentric - The eCos and RedBoot experts > Tel: +44 1223 245 571 - info@eCosCentric.com > DDI: +44 1269 591 171 - danielm@eCosCentric.com > > > -- > Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos > and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
On 17/12/14 03:53, Richard Rauch wrote: > So, as I understand, full NAND functionality is implemented inside YAFFS > only? YAFFS is implemented on top of the eCosCentric NAND layer. The eCos port patches YAFFS into the file I/O mechanism where it is available alongside FAT, jffs2 and others. The NAND layer is independent of YAFFS - you can find a recent version of its interface at http://hg-pub.ecoscentric.com/nand-ecoscentric/file/17169b710e76/packages/io/nand/current/include/nand.h > As I understand, beside user data YAFFS is writing additionally control > information to the Flash (like FAT)? That is correct. However, YAFFS has been specially designed for NAND flash - there is no file allocation table or superblock, instead it is log-structured. This is part of its strategy for avoiding wearing out individual flash cells, which can be an issue with NAND parts. > But, when we have only NAND on board, how we can boot from NAND? > ROM bootstrap loader from uController is expecting simple Binary image. This is necessarily a board-specific question, but in general terms: Some CPUs contain a ROM bootstrap that is just clever enough to load a small bootstrap from a fixed location on a NAND device. This code in turn knows how to load the next stage. You might for example choose to put RedBoot there, which you had carefully configured with YAFFS and your chosen partition geometry. Your final application image would then reside on the YAFFS filesystem and you could even script RedBoot to automatically load and execute it. Alternatively, there are some NAND parts that offer a NOR-like (i.e. direct read) interface to limited number of pages. These are intended for just this purpose -- to store a minimal bootstrapper. Regards, Ross (Full disclosure: I work for eCosCentric; I wrote their NAND layer and did the YAFFS port.) -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss