Author: Jacob Dall Date: To: yaffs Subject: [Yaffs] Need help replacing yaffs1 by yaffs2
Please, I need some help.
I want to replace yaffs1 direct with yaffs2 direct, but I've some trouble.
I've compiled the code with the CFLAGS as defined in the direct/makefile: CONFIG_YAFFS_DIRECT, CONFIG_YAFFS_SHORT_NAMES_IN_RAM and CONFIG_YAFFS_YAFFS2. I'm a bit in doubt about the last define - is it ok setting it when one wants to do what I want?
I've completed a low-lewel check of the flash, using my implementation of the interface functions in direct/yaffs_flashif.c. The test is done by writing some well-known values to the data and spare area of each chunk, reading it back and verifying byte by byte. I do not allow any diffs. It runs to perfection - I get no errors at all.
Now, starting up yaffs (of course I did erase all blocks after the low-level check was completed), mounting a device and opening, writing and closing some files, for each file I get some 'ecc error unfixed' notes, and a block is marked for retirement. I don't get that, taking into consideration that my previous test showed no issues at all.
Digging into the code, I can't seem to locate the spot where data ecc is calculated (beyond some code not being active, either by #ifdef 0 or //).
I tend to believe that what I want to achieve is either unsupported or untested. Am I right?
Still, I don't get it - where is the data ecc supposed to be calculated?