[Yaffs] [Yaffs-archive] NAND driver

Top Page
Attachments:
Message as email
+ (text/plain)
+ yaffs.diff (text/x-diff)
Delete this message
Reply to this message
Author: Thomas Gleixner
Date:  
To: YAFFS list
Subject: [Yaffs] [Yaffs-archive] NAND driver
Hi all,

the NAND driver was reworked to support the new 2K page size chips.
There is support for autoplacement of OOB data built in now, as discussed some
time ago,

Status:
    JFFS2 mounts on small / large chips (current JFFS2 CVS code)
    YAFFS mounts on small chips (Patch against current YAFFS CVS is attached)


Some TODO's remain, like optimization of non page aligned read access and
support for the cached page programming, which is provided by the new Samsung
chips. Most of this is already designed in, but not enabled yet as I wanted
to have it working with the standard functionality first. This will happen in
the next weeks.
And of course updating the nand html documentation.

So YAFFS2 can take off :)

This makes some small modifications to the board drivers neccecary.
We need one additional buffer. The sizeof this buffer is oobsize * pages per
block, e.g.
blocksize 16384
pagesize 512
= 32 pages per block
* 16 byte out of band data
= 512 byte buffer
The pointer must be set _before_ calling nand_scan
The pointer for the data buffer, which was neccecary also before the change,
must be set now before calling nand_scan(), as nand_scan() contains a check
for both pointers now.
Check the modifications in autcpu12.c for reference.

I want to say thanks to 
    Aleph One Ltd. and Toby Churchil Ltd. They supported this work
and
    llandre in Italy, who seems to be the only one in the universe who has a 
board with those new chips up and running. He did all the testing. 



Please check it out and help testing.

--
Thomas
________________________________________________________________________
"Free software" is a matter of liberty, not price. To understand the concept,
you should think of "free" as in "free speech,'' not as in "free beer".
________________________________________________________________________
linutronix - competence in embedded & realtime linux
http://www.linutronix.de
mail:
Index: yaffs_mtdif.c
===================================================================
RCS file: /home/aleph1/cvs/yaffs/yaffs_mtdif.c,v
retrieving revision 1.9
diff -u -r1.9 yaffs_mtdif.c
--- yaffs_mtdif.c    8 Apr 2003 19:53:44 -0000    1.9
+++ yaffs_mtdif.c    14 Apr 2004 21:53:56 -0000
@@ -31,6 +31,7 @@


 struct nand_oobinfo yaffs_oobinfo = {
     useecc: 1,
+    eccbytes: 6,
     eccpos: {8, 9, 10, 13, 14, 15}
 };