mtd/drivers/mtd/nand nand.c,1.75,1.76

gleixner at infradead.org gleixner at infradead.org
Wed Apr 14 15:12:02 EDT 2004


Update of /home/cvs/mtd/drivers/mtd/nand
In directory phoenix.infradead.org:/tmp/cvs-serv15532

Modified Files:
	nand.c 
Log Message:
cut down changelog and add a TODO

Index: nand.c
===================================================================
RCS file: /home/cvs/mtd/drivers/mtd/nand/nand.c,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- nand.c	14 Apr 2004 19:00:22 -0000	1.75
+++ nand.c	14 Apr 2004 19:11:59 -0000	1.76
@@ -11,127 +11,6 @@
  *  Copyright (C) 2000 Steven J. Hill (sjhill at realitydiluted.com)
  * 		  2002 Thomas Gleixner (tglx at linutronix.de)
  *
- *  10-29-2001  Thomas Gleixner (tglx at linutronix.de)
- * 		- Changed nand_chip structure for controlline function to
- *		support different hardware structures (Access to
- *		controllines ALE,CLE,NCE via hardware specific function. 
- *		- exit out of "failed erase block" changed, to avoid
- *		driver hangup
- *		- init_waitqueue_head added in function nand_scan !!
- *
- *  01-30-2002  Thomas Gleixner (tglx at linutronix.de)
- *		change in nand_writev to block invalid vecs entries
- *
- *  02-11-2002  Thomas Gleixner (tglx at linutronix.de)
- *		- major rewrite to avoid duplicated code
- *		  common nand_write_page function  
- *		  common get_chip function 
- *		- added oob_config structure for out of band layouts
- *		- write_oob changed for partial programming
- *		- read cache for faster access for subsequent reads
- *		from the same page.
- *		- support for different read/write address
- *		- support for device ready/busy line
- *		- read oob for more than one page enabled
- *
- *  02-27-2002	Thomas Gleixner (tglx at linutronix.de)
- *		- command-delay can be programmed
- *		- fixed exit from erase with callback-function enabled
- *
- *  03-21-2002  Thomas Gleixner (tglx at linutronix.de)
- *		- DEBUG improvements provided by Elizabeth Clarke 
- *		(eclarke at aminocom.com)
- *		- added zero check for this->chip_delay
- *
- *  04-03-2002  Thomas Gleixner (tglx at linutronix.de)
- *		- added added hw-driver supplied command and wait functions
- *		- changed blocking for erase (erase suspend enabled)
- *		- check pointers before accessing flash provided by
- *		John Hall (john.hall at optionexist.co.uk)
- *
- *  04-09-2002  Thomas Gleixner (tglx at linutronix.de)
- *		- nand_wait repaired
- *
- *  04-28-2002  Thomas Gleixner (tglx at linutronix.de)	
- *		- OOB config defines moved to nand.h 
- *
- *  08-01-2002  Thomas Gleixner (tglx at linutronix.de)	
- *		- changed my mailaddress, added pointer to tech/nand.html
- *
- *  08-07-2002 	Thomas Gleixner (tglx at linutronix.de)
- *		forced bad block location to byte 5 of OOB, even if
- *		CONFIG_MTD_NAND_ECC_JFFS2 is not set, to prevent
- *		erase /dev/mtdX from erasing bad blocks and destroying
- *		bad block info
- *
- *  08-10-2002 	Thomas Gleixner (tglx at linutronix.de)
- *		Fixed writing tail of data. Thanks to Alice Hennessy
- *		<ahennessy at mvista.com>.
- *
- *  08-10-2002 	Thomas Gleixner (tglx at linutronix.de)
- *		nand_read_ecc and nand_write_page restructured to support
- *		hardware ECC. Thanks to Steven Hein (ssh at sgi.com)
- *		for basic implementation and suggestions.
- *		3 new pointers in nand_chip structure:
- *		calculate_ecc, correct_data, enabled_hwecc 					 
- *		forcing all hw-drivers to support page cache
- *		eccvalid_pos is now mandatory
- *
- *  08-17-2002	tglx: fixed signed/unsigned missmatch in write.c
- *		Thanks to Ken Offer <koffer at arlut.utexas.edu> 	
- *
- *  08-29-2002  tglx: use buffered read/write only for non pagealigned 
- *		access, speed up the aligned path by using the fs-buffer
- *		reset chip removed from nand_select(), implicit done
- *		only, when erase is interrupted
- *		waitfuntion use yield, instead of schedule_timeout
- *		support for 6byte/512byte hardware ECC
- *		read_ecc, write_ecc extended for different oob-layout
- *		selections: Implemented NAND_NONE_OOB, NAND_JFFS2_OOB,
- *		NAND_YAFFS_OOB. fs-driver gives one of these constants
- *		to select the oob-layout fitting the filesystem.
- *		oobdata can be read together with the raw data, when
- *		the fs-driver supplies a big enough buffer.
- *		size = 12 * number of pages to read (256B pagesize)
- *		       24 * number of pages to read (512B pagesize)
- *		the buffer contains 8/16 byte oobdata and 4/8 byte
- *		returncode from calculate_ecc
- *		oobdata can be given from filesystem to program them
- *		in one go together with the raw data. ECC codes are
- *		filled in at the place selected by oobsel.
- *
- *  09-04-2002  tglx: fixed write_verify (John Hall (john.hall at optionexist.co.uk))
- *
- *  11-11-2002  tglx: fixed debug output in nand_write_page 
- *		(John Hall (john.hall at optionexist.co.uk))
- *
- *  11-25-2002  tglx: Moved device ID/ manufacturer ID from nand_ids.h
- *		Splitted device ID and manufacturer ID table. 
- *		Removed CONFIG_MTD_NAND_ECC, as it defaults to ECC_NONE for
- *		mtd->read / mtd->write and is controllable by the fs driver
- *		for mtd->read_ecc / mtd->write_ecc
- *		some minor cleanups
- *
- *  12-05-2002  tglx: Dave Ellis (DGE at sixnetio) provided the fix for
- *		WRITE_VERIFY long time ago. Thanks for remembering me.	
- *
- *  02-14-2003  tglx: Reject non page aligned writes 	
- *		Fixed ecc select in nand_write_page to match semantics. 
- *
- *  02-18-2003	tglx: Changed oobsel to pointer. Added a default oob-selector
- *			
- *  02-18-2003	tglx: Implemented oobsel again. Now it uses a pointer to
- +		a structure, which will be supplied by a filesystem driver
- *		If NULL is given, then the defaults (none or defaults
- *		supplied by ioctl (MEMSETOOBSEL) are used.
- *		For partitions the partition defaults are used (mtdpart.c)
- *
- *  06-04-2003  tglx: fix compile errors and fix write verify problem for
- *		some chips, which need either a delay between the readback
- *		and the next write command or have the CE removed. The
- *		CE disable/enable is much faster than a 20us delay and
- *		it should work on all available chips.
- *
  *  02-08-2004  tglx: support for strange chips, which cannot auto increment 
  *		pages on read / read_oob
  *
@@ -139,7 +18,16 @@
  *		pointed this out, as he marked an auto increment capable chip
  *		as NOAUTOINCR in the board driver.
  *		Make reads over block boundaries work too
+ *
+ *  04-14-2004	tglx: first working version for 2k page size chips
  *	
+ * TODO:
+ *	Enable cached programming for 2k page size chips
+ *	Read aligned to ECC boundaries if we dont read page aligned
+ *	(May speed things up alot)
+ *	Check if buffering the last not aligned read can speed up
+ *	performance
+ *
  * $Id$
  *
  * This program is free software; you can redistribute it and/or modify




More information about the linux-mtd-cvs mailing list