Hi again, I have a similar problem on my board but I think that I am to blame for it: On partition on my NANd is normaly used with YAFFS on it. In some cases I unmount that device and make a raw write on it (using ecc and yaffs oob format). After everything is done I erase the partition and the device can be remounted as an empty YAFFS file system. In case something goes wong and I try to remount the device YAFFS starts complaining about blocks that are not erased and most of the devices blocks get marked as bad. So I have to cheat to get my flash back. Is there a way to check the filesystem before mounting it. In my case I'd prefer discarding data instead of loosing blocks... Regards, Stephan > -----Original Message----- > From: Charles Manning [mailto:manningc2@actrix.gen.nz] > Sent: Mittwoch, 23. April 2003 22:18 > To: Paul Wong; yaffs list > Subject: Re: corrupt my NAND flash device > > > On Tuesday 22 April 2003 19:51, Paul Wong wrote: > > Hi all! > > i installed the YAFFS file system in the NAND flash (samsung 16MB). > > And test the reliability. I tried to copy a 5 MB file to the mounted yaffs > > (spare 8MB) directory ( i separated the device to 3 partition - 4MB 4MB and > > 8MB) . and then check the disk space, it is shown that it has 3 MB spare. > > Next step, I erased the file and copied another 5 MB file to it. The > > device > > said " no enough spare. Then I use the "mkyaffs" to format it, it is > > shown many bad block in the device. I checked the OOB[5] ( bad block flag) > > it is set to 0x00. Why? Why the yaffs set the health block to the bad block > > after > > erase file? Is the YAFFS not support big file ? any ideal? > > > Can you send the output of /proc/yaffs? > > YAFFS certianly supports large files and you should not be seeing problems > like these. > > As YAFFS writes data to the NAND it checks the results. If it encounters data > errors then it marks the block for retirement and you get ""**>>Block %d > marked for retirement" messages. Later on, during garbage collection, these > blocks will be marked as bad blocks. > > I suggest that while you figure the problem out you first disable the bad > block marking. You can do this by commenting out the two lines in > yaffs_RetireBlock() that write to NAND. Now the software will think these > blocks have been retired, but the NAND will not be marked. > > I have seen this problem before where the NAND read/write algorithms were not > working properly and YAFFS was thus seeing bad data and thought the blocks > were bad. > > You might, of course, really have a bad chip or bad soldering etc. You should > not have more than approx 1-2% bad blocks. > > -- Charles > > > --------------------------------------------------------------------------------------- > This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org). > If mailing list membership is no longer wanted you can remove yourself from the list by > sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" > (without the quotes) as the subject. > > --------------------------------------------------------------------------------------- This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org). If mailing list membership is no longer wanted you can remove yourself from the list by sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" (without the quotes) as the subject.