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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev