Sudeep, Thank you very much for your response. It is good to know that the issues we were observing were indeed to do a bug that has already been fixed. I am still seeing the problematic behavior I detailed in the second paragraph of my last post, though- after updating YAFFS2 to the latest version, attempting to mount what I know to be a properly written YAFFS2 partition results in that partition's contents being erased (save for the lost+found directory). Would you mind stepping me through your process for replacing the android yaffs2 code with the updated yaffs2 code? I will post the steps I take as well- if anything appears to be incorrect, please let me know. Get the latest YAFFS2 code: git clone git://www.aleph1.co.uk/yaffs2 Copy the YAFFS2 code into the android kernel rm -r android2.1/kernel/fs/yaffs2 cp -r yaffs2 android2.1/kernel/fs/ Change the YAFFS2 makefile to be compatible with Android /* If anything in this process is wrong, my guess is it's this */ cd android2.1/kernel/fs/yaffs2 vim Makefile.kernel replace yaffs.o with yaffs2.o replace all occurrences of yaffs-y with yaffs2-y cp Makefile.kernel Makefile Compile the updated kernel cd android2.1/kernel export PATH=$PWD/../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:/opt/ldp-2.10/bin:$PATH make ARCH=arm CROSS_COMPILE=arm-eabi- uImage -j8 When I load this image into my device, I am able to mount the OneNAND and copy my file system onto it. If I sync, unmount, and mount the file system again, though, the OneNAND shows that it contains only the LOST+FOUND directory. Thanks again for the help, Jordan Wills -----Original Message----- From: Sudeep K N [mailto:sudeepholla.maillist@gmail.com] Sent: Saturday, August 28, 2010 8:50 AM To: Wills, Jordan Cc: yaffs@lists.aleph1.co.uk; Kieran Cox; Lloyd, Jay; Charles Manning Subject: Re: [Yaffs] android boot issue with latest git source Jordon Wills, We too faced similar issues with data getting zeroed in the first two pages of a block following a bad block. Below is our analysis: The problem was the OOB length YAFFS2 was reading from MTD. On OneNand there was 20 bytes left free on OOB and YAFFS2 would request a read of 28 bytes of OOB. The OneNand MTD driver would read 20 bytes from the page requested and the rest 8 bytes from next page. If the next page happened to be marked bad we would get an ECC error which would cause the current page to be ignored as well. Hence the YAFFS2 mounted file would get corrupted (if this happens to be some of the core android jar files then it would result in android boot being stuck). The latest YAFFS2 code ignores reading the ecc portion of the struct (12 bytes) from OOB.(YAFFS2 any way does not calculate the ECC and is handled by the MTD driver). This way we only read 16 bytes from OOB which is less than oobavail and hence fixes the issue. Hope this helps you. Regards, Sudeep