On Wednesday 01 September 2010 03:16:52 Wills, Jordan wrote: > 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? The patch-ker.sh script is simplistic. It has two steps: * Modify fs/Kconfig to include fs/yaffs2/Kconfig. If that is already there then warn and do nothing. * Add the fs/yaffs2 directory. If that is already there then warn and do nothing. What you need to do is get rid of the old code first by either: rm -rf ~/projects/android2.1/kernel/fs/yaffs2 -or- mv ~/projects/android2.1/kernel/fs/yaffs2 \ ~/projects/android2.1/kernel/fs/yaffs2.prev > > 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.1 > >0/ 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