Charles, I did attempt to use the patch-ker.sh script at first, but received erroneous output when I tried to run it. To be more specific: ./patch-ker.sh c ~/projects/android2.1/kernel Resulted in the following output: ~/projects/android2.1/kernel/fs/Kconfig already mentions YAFFS, so we will not change it ~/projects/android2.1/kernel/fs/yaffs2 exists, not patching When I first received this message, I assumed that it was because my kernel already had YAFFS implemented in it, albeit an out of date version of YAFFS. Should patch-ker.sh be able to update an old version of YAFFS as well as being able to add YAFFS to a kernel that doesn't already include it? If so, did I call patch-ker.sh incorrectly, or is there an issue with patch-ker.sh that caused it to not realize that my kernel/fs/yaffs was out of date? Thanks, Jordan Wills -----Original Message----- From: Charles Manning [mailto:manningc2@actrix.gen.nz] Sent: Monday, August 30, 2010 7:14 PM To: yaffs@lists.aleph1.co.uk Cc: Wills, Jordan Subject: Re: [Yaffs] android boot issue with latest git source Glad to see you fixed this. I strongly recommend that you do not use such a manual process to patch in a new version of yaffs2. I suggest that you rather use the patch-ker.sh script. rm -f /kernel-tree/fs/yaffs2 (or mv /kernel-tree/fs/yaffs2 /kernel-tree/fs/old-yaffs2) cd new-yaffs2 ./patch-ker.sh c /kernel-tree -or- ./patch-ker.sh l /kernel-tree c will copy, l will create symbolic links. -- Charles On Tuesday 31 August 2010 02:38:29 Wills, Jordan wrote: > 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 > > _______________________________________________ > yaffs mailing list > yaffs@lists.aleph1.co.uk > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs