On Thu, 2010-02-04 at 12:01 -0800, Dunge wrote:
Hi,

We are working on a device with a NAND flash storage. It seems to be separated in four different block (/dev/mtdblock0-3), the first one is the mbr, the second is the kernel, the third is initrd and the fourth one is the operating system. The fourth block is mounted on boot with "mount -t yaffs2 -o rw /dev/mtdblock3 /mnt/root". It actually works pretty well, and we didn't see any data corruption even with hard power off.

Problem is, the actual mount takes about 27seconds of the 30sec booting time. This is because every time the system is powered off, the block isn't unmounted properly and it needs to check it's data for bad blocks, which is a good thing.

Just like any linux system, proper shutdown saves a world of hurt on the next reboot as the system would have to check all the filesystems mounted at the time of hard power off to make sure they are clean.  In YAFFS' case, it has to read the OOB area of every page in the partition to construct its structures.

If you (can) do a "reboot" or "shutdown -h now", it will properly unmount the filesystem which creates a checkpoint that speeds up the next mount immensely since the checkpoint holds the structures created by a full scan of the partition.

Still, the yaffs2 block is actually 512mb of size. We re-sized the operating system size and our application it we only need under 200meg of it. If we could have a way to re-size to block, or tell it to only mount part of the block, if would logically take half the time. Problem is, I don't have the simplest idea if this it even possible and how should I do it.

Thanks for any help!




Découvrez les photos les plus intéressantes du jour!
_______________________________________________
yaffs mailing list
yaffs@lists.aleph1.co.uk
http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs