On 04/12/10 23:04, Charles Manning wrote:
> On Tuesday 13 April 2010 02:45:43 yaffs@piments.com wrote:
>> On 04/12/10 03:45, Charles Manning wrote:
>>> On Sunday 11 April 2010 06:51:43 yaffs@piments.com wrote:
>>>> Re:
>>>>
>>>>
>>>>
>>>> Author: yaffs@piments.com
>>>> Date: 2010-04-05 21:41 +200
>>>> To: YAFFS ML
>>>> Subject: [Yaffs] yaffs2 on 2.4 vs yaffs2 on 2.6
>>>> Hi,
>>
>> Hi Charles , thanks for the reply.
>>
>>>> I am in the porcess of updating an older yaffs2 partition on a 2.4
>>>> kernel to a recent 2.6 kernel build with the following yaffs code.
>>>>
>>>> # cat /proc/mtd
>>>> dev: size erasesize name
>>>> mtd0: 00020000 00020000 "TS-BOOTROM"
>>>> mtd1: 07d00000 00020000 "Linux"
>>>> mtd2: 002e0000 00020000 "RedBoot"
>>>> # cat /proc/yaffs
>>>> YAFFS built:Aug 16 2009 21:32:17
>>>> $Id: yaffs_fs.c,v 1.79 2009/03/17 01:12:00 wookey Exp $
>>>> $Id: yaffs_guts.c,v 1.82 2009/03/09 04:24:17 charles Exp $
>>>>
>>>>
>>>> If I mount /dev/mtdblock1 under a nfs boot of the 2.6 kernel and fsystem
>>>> I get rubbish. Some files seem to be interpreted as directories and the
>>>> result is chaos.
>>>
>>> First off, I'd suggest you try to remove variables. Try doing this
>>> without nfs first.
>>>
>>> I expect the difference is in changes in the mtd layer. The yaffs<-->VFS
>>> connection should be fine.
>>
>> I don't have vfs but this would seem to merely to replace one variable
>> with a new, unknown variable. Indeed I don't quite see the point.
>
> You most certainly do have vfs. It is the part of the kernel that habdles all
> the file systems.
>
>>
>> I think maybe I didn't explain it clearly enough.
>>
>> I boot a 2.6.29 kernel loaded via http. I give the kernel an nfsroot.
>> Once the system is up I login via serial connection and/or ssh over
>> ethernet.
>>
>> From this console I mounted /dev/mtdblock1 as stated.
>>
>> lt showed that it was trying to interpret some data files as directory
>> files. I did a hasty reboot.
>>
>>>> Fortunately it did not hose the fs.
>>>>
>>>> I was able to make a tarball of the fs by nfs boot to 2.4 and an fs
>>>> image close to that in flash. Here mount /dev/mtdblock/1 is OK.
>>>>
>>>> The earlier version is signed:
>>>>
>>>> $ cat /proc/yaffs
>>>> YAFFS built:Jun 6 2006 14:14:22
>>>> $Id: yaffs_fs.c,v 1.2 2006/02/14 18:20:41 michael Exp $
>>>> $Id: yaffs_guts.c,v 1.1 2006/02/09 21:08:29 michael Exp $
>>>>
>>>> $ cat /proc/mtd
>>>> dev: size erasesize name
>>>> mtd0: 00020000 00020000 "TS-BOOTROM"
>>>> mtd1: 07d00000 00020000 "Linux"
>>>> mtd2: 002e0000 00020000 "RedBoot"
>>>>
>>>> $ cat /proc/partitions
>>>> major minor #blocks name
>>>>
>>>>
>>>> 31 0 128 mtdblocka
>>>> 31 1 128000 mtdblockb
>>>> 31 2 2944 mtdblockc
>>>>
>>>> It seems the two versions have different nomenclatures for the block
>>>> devices.
>>>>
>>>>
>>>> Should it be possible to mount this partition with the 2.6 yaffs2 code?
>>>
>>> Yes, so long as the mtd is good.
>>
>> What do you mean by "the mtd" here?
>> The hardware? Yes it is still functional under 2.4
>
> The mtd layer is the layer that handles flash in the kernel. Google 'Linux.
> mtd'
>>
>> The mtd driver in the newer kernel? Well that's this issue I need to
>> resolve before reformatting the device.
>>
>> The renaming should be just an internal device convention in the kernel
>> . It makes me very jittery when I see it makes total pig's ear of
>> mounting the device.
>
> It the two mtds are reading the spare area differntly then yaffs will not be
> getting the tags. Wrong tags == wrong files.
>>
>>>> What version of flash_erase should I use to clear the partition prior to
>>>> installing the new fs image?
>>>
>>> Use the one that matches the kernel you're using.
>>>
>>>> Any comment on this issue please . I need to install the new fs image
>>>> but do not want to run this risk of bricking the device with
>>>> incompatible tools screwing up the flash structure.
>>>>
>>>> If hose the reboot partition through something going wrong I'll have a
>>>> bill of $200 for a new board or an RMA and postage nearly as dear.
>>>>
>>>> Is there a known incompatibility between these two vintages of yaffs2
>>>> code ? Is the name change a problem?
>>>
>>> I would expect it to still boot, so long as the mtd in the new kernel
>>> matches the old kernel.
>>>
>>>> What tools should I use to clear the old partition? Before installing
>>>> the new fs?
>>>
>>> flash_eraseall.
>>
>> Thanks, I realise that, what I meant was which version. Since the 2.6
>> mtd tools can't even mount the image correctly I was concerned that it
>> may misread something else and stomp another part of the device.
>>
>> Does it make any sense to boot the 2.4 image first and use it compatible
>> flash_eraseall then reboot 2.6 and run its version of flash_eraseall ?
>
> You could do that but flash_eraseall should do a pretty good job of erasing
> regardless of version.
>
>>
>> #on 2.4 kernel nfsroot using manufacturer's fs image:
>> mount -t yaffs2 /dev/mtdblock/1 /mnt/mtd1
>>
>> ### this is very slow , over a minute to mount!
>>
>> $ ls /mnt/mtd1
>> bin fastboot lib proc tmp www
>> dev home lost+found root usr
>> etc initrd mnt sbin var
>>
>> $ mount
>> /dev/root on / type nfs
>> (rw,v2,rsize=8192,wsize=8192,hard,udp,nolock,addr=192.168.1.3)
>> none on /dev type devfs (rw)
>> proc on /proc type proc (rw)
>> /dev/mtdblock/1 on /mnt/mtd1 type yaffs2 (rw)
>>
>>
>> All seems well .
>>
>> Reboot to 2.6 kernel and suitable nfsroot fs.
>>
>> # time mount -t yaffs2 /dev/mtdblock1 /mnt/mtd1
>> real 0m 0.17s
>> user 0m 0.00s
>> sys 0m 0.17s
>>
>>
>> during mount the serial console outputs this:
>>
>> yaffs: dev is 32505857 name is "mtdblock1"
>> yaffs: passed flags ""
>> yaffs: Attempting MTD mount on 31.1, "mtdblock1"
>> yaffs: restored from checkpoint
>> yaffs_read_super: isCheckpointed 1
>>
>> # ls /mnt/mtd1
>> ls: /mnt/mtd1/5
>> 06:44:16 0.000 0.000 1.267 1.271 1.161 1.117 2.159 0.000 15
>> 06:45:16 0.001 0.000 1.266 1.271 1.162 1.118 2.162 0.001 15
>> 06:46:16 0.002 0.000 1.268 1.271 1.162 1.115 2.156 0.000 15
>> 06:47:16 0.000 0.001 1.266 1.265 1.156 1.112 2.161 0.002 15
>> 06:48:16 : No such file or directory
>> ls: /mnt/mtd1/71 1.277 1.141 1.101 2.142 0.000 15
>> 06:11:16 0.002 0.000 1.271 1.276 1.139 1.104 2.141 0.000 15
>> 06:12:16 0.001 0.001 1.271 1.272 1.138 1.100 2.148 0.002 15
>> 06:13:16 0.000 0.002 1.272 1.276 1.138 1.099 2.145 0.002 15
>> 06:14:16 0.000 0.001 1.265 1.270 1.: No such file or directory
>> ls: /mnt/mtd1/ 0.001 15
>> 05:37:16 0.000 0.002 1.272 1.278 1.138 1.102 2.155 0.002 15
>> 05:38:16 0.002 0.000 1.279 1.284 1.145 1.110 2.150 0.000 1505:40:16
>> 0.000 0.001 1.273 1.279 1.141 1.108 2.155 0.002 15
>>
>> : No such file or directory
>>
>> ls: /mnt/mtd1/113 2.170 0.001 15
>> 04:30:16 0.000 0.002 1.289 1.296 1.157 1.119 2.175 0.001 15
>> 04:31:16 0.000 0.002 1.294 1.301 1.160 1.113 2.170 0.000 15
>> 04:32:16 0.001 0.000 1.294 1.300 1.161 1.117 2.169 0.000 15
>> 04:33:16 0.000 0.001 1.288 1.294 1.155 1.115 2.174 0: No such file or
>> directory
>> ls: /mnt/mtd1/14:34:46 0.000 0.000 1.135 1.283 1.289 1.255 2.191 0.000 15
>> 14:35:46 0.001 0.002 1.130 1.277 1.284 1.250 2.194 0.002 15
>> 14:36:46 0.002 0.001 1.130 1.282 1.289 1.255 2.196 0.000 15
>> 14:37:46 0.002 0.002 1.130 1.277 1.285 1.255 2.196 0.002 15
>> 14:38:46 0.: No such file or directory
>> ls: /mnt/mtd1/ 1.274 1.290 1.250 2.195 0.001 15
>> 14:01:46 0.002 0.000 1.133 1.278 1.284 1.246 2.190 0.002 15
>> 14:02:46 0.000 0.000 1.130 1.279 1.292 1.251 2.195 0.000 15
>> 14:03:46 0.000 0.000 1.134 1.279 1.290 1.246 2.189 0.000 15
>> 14:04:46 0.002 0.000 1.134 1.279 1.29: No such file or directory
>> ls: /mnt/mtd1/63 1.694 0.001 15
>> 08:25:45 0.002 0.000 0.936 0.933 0.883 0.861 1.694 0.001 15
>> 08:26:45 0.001 0.000 0.935 0.929 0.885 0.863 1.696 0.000 15
>> 05:39:16 0.000 0.002 1.278 1.279 1.139 1.104 2.153 0.002 15
>> 08:27:45 0.000 0.000 0.936 0.936 0.891 0.861 1.692 0.001 15
>> 08:28:45 0.000 0.001 0.939 0.930 0.890 0.867 1.698 0.: No such file or
>> directory
>>
>>
>> Y¾Ï鬤-òõ¤iü:ºåû9|xß`$±5Ï
>> óAs@c1§»ük0×AºkÌ(³ö(åMÐN_ó[®XóþQê¡L½ÑàY[óõácÁ«Âáhô4¤ïGý?zçÌ<ã@S×ö»Ö,£íê0mc
>> 8+Ö
>>
>> : usb_submit_urb(read int) failed
>>
>> depmod
>> lost+found
>> mage
>> se
>> %s does not exist. The use of %s is
>> deprecated, please rename %s to %s
>> as soon as possible. Command
>> mv %s %s
>>
>> var
>> www
>> # 1;2c
>>
>>
>>
>> I reported about 6 months ago that this partition was taking about 90s
>> to mount on the original 2.4 system. The problem went unresolved.
>>
>> Although the partition has continued to work correctly in all other
>> respects under the original kernel it is still amazingly slow to mount
>> and is apparently badly formed as far as a more recent kernel and
>> mtd-utils is concerned.
>
> If you fix the mtd issue I expect this to be resolved too.
>
This did not originate from mtd in different kernels. This problem
manifested itself before the device was ever accessed using anything
other than the original manufacturer's kernel. When I posted this
original issue no-one was able to help me ascertain the cause. I have
no information that shows whether it came from mtd or yaffs.
Boot time had become excessive due to 90s required to mount the yaffs2 fs.
It may well be that whatever was causing this may well be the reason the
recent yaffs or mtd software is not correctly reading the device.
It seems reasonable to think the two are related though mtd differences
cannot be the cause since the mount problem preceded use of a differenct
kernel.
I have decided there is little point in pursuing the origin of this
corruption from our point of view since we're ready to move to 2.6 . The
fautly kernel will no longer be deployed. I have done flash_eraseall and
installed the new 2.6 bases fs image. This now mounts cleanly.
Thanks for your guidance.
>
>>
>>
>> Can you suggest what may be happening here and the best way to clear the
>> problem?
>>
>
> Charles
>
> _______________________________________________
> yaffs mailing list
> yaffs@lists.aleph1.co.uk
> http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
>