Yuri,
Before erasing all of the blocks, you should check the oob information.
You should be able to determine which were factory set and which
weren't.
John.
On Thu, 2005-12-22 at 08:48 -0800, Sergey Kubushyn wrote:
> On Thu, 22 Dec 2005 yuri.golovach@mindspeed.com wrote:
>
> When experimenting with unpatched CVS YAFFS you have written something to
> the first two bytes of OOB area so now the beginning of your NAND shows up
> as a bunch of bad blocks. That's why you don't have much free space on those
> partitions.
>
> Now what you have to do is to build a kernel with MTD ignoring bad blocks
> and erase them all. That will also erase factory marked bad blocks but this
> is not the end of the world; they will be marked as bad later when they fail
> ECC check if they are really bad.
>
> > Here is the information, which was asked. I hope it will help. Please,
> > let
> > me know if you need any other debug info.
> >
> >
> > 1) the beginning text from MTD boot screen which should depict the bad
> > block markers that have been detected
> > (MTD Debug was turned on)
> >
> > Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
> > Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
> > Memory: 47MB = 47MB total
> > Memory: 45584KB available (1573K code, 375K data, 80K init)
> > Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
> > CPU: Testing write buffer coherency: ok
> > NET: Registered protocol family 16
> > NetWinder Floating Point Emulator V0.97 (double precision)
> > devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
> > devfs: boot_options: 0x0
> > yaffs Dec 22 2005 15:54:34 Installing.
> > Serial: M825xx1 driver $Revision: 1.1.2.1.2.1 $
> > ttyS0 at MMIO 0x10090000 (irq = 41) is a M825xx1
> > io scheduler noop registered
> > loop: loaded (max 8 devices)
> > nbd: registered device at major 43
> > smi_memory_phy = a10000
> > Phy->storage: 0xcce4a0
> > Virt->storage: 0xf0cce4a0
> > NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB
> > 3,3V 8-bit)
> > Scanning device for bad blocks
> > Bad eraseblock 0 at 0x00000000
> > Bad eraseblock 32 at 0x00400000
> > Bad eraseblock 33 at 0x00420000
> > Bad eraseblock 34 at 0x00440000
> > Bad eraseblock 35 at 0x00460000
> > ............
> > long list
> > ............
> > Bad eraseblock 435 at 0x03660000
> > Bad eraseblock 437 at 0x036a0000
> > Creating 4 MTD partitions on "NAND 128MiB 3,3V 8-bit":
> > 0x00000000-0x00200000 : "MSP boot partition"
> > mtd: Giving out device 0 to MSP boot partition
> > 0x00200000-0x00400000 : "Linux boot partition"
> > mtd: Giving out device 1 to Linux boot partition
> > 0x00400000-0x03600000 : "Comcerto Filesystem partition"
> > mtd: Giving out device 2 to Comcerto Filesystem partition
> > 0x03600000-0x06800000 : "Comcerto Filesystem partition2"
> > mtd: Giving out device 3 to Comcerto Filesystem partition2
> >
> >
> > 2) the result of mounting yaffs partiton.
> > #
> > # mount -t yaffs2 /dev/mtdblock3 /mnt/y
> > yaffs: dev is 32505859 name is "mtdblock3"
> > yaffs: Attempting MTD mount on 31.3, "mtdblock3"
> > block 1 is bad
> > block 2 is bad
> > block 3 is bad
> > block 4 is bad
> > block 6 is bad
> > nand_read_ecc: Failed ECC read, page 0x00006d01
> > nand_read_ecc: Failed ECC read, page 0x00006d01
> > #
> >
> > 2.5) some more info about the copy results
> > #
> > # rm /mnt/y/*
> > rm: cannot remove `/mnt/y/lost+found': Is a directory
> > #
> > # cp mytest /mnt/y
> > #
> > # cp mkyaffs2 /mnt/y
> > #
> > # cp nandwrite /mnt/y
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > !!!!!!!!
> > #
> > # ls -l /mnt/y
> > total 62
> > drw-rw-rw- 1 root root 2048 Jan 1 00:03 lost+found
> > -rwxr-xr-x 1 root root 10765 Jan 1 00:08 mkyaffs2
> > -rw-r--r-- 1 root root 8240 Jan 1 00:08 mytest
> > -rwxr-xr-x 1 root root 40724 Jan 1 00:09 nandwrite
> > #
> > # cp yaffs2small.img /mnt/y
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > ....
> > lot of messages
> > ....
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > cp: writing `/mnt/y/yaffs2small.img': Operation not permitted
> > yaffs tragedy: no more eraased blocks
> > !!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
> > #
> > # ls -l /mnt/y
> > total 272
> > drw-rw-rw- 1 root root 2048 Jan 1 00:03 lost+found
> > -rwxr-xr-x 1 root root 10765 Jan 1 00:08 mkyaffs2
> > -rw-r--r-- 1 root root 8240 Jan 1 00:08 mytest
> > -rwxr-xr-x 1 root root 40724 Jan 1 00:09 nandwrite
> > -rw-r--r-- 1 root root 215040 Jan 1 00:13 yaffs2small.img
> > #
> >
> >
> >
> >
> > 3) the output of /proc/yaffs file
> > # vi /prov/yaffs
> > YAFFS built:Dec 22 2005 15:54:34
> > $Id: yaffs_fs.c,v 1.38 2005/12/15 20:27:56 charles Exp $
> > $Id: yaffs_guts.c,v 1.25 2005/12/08 00:51:15 charles Exp $
> >
> > Device 0 "Comcerto Filesystem partition"
> > startBlock......... 0
> > endBlock........... 399
> > chunkGroupBits..... 0
> > chunkGroupSize..... 1
> > nErasedBlocks...... 0
> > nTnodesCreated..... 0
> > nFreeTnodes........ 0
> > nObjectsCreated.... 100
> > nFreeObjects....... 96
> > nFreeChunks........ 0
> > nPageWrites........ 0
> > nPageReads......... 0
> > nBlockErasures..... 0
> > nGCCopies.......... 0
> > garbageCollections. 0
> > passiveGCs......... 0
> > nRetriedWrites..... 0
> > nRetireBlocks...... 0
> > eccFixed........... 0
> > eccUnfixed......... 0
> > tagsEccFixed....... 0
> > tagsEccUnfixed..... 0
> > cacheHits.......... 0
> > nDeletedFiles...... 0
> > nUnlinkedFiles..... 0
> > nBackgroudDeletions 0
> > useNANDECC......... 1
> > isYaffs2........... 1
> >
> > Device 1 "Comcerto Filesystem partition2"
> > startBlock......... 0
> > endBlock........... 399
> > chunkGroupBits..... 0
> > chunkGroupSize..... 1
> > nErasedBlocks...... 0
> > nTnodesCreated..... 100
> > nFreeTnodes........ 90
> > nObjectsCreated.... 100
> > nFreeObjects....... 89
> > nFreeChunks........ 25194
> > nPageWrites........ 0
> > nPageReads......... 0
> > nBlockErasures..... 8
> > nGCCopies.......... 493
> > garbageCollections. 8
> > passiveGCs......... 0
> > nRetriedWrites..... 0
> > nRetireBlocks...... 0
> > eccFixed........... 0
> > eccUnfixed......... 0
> > tagsEccFixed....... 0
> > tagsEccUnfixed..... 0
> > cacheHits.......... 0
> > nDeletedFiles...... 2
> > nUnlinkedFiles..... 4
> > nBackgroudDeletions 0
> > B
> > useNANDECC......... 1
> > iBsYaffs2........... 1
> >
> > Thank you,
> > Yuri Golovach
> >
>
> ---
> ******************************************************************
> * KSI@home KOI8 Net < > The impossible we do immediately. *
> * Las Vegas NV, USA < > Miracles require 24-hour notice. *
> ******************************************************************
>
>
> _______________________________________________
> yaffs mailing list
> yaffs@stoneboat.aleph1.co.uk
> http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs