Re: [Yaffs] YAFFS issue with custom NAND driver

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Andre Renaud
Date:  
To: yaffs
Subject: Re: [Yaffs] YAFFS issue with custom NAND driver
Sorry for the premature post on this - it turned out to be entirely my
fault - my NAND driver was messing up auto oob placement, and also I was
using mtd partitions which were getting in between my driver & YAFFS.
After fixing the bug & dropping partitions, it all seems to work fine.

Regards,
Andre

Andre Renaud wrote:
> Hi,
> I'm developing a new MTD/NAND driver under Linux based on highly
> customised interface. Unfortunately this means that I cannot re-use the
> existing NAND subsystem (although I can reuse the MTD bits).
>
> As a result of this I'm reimplementing read_oob/write_oob etc... from
> scratch. They appear to be working in broad terms (I can read/write raw
> data acceptably), however I think I've still got some issues relating to
> MTD_OOB_AUTO / MTD_OOB_PLACE for oob data placement. As such I don't
> seem to be able to use the device with YAFFS.
>
> As soon as I attempt to touch a file on my yaffs partition it goes
> haywire, believing that all of the blocks are not erased properly.
>
> Here is some of the output (with full debugging enabled):
> yaffs locking c78f9840
> yaffs locked c78f9840
> yaffs_lookup for 1:foo
> yaffs unlocking c78f9840
> yaffs_lookup not found
> yaffs_create
> yaffs_mknod: parent object 1 type 3
> yaffs_mknod: making oject for foo, mode 81a4 dev 0
> yaffs locking c78f9840
> yaffs locked c78f9840
> yaffs_mknod: making file
> yaffs: Tnodes added
> yaffs_MarkSuperBlockDirty() sb = c791ea00
> Allocated block 1, seq 4097, 126 left
> nandmtd2_ReadChunkWithTagsFromNAND chunk 0 data c79a8000 tags c7955ae0
> packed tags obj -1 chunk -1 byte -1 seq -1
> ext.tags eccres 0 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0
> packed tags obj -1 chunk -1 byte -1 seq -1
> ext.tags eccres 1 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0
> Chunk 64 not erased
> **>> yaffs chunk 64 was not erased
> line 1018 delete of chunk 64
> Allocated block 2, seq 4098, 125 left
> nandmtd2_ReadChunkWithTagsFromNAND chunk 64 data c79a8000 tags c7955ae0
> packed tags obj -1 chunk -1 byte -1 seq -1
> ext.tags eccres 0 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0
> packed tags obj -1 chunk -1 byte -1 seq -1
> ext.tags eccres 1 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0
> Chunk 128 not erased
> **>> yaffs chunk 128 was not erased
> line 1018 delete of chunk 128
> Allocated block 3, seq 4099, 124 left
> nandmtd2_ReadChunkWithTagsFromNAND chunk 128 data c79a8000 tags c7955ae0
> packed tags obj -1 chunk -1 byte -1 seq -1
> ext.tags eccres 0 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0
> packed tags obj -1 chunk -1 byte -1 seq -1
> ext.tags eccres 1 blkbad 0 chused 0 obj 0 chunk0 byte 0 del 0 ser 0 seq 0
> Chunk 192 not erased
> **>> yaffs chunk 192 was not erased
>
>
>
> Here is a copy of /proc/yaffs (from just prior to running the touch
> command):
>
> YAFFS built:Jun 14 2010 14:09:20
>
>
> Device 0 "Stack0"
> startBlock......... 0
> endBlock........... 127
> totalBytesPerChunk. 16384
> useNANDECC......... 1
> noTagsECC.......... 0
> isYaffs2........... 1
> inbandTags......... 0
> emptyLostAndFound.. 0
> disableLazyLoad.... 0
> refreshPeriod...... 500
> nShortOpCaches..... 10
> nReservedBlocks.... 5
>
> nDataBytesPerChunk. 16384
> chunkGroupBits..... 0
> chunkGroupSize..... 1
> nErasedBlocks...... 127
> blocksInCheckpoint. 0
>
> nTnodesCreated..... 0
> nFreeTnodes........ 0
> nObjectsCreated.... 100
> nFreeObjects....... 96
> nFreeChunks........ 8128
>
> nPageWrites........ 0
> nPageReads......... 0
> nBlockErasures..... 0
> nGCCopies.......... 0
> allGCs............. 0
> passiveGCs......... 0
> oldestDirtyGCs..... 0
> backgroundGCs...... 0
> nRetriedWrites..... 0
> nRetireBlocks...... 0
> eccFixed........... 0
> eccUnfixed......... 0
> tagsEccFixed....... 0
> tagsEccUnfixed..... 0
> cacheHits.......... 0
> nDeletedFiles...... 0
> nUnlinkedFiles..... 0
> refreshCount....... 1
> nBackgroudDeletions 0
>
> Any hints as to where I could have made a mistake?
>
> Regards,
> Andre
>



--
Bluewater Systems Ltd - ARM Technology Solution Centre

Andre Renaud                5 Amuri Park, 404 Barbadoes St
            PO Box 13 889, Christchurch 8013
http://www.bluewatersys.com    New Zealand
Phone: +64 3 3779127        Freecall: Australia 1800 148 751
Fax:   +64 3 3779135              USA 1800 261 2934