On Tuesday 20 April 2010 13:04:34 Charles Manning wrote: > We should put this in an FAQ... > > On Tuesday 20 April 2010 11:43:52 Guy Lancaster wrote: > > I built a file system image using mkyaffs2image v1.5 but but won't > > mkyaffsimage (the yaffs1 version) worked reasonably well because yaffs1 > tends/tended to be used with a single straight-forward flash format. > > With yaffs2, the actual binary layout is defered to the flash driver (mtd > in the case of Linux). This varies from device to device. > > As a result, the current mkyaffs2image is really a bit of a mess and needs > to be whittled and sandpapered to fit with your flash. > > > load. Without modifications I get numerous errors of the form: > > > yaffs tragedy: Bad object type, 2 != 3, for object 1059 at chunk 8242 > > > during scan > > > > I'm using a Linux 2.6.33.2 kernel with what I believe is the latest > > YAFFS source installed (specifically yaffs_fs.c,v 1.102) for a Samsung > > S3C2440 Arm target with 128MB NAND Flash (Samsung K9F1G08X0A). > > > > When I compile mkyaffs2image I get numerous warnings including a set > > > > of the form: > > > mkyaffs2image.c:249: warning: array subscript is above array bounds > > > > When I enable a number of the trace flags I get: > > > yaffs_ScanBackwards starts intstartblk 1 intendblk 1005... > > > block is bad seq 0 state 3 > > > Block scanning block 1 state 3 seq 0 > > > Block empty > > > block is bad seq 0 state 3 > > > > ... > > > > I'm wondering if the problem is that the mkyaffs2image.c needs to be > > configured for the MTD layout but I don't know how to find out what > > that layout is. > > Yes, that is the problem. The easiest is to just look at the driver and see > what flash layout it provides. Another approach is create a small partition, do some writes and then nand-dump and check through the bytes. -- Charles