Author: Jason Date: To: yaffs Subject: Re: [Yaffs] Can someone help me mount an existing yaffs file
Eivind Tagseth <eivind.tagseth <at> norbit.no> writes:
>
> Den 04. okt. 2013 00:40, skrev Jason:
> > All 3 file systems are (ext2) Montavista Linux 3.3.1 running a 2.4.18 or
> > 2.4.20 kernel (I don't remember and I lost my notes). I was only
> > successfully able to mount the ramdisk. The 2 yaffs files can "mount" but
> > all that is in the directory is a lost+found folder.
>
> This looks like what happened to me when trying to upgrade to the latest
> version of yaffs.
>
> We were using the yaffs kernel config option:
>
> YAFFS_DISABLE_TAGS_ECC set to "y"
>
> When upgrading to the latest version of yaffs, this option is still
> available in Kconfig, but the code to support it is gone, it is now only
> available as a mount option.
>
> Since this config option was missing when the new version of yaffs
> mounted my filesystem, yaffs interpreted all my blocks as bad, and
> erased everything, leaving only a lost+found folder. This happened even
> if the filesystem was mounted read-only.
>
> Perhaps this is what's happening to you as well? If yaffs expects a
> different ECC layout/config than it gets, then this matches the
> behaviour I've seen.
>
> Eivind
I wanna apologize since I don't quite follow your response. I'm not very
savvy when it comes to kernels and filesystem stuff. Which is why this
project has been so difficult for me, I'm very persistent though!
But, I think I know exactly what the problem is. I did all of this using
Ubuntu 12.04 Server Vagrant Base. When I do a nandwrite of xlib.yaffs to
the /dev/mtdblock0 or /dev/mtd0, it writes a total of 541 blocks. When I
upload the files on the register it only writes a total of 526 blocks which
means the nandsim is 512 bytes @ 32 pages per block which equals 541 when
the register is actually at 528 bytes @ 32 pages per block which equals 526
blocks. Nandsim doesn't simulate the 16 byte spare size does it? I'm
pretty sure that is my problem and if I could get it to simulate the spare
size then hopefully, when mounted, there should be more than a lost+found
folder.
Here are the commands I used:
sudo modprobe nandsim first_id_byte=0x20 second_id_byte=0x36
sudo nandsim /dev/mtd0 /xlib.yaffs
>From what I've read online, that modprobe nandsim is supposed to simulate a 64mb nand with 512 byte page.
I tried all combinations of arguments to no avail. The majority of the
arguments (-y or -n or -o) gave the error - MEMSETOOBSEL: inappropriate
ioctl for device.
When I add -p as an argument, either alone or paired with other arguments,
it successfully writes data to 541 blocks.