[Yaffs-archive] Re: YAFFS: mkyaffsimage etc

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: yaffs
Subject: [Yaffs-archive] Re: YAFFS: mkyaffsimage etc

In response to Chris' questions...

> Hi Charles,
>
> I don't want to bother you, but I couldn't subscribe to the YAFFS mailing
> list and I'm looking for information. After sending a request for
> subscription, I get a email asking me to confirm. When I confirm with
> another email it does not appear to confirm my subscription (no email
> returned).
>
> Is there a problem with the list? I tried it 2 weeks ago with the same
> result. Is the right list?


I forwarded this to Nick Bane, the list admin to sort out.

> In case you're curious, I've got the YAFFS driver working on our kernel
> (PPC linux 2.4.21-pre2). I've mounted a YAFFS partition, used the
> utilities to format the partition, copied a root filesystem to the
> partition and booted the root filesystem from that partition.
>
> I've also tried the mkyaffsimage utility but have not had any success using
> that yet. I think that I might have endian problems (use x86 mkyaffsimage
> to build the filesystem). The device itself is big endian (PPC 405EP
> embedded processor). Are you aware of the current YAFFS code working on a
> big endian platform?


YAFFS will work fine on big endian, but the mkyaffsimage is endian dependent
(ie. generating little endian images on an x86).
Just fiddle with myjaffsimage to do endian conversions. SHould be quite
straight forward.

I would suggest you do this by adding a flag to optionally generate a little
or big endian image file. If you send me a patch, I will integrate it in CVS

:-).
:
> At this point I'm trying to write code in the bootloader to flash a YAFFS
> filesystem to a NAND partition.  I've looked at the image produced by
> mkyaffsimage.  It appears to be of the following format:
> +-----------------+
> +                 +
> +  512 bytes      +
> +   IN band       +
> +                 +
> +-----------------+
> +  16 bytes OOB   +
> +-----------------+
> I haven't found any information on what is needed to integrate the YAFFS
> support (just flashing the filesystem), into the bootloader.  Can I write
> the pages/blocks out of order?  Is there any modifications required to the
> OOB or will a straight copy of the pages/blocks and OOB into the NAND flash
> work?


You can use mkyaffs, specifying an optional image file (as generated by
mkyaffsimage). This will "format" the yaffs partition and copy on the image.

You can have a look at the mkyaffs code to see how it does the format/loading
and copy yhis idea into your bootloader. Nick Bane's bootloader for Balloon
can also do the image loading.

Basically YAFFS is very simple:
* To format a partition, just erase all the blocks.
* To load the image, just copy the image file onto the partition, skipping
bad blocks.

YAFFS data is completely position neutral and does not care what blocks you
use and in what order the pages are written. There is one rule:
* A block should be written seuquentially tarting from the first page (ie.
there should be no empty pages between or before used pages).

> Thanks for your help, I will post this to the YAFFS mailing list once I get
> that working. If you don't have time to look at this, please ignore it.


Sure thing. It gives me a buzz seeing people use YAFFS.

-- Charles

-------------------------------------------------------

---------------------------------------------------------------------------------------
This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org).
If mailing list membership is no longer wanted you can remove yourself from the list by
sending an email to with the text "unsubscribe"
(without the quotes) as the subject.