jffs2 problem - magic bitmask not found
Joakim Tjernlund
joakim.tjernlund at lumentis.se
Tue Oct 1 11:56:47 EDT 2002
>
> hello again :-)
>
> after lots of time playing around that thing put me really into madness...
>
> but could be i am doing something wrong!?
> please verify:
>
> i want to use jffs2 on my strongarmboard with 32Mb Intel strata flash.
> so i think things to do to get a working jffs2 partition are as follows:
>
> * built kernel with mtd and jffs2 support (i have done this ... kernel
> 2.4.18-rmk7 with patched in mtd-cvs)
>
> * built mtd-utils (successfully done -- crossbuilt for running on arm
> native)
>
> * create partitions on flash (i have done this via commmand line
> partition table parsing -- CONFIG_CMDLINE="root=/dev/ram0
> mtdparts=sa1100:256k(blob),256k(parm),1M(krnl),4M(rd),1M(krnl2),4M(rd2),-(jffs2)")
>
> * erase the jffs2 partition (done via "eraseall /dev/mtd6" -- also tried
> to delete it via jtag, so im sure theres no crap in after erasing...)
>
> * verify things ("cat /proc/mtd" and "mtd_debug info /dev/mtd6" -- okay,
> everything as expected)
>
> * create a jffs2 image (done via "mkfs.jffs2 -r foo -o jffs2.img -p -e
> 262144" -- image contains only a dummy file and is very small)
>
> * copy the image to the mtd partition ("cp jffs2.img /dev/mtd6")
>
> * mounting the jffs2 partition 1st time (works okay via "mount -t jffs2
> /dev/mtdblock6 /mnt/jffs2")
>
> * verify contents (okay "ls /mnt/jffs2" shows the dummy file)
>
> BUT THEN:
>
> * umount jffs2 part ("umount /mnt/jffs2") takes *very* long
JFFS2 is probaly erasing and putting a CLEANMARKER on all unused erase blocks
and will block until it's finished. I think this can be fixed.
What happens if you wait 5-10 minutes before you unmount the FS for the time?
While waiting, do a couple of 'df' commands and see if the Use field slowly increases to
100% and then drops back your expected usage.
>
> * immediately remount of the jffs2 part brings lots of error messages:
>
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040000:
> 0x2003 instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040004:
> 0x000c instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00040008:
> 0xdc6d instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080000:
> 0x2003 instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00080004:
> 0x000c instead
No idea why this happens.
>
> * but after that, "mount" shows the jffs2 part as mounted and i can see
> the dummy file again
>
> * now unmounting again -- now very fast!?
That's because JFFS2 already has marked all unused erase blocks with a CLEANMARKER.
Jocke
>
> i've tried again and again... no success.
>
> please who can help
> i need the fs for production use...
>
> thanks in advance ... Michael Palme
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
More information about the linux-mtd
mailing list