[Yaffs-archive] yaffs bootloader/image builder support

Charles Manning manningc2@actrix.gen.nz
Wed, 3 Jul 2002 19:51:58 +1200


Hi yaffsers

After a discussion with Nick, I have started writing a make-image tool for 
yaffs. Comments and advice appreciated.

What this will do is as follows:

# mk-yaffs-img  dir   image_file

This takes the directory "dir" and recurses through it to build a yaffs image 
file containing all the files, hard links, symbolic (soft) links and 
directories such that "dir" becomes the root of the yaffs image. The image 
file is organised as a sequence of 528-byte (ie 512-byte data + 16-byte 
spare/oob) pages to be copied into the NAND.

The tool figures out hard links, so only one copy goes into yaffs.

Symlinks are not followed, but instead are copied into the image as a symlink.

Wierd objects (eg fifos and devices) are ignored.

It should be quite simple to bootload off yaffs. Two approaches:
1. yaffs is constructed in a very partitioned way: the Linux/VFS interface, 
the guts, the NAND interface. The guts is very portable and it should be 
quite simple to incorporate the guts into a bootloader so that one can simply 
initialise the guts and read files. Indeed, the yaffs test code talks 
directly to the guts, bypassing the VFS.
2. The "guts-less" way to bootload would be to write some code which just 
scans through the NAND searching for pages matching the file you want to load 
and slotting them into RAM at the right places. ie something of the form:

for(page=start; page <= end; page++)
{
       read page tags

       if(page.objId == the file we're loading)
       {
             copy page into RAM  at (page.chunkId - 1)*512;
       }
}

-- 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 yaffs-request@toby-churchill.org with the text "unsubscribe" 
(without the quotes) as the subject.