General NAND Flash support?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

General NAND Flash support?

Richard Rauch
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

Reply | Threaded
Open this post in threaded view
|

Re: General NAND Flash support?

Frank Pagliughi
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

Reply | Threaded
Open this post in threaded view
|

Re: General NAND Flash support?

Daniel Morris
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 - [hidden email]
  DDI: +44 1269 591 171 - [hidden email]


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply | Threaded
Open this post in threaded view
|

AW: [ECOS] General NAND Flash support?

Richard Rauch
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: [hidden email]
 
_______________________________________________

ITR GmbH Informationstechnologie Rauch

web:   http://www.itrgmbh.de
email: [hidden email]
  
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: [hidden email] [mailto:ecos-discuss-
> [hidden email]] Im Auftrag von Daniel Morris
> Gesendet: Montag, 15. Dezember 2014 23:20
> An: Frank Pagliughi
> Cc: [hidden email]
> 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 - [hidden email]
>   DDI: +44 1269 591 171 - [hidden email]
>
>
> --
> 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

Reply | Threaded
Open this post in threaded view
|

Re: AW: [ECOS] General NAND Flash support?

Ross Younger-4
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