On Tuesday 18 October 2005 02:19, Rakhi Rathi wrote:
> Hi all!
>
> I am having four partiton on NAND flash: boot, environment variable, kernel
> image and root FS ( YAFFS2) and boot loader needs to download kernel image
> and root FS using TFTP / FTP. How kernel image and root FS can be converted
> into YAFFS format and downloaded? What support I need to provide in boot
> loader?
There are really two parts to your question, I think:
1) Is there something like myyaffsimage for YAFFS2?
2) Is there a bootloader for YAFFS2 (ie. some code like yboot that will read a
boot image from a YAFFS2 partition).
The answer to both of these is currently No, but I can give some guidance on
these:
1) mkyaffsimage for yaffs1 was pretty straight formward (I wrote it in one
night), and various patches have been added. It still needs some tinkering
however. The main reason for this is that mkyaffsimage dumps a binary of the
file system data + OOB areas. Since this includes ECC etc, this is a bit of a
problem since mkyaffsimage does not know what ECC strategy you will really be
using. Thus, if you use mkyaffsimage you really need to fiddle a bit to make
sure the ECC bytes being put into the image file match what your hardware
will use.
The above problem is made worse for YAFFS2 because the page size is variable
and the AUTOPLACE makes the OOB stuff even more variable. Thus, perhaps the
best that can be offered is something along the lines of mkyaffsimage for
yaffs1 with even more disclaimers (ie. even more stuff that the system
integrator must configure. An alternative is to store the image in the
data+tags form and the mkyaffs or similar process then does the actual OOB
placement.
There is an alternative process that can be used in the interim to make an
image by using a target device:
a) Erase the flash on the target.
b) Mount it.
c) Use nfs or whatever to copy the required files onto the fs.
d) Unmount.
e) Use nanddump to suck an image off the nand.
f) Remove all bad blocks and empty blocks from the image.
This should leave an image file that can be sent to a manufacturing house etc
to load NAND parts for a shipping device.
2) There is currently no yboot equivalent for YAFFS2 in CVS. However,
achieving this is not particularly hard (though it is a bit more complex than
yaffs1). I see Nick Bane has done something at
http://husaberg.toby-churchill.com/balloon/releases/development/bootldr/bootldr35/
which might help.
-- Charles