I am currently trying to get a 2.6.19 kernel working on a Routerboard RB112 (and the rest of the 100 series). The RB112 (like the RB532) has a boot loader which loads an ELF file which comes from one of two places, it can be downloaded from a TFTP server (I have this working) or from the onboard NAND chip, the first 4MB of which are assumed to be a Yaffs partition containing a single file called kernel. The netbooted kernel has NAND support for the chip, based on the code that Microtik produced for 2.4 kernels, and updated to the 2.6.19 MTD layers, which seems to work. I can use hexdump to look at /dev/mtd0 and it looks as I would expect, I can use mtd erase and it clears apparently correctly. The problem comes when I try to mount the partition. If I use the same options that I used to use on the RB532 on a 2.6.16 kernel (which included the option for Yaffs to do the ECC) then every block if marked as bad during the mount. If I turn off the Yaffs ECC option then it mounts OK, but if I then write the new kernel (and I can reboot and the kernel yaffs code will mount the partition again and the kernel is intact) and tell the RB112 boot loader to load from the NAND partition then the boot loader complains that it can not find a kernel file to load. Reading around on Google I came across some suggestions that the problem was due to changes in the MTD layer taking over from the Yaffs layer things like ECC and control of the OOB blocks. My problem is that I need to use whatever NAND format the boot loader is going to use - I can not change that, I can change what the kernel does. I also noticed that I was using a version of Yaffs which was not quite up to date, so downloaded the latest version and in there I saw that there were two versions of one file which looked relevant. The file in question is yaffs_mtdif2.c, one copy is in the mail fs/yaffs2 directory and the other is in a patch directory. Also in the patch directory is a README which contains the following enigmatic paragraph:- "Right now there is only one patched file, yaffs_mtdif2.c. This has been patched with a tweaked version of "Sergey's patch" and typically makes a stock mtd work properly." Having now real history with Yaffs I do not know what Sergey's patch is, and whether this version is what I need. Can anyone suggest whether this is relevant to my situation? If not, can anyone suggest what I should do in order to achieve my aim of having something that the boot layer can recognise. David