JFFS2 FS not writeable

Ron Madrid ron_madrid at sbcglobal.net
Thu May 29 10:32:49 EST 2008


So I found something that looks suspicious to me. 
This may not be a fsl_elbc_nand.c problem, but a more
general problem.

Shortly after mounting the root filesystem, which is a
jffs2 on a large page NAND device (my board is based
on the MPC8313) the kernel appears to read the device
starting just past the point defined by the 0x1985 . .
. markers in the jffs2 filesystem, through the end of
the device as defined by the dtb.  More specifically
in my device, the file system is approximately
0x200000 and resides at 0x400000 with the end of the
device being 0x2000000.  As it does this it is then
writing the oob data into these blocks (0x600000 -
0x1fe0000).   The value that it was writing into the
first 4 bytes of the oob are 0xff198520.  This was
problematic as the 0x20 was being placed into the
large page NAND device bad block location (0x0). 
Given that there is a 0xff at the msb of the oob data,
could this possibly be a byte swapping issue?  I don't
see though how this could be a problem in the large
page NAND but not the small page NAND.  I verified
this by writing 0xffffffff in to the first 4 bytes of
the oob data to ensure that 0xff was written into the
bad block location.

In the function fsl_elbc_write_buf:
(*(unsigned int *)buf) = 0xffffffff;

I know that this isn't a fix, but I don't know where
this problem comes from and also I don't know the
exact flow of the NAND device processes.

I would be more than happy to investigate further and
provide a patch if someone could point me in the right
direction.

Let me know if I'm off base here, but I think this is
where my problem is.

Ron Madrid



More information about the Linuxppc-dev mailing list