public inbox for ecos-devel@sourceware.org
 help / color / mirror / Atom feed
From: Simon Kallweit <simon.kallweit@intefo.ch>
To: Rutger Hofman <rutger@cs.vu.nl>
Cc: "ecos-devel@ecos.sourceware.org" <ecos-devel@ecos.sourceware.org>
Subject: Re: Rutger's NAND flash now has a synth package
Date: Mon, 29 Jun 2009 06:42:00 -0000	[thread overview]
Message-ID: <4A48623F.2080500@intefo.ch> (raw)
In-Reply-To: <4A475994.7010203@cs.vu.nl>

Rutger Hofman wrote:
> Good afternoon list,
> 
> in the usual work storm in my office, there was a lull last week. I took 
> the opportunity to make a synthetic target for my NAND flash package. 
> Simon Kallweit had already started work on this (but put it on hold when 
> eCosCentric's NAND package came up); the level of emulation in his 
> implementation was the NAND chip with its set of wires.
> 
> I discussed this with Simon, and we agreed that the fastest way to a 
> synth package would be to make an integrated NFC (NAND flash controller) 
> and chip(s) package. This turned out to be straightforward. The NAND 
> chip(s) are emulated in the same way as in the NOR flash synth targets: 
> by memory-mapping a file to represent a chip.
> 
> The synth target I built thus has the following properties/limitations:
>  - it generically supports 'regular' large-page chips; there is no 
> support for small-page chips; there is also no real support (yet) for 
> ONFI chips, which differ from 'regular' chips in the interrogation. This 
> didn't seem to me to be a harmful limitation because there seem to be no 
> ONFI chips on the market (yet);
>  - it supports x8 and x16 chips (8 and 16 being the chip's bus width);
>  - it supports multiple chips connected to one NFC;
>  - NAND chip size is limited to max file size and to max mappable file 
> size. This limit could be extended by spreading the chip over multiple 
> files, if the need arises;
>  - like the NOR flash synth target, the NAND synth target is completely 
> linked into the target executable. There is no host auxiliary component;
>  - it lives under packages/devs/nand/nfc_synth/.
> 
> I tested this synth target with an (emulated) x8 and an x16 chip, and 
> also with a configuration with both an x8 and an x16 chip. YAFFS 
> requires one chip, but my Abstract NAND Chip layer hides the presence of 
> multiple chips so I could run YAFFS tests that use a filesystem that 
> spreads over both chips. Caveat: the page/spare/block size of both 
> emulated chips was identical. I didn't (yet) test with chips that differ 
> in those respects.
> 
> A few small bugs came out, related to x16 (I erroneously divided by bus 
> width somewhere), and related to ANC-to-physical address calculations 
> for multiple chips.
> 
> Reflecting discussion on the eCos lists, I also changed the package 
> names from flash_nand/ to nand/, and moved NAND flash device drivers 
> from under devs/flash to devs/nand/.
> 
> The code is published in the same place as before:
> http://www.cs.vu.nl/~rutger/software/ecos/nand-flash/
> 
> I appreciate comments and usage.

That sounds like good news. Soon I'll have to do a little studies on 
flash filesystems for our platform, so I think I'll port the UFFS 
filesystem to eCos and write the necessary device drivers for the STM32 
family. I think your framework just got a little more attractive with 
the recent changes.

> An aside: I run Ubuntu. At first, I couldn't run synth at all. 
> Applications would crash, and gdb would crash on the application too! 
> After some list searching, I found out that this probably is 
> Ubuntu-specific. We need to include -fno-stack-protector in the 
> GLOBAL_CFLAGS configure flag. Request: cannot this be automated for 
> synth building? My guess is that it will not harm on systems other than 
> Ubuntu, and it will save Ubuntu users effort.

I observed the same bug. But I started using eCosCentrics i386 toolchain 
for my synth builds which works fine with standard configuration. It 
will also make sure that I don't run into GCC specifics from time to 
time, as  the distro's toolchain is updated quite often.

Simon

  reply	other threads:[~2009-06-29  6:42 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-28 11:46 Rutger Hofman
2009-06-29  6:42 ` Simon Kallweit [this message]
2009-06-29  7:52   ` Sergei Gavrikov
2009-06-29 11:32   ` Rutger Hofman
2009-06-29  7:24 ` GCC stack protector with linux synthetic target John Dallaway
2009-06-29  7:50   ` Andrew Lunn
2009-06-29  9:50   ` Bart Veer
2009-06-30  8:55     ` John Dallaway

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A48623F.2080500@intefo.ch \
    --to=simon.kallweit@intefo.ch \
    --cc=ecos-devel@ecos.sourceware.org \
    --cc=rutger@cs.vu.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).