CLEANMARKER node found at 0x007a4000 has totlen 0xc != normal 0x0
Ricard Wanderlof
ricard.wanderlof at axis.com
Tue Jun 12 02:08:48 EDT 2007
On Mon, 11 Jun 2007, Kevin Morfitt wrote:
> I'm using mtd-utils-1.0.0 on a KB9202B with a 32M NAND flash. /dev/mtd0
> is mapped as one partition:
>
> [root at KB9202B:~] cat /proc/mtd
> dev: size erasesize name
> mtd0: 02000000 00004000 "nand_fs"
From this we can see that the [erase]block size is 0x4000, as one would
expect for a NAND flash of this size.
> I create my jffs image using:
>
> mkfs.jffs2 --pad=0x4000 --eraseblock=0x4000 -l --root=kb9202_nfsroot/target_fs
> -o full_fs.bin
--pad should suffice, it should pad the image up to a multiple of the
block size.
> To program the NAND, when I'm mounted via NFS, I do:
>
> [root at KB9202B:~] flash_eraseall -j /dev/mtd0
> Erasing 16 Kibyte @ 1ffc000 -- 99 % complete. Cleanmarker written at
> 1ffc000.
> [root at KB9202B:~] nandwrite -f /dev/mtd0 /full_fs.bin
Since you are writting a preformatted image, and not just erasing the
flash to get an empty jffs2 partition, I would suggest not using -j to
flash_eraseall, in order to get a clean flash.
(Side note: Even if you did want to create an empty jffs2 partition, you
could skip the -j . The JFFS2 driver automatically erases and writes
cleanmarkers to blocks that lack them. It does take a bit of time on first
boot though, but as a kernel thread that runs in the background, so you
may not even notice it.)
> When I re-boot from MTD I always get lots of messages like "CLEANMARKER node
> found at 0x007a4000 has totlen 0xc != normal 0x0". The board still boots but
> after a few re-boots I end up getting other messages like:
AFAIR this is what happens when you have cleanmarkers in the image and you
are using nand flash. The solution as you suggest is to specify -n (or
--no-cleanmarkers) to mkfs.jffs2.
> I've seen the other threads on this subjects and tried using '-n' in my
> mkfs.jffs2 command but if I do that nandwrite fails with:
>
> [root at KB9202B:~] Input file is not page aligned
> [root at KB9202B:~] Data did not fit into device, due to bad blocks
I think this could be because you are erasing the flash with -j. The flash
isn't empty, and writing with nandwrite clashes with the data already
there. The 'not page aligned' bit is confusing though.
You can also specify -p (or --pad) to nandwrite to get it to pad the
image.
> I've read somewhere else that the "wrong data CRC" message might mean my
> erase size is wrong but I don't know what the erase size should be anyway.
You can see the erase[block] size in /proc/mtd, or in the data sheet of
the device (called 'block size' there).
So to sum up:
- Use -n and --pad to mkfs.jffs2 (or skip --pad here and specify it to
nandwrite instead).
- Avoid -j with flash_eraseall
/Ricard
--
Ricard Wolf Wanderlöf ricardw(at)axis.com
Axis Communications AB, Lund, Sweden www.axis.com
Phone +46 46 272 2016 Fax +46 46 13 61 30
More information about the linux-mtd
mailing list