[Yaffs] problem with my nand driver

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Chuck Tilbury
Date:  
To: yaffs
Subject: [Yaffs] problem with my nand driver

I am having a weird problem with my nand driver. Since I am using yaffs and I
have that spew, I hope it is OK that I post here. Let me know if it's not.

When I copy a file to the file yaffs file system, I get a lot of spew that
looks like this:

**>> Block 1 needs retiring
**>> Block 2 needs retiring
**>> Block 2 retired
**>> Block 3 needs retiring
**>> Block 3 retired
**>> Block 4 needs retiring
**>> Block 4 retired
..... messages with sequential block numbers deleted ......
**>> Block 779 needs retiring
**>> Block 779 retired
**>> yaffs write required 780 attempts
**>> Block 1 retired
# ls -las /mnt
   0 drw-rw-rw-    1 0        0             512 .
   1 drwxrwxrwx   14 0        0            1024 ..
   0 drw-rw-rw-    1 0        0             512 lost+found
   0 -rw-r--r--    1 0        0             426 rc 


The file /etc/rc was written correctly to the FS.

When I turn on any debugging, it does not retire blocks at all. In fact, if I
insert a printk() anywhere such that it gets called once in a while, the
retire messages go away and the status in /proc/yaffs shows that no blocks
were retired. If I get rid of all of the debugging messages, I run out of
space in a few writes. (it's a 64M byte part)

With all debugging on, I get this spew:
# cp /etc/inittab /mnt
yaffs_mknod: making oject for inittab, mode 81a4 dev 0
Writing chunk 24931 tags 262 0
Chunk -1 not found zero instead
Chunk -1 not found zero instead
Chunk -1 not found zero instead
Chunk -1 not found zero instead
Chunk -1 not found zero instead
Chunk -1 not found zero instead
Chunk -1 not found zero instead
Chunk -1 not found zero instead
Chunk -1 not found zero instead
Writing chunk 24932 tags 262 1
Writing chunk 24933 tags 262 0
line 3142 delete of chunk 24963
Writing chunk 24931 tags 0 0

# ls -las /mnt
yaffs_readdir: starting at 0
yaffs_readdir: starting at 5
   0 drw-rw-rw-    1 0        0             512 .
   1 drwxrwxrwx   14 0        0            1024 ..
   0 -rw-r--r--    1 0        0              82 inittab
   0 drw-rw-rw-    1 0        0             512 lost+found
   0 -rw-r--r--    1 0        0             426 rc


Again a correct write.

I have been messing around with the timing on the GPIO lines that control the
part and I always come back to this. Can anyone give a pointer? Is
the "Chunk -1 ..." message an indication of a failure?

Thanks guys,
-=ChuckT=-