ldoolitt at recycle.lbl.gov
Tue Oct 2 12:14:21 EDT 2001
I'm still fumbling around with MTD/JFFS2, but it does
seem to work. I have a file system mounted that is
persistent across reboots, which is of course the goal.
Out of 4M Flash on this board, I set aside 1 M for JFFS2.
The rest is supposed to be used for the kernel and initrd,
and I guess I can now program that directly from Linux
instead of from the boot loader.
I have just a few kBytes of junk in that test filesystem,
as confirmed by du:
/ # du /mnt/test
Imagine my surprise when I read the df output:
/ # df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram0 3835 2359 1476 62% /
/dev/mtdblock2 1024 328 696 32% /mnt/test
Tracing through the source, I discover this is because there
are JFFS2_RESERVED_BLOCKS_WRITE == 5 blocks reserved. The
Intel 28F320B3 I have has 64 kB erase blocks, so this
reservation accounts for 320 kB.
Maybe my use is atypical, and maybe 5 blocks is a theoretical
minimum. I don't want to sound like a complainer, either --
this file system certainly looks like it meets my needs.
I guess I just want to point out the superficial imbalance
between the amount of sweat people pour out on projects like
busybox to reduce code size by a few kB, when there is 320 kB
"just lying around" on any JFFS2 on a 64 kB erase block chip.
Maybe the 5-block reservation could be pointed out in the
documentation, and some explanation given as to why this
is reasonable. Other people may have less wiggle-room in
their design, and we wouldn't want them to be surprised
and get angry with embedded Linux.
More information about the linux-mtd