| 
									
										
										
										
											2009-04-08 22:51:43 -07:00
										 |  |  | What:		/sys/class/mtd/ | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		The mtd/ class subdirectory belongs to the MTD subsystem | 
					
						
							|  |  |  | 		(MTD core). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/ | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		The /sys/class/mtd/mtd{0,1,2,3,...} directories correspond | 
					
						
							|  |  |  | 		to each /dev/mtdX character device.  These may represent | 
					
						
							|  |  |  | 		physical/simulated flash devices, partitions on a flash | 
					
						
							|  |  |  | 		device, or concatenated flash devices.  They exist regardless | 
					
						
							|  |  |  | 		of whether CONFIG_MTD_CHAR is actually enabled. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdXro/ | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		These directories provide the corresponding read-only device | 
					
						
							|  |  |  | 		nodes for /sys/class/mtd/mtdX/ .  They are only created | 
					
						
							|  |  |  | 		(for the benefit of udev) if CONFIG_MTD_CHAR is enabled. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/dev | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		Major and minor numbers of the character device corresponding | 
					
						
							|  |  |  | 		to this MTD device (in <major>:<minor> format).  This is the | 
					
						
							|  |  |  | 		read-write device so <minor> will be even. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdXro/dev | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		Major and minor numbers of the character device corresponding | 
					
						
							|  |  |  | 		to the read-only variant of thie MTD device (in | 
					
						
							|  |  |  | 		<major>:<minor> format).  In this case <minor> will be odd. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/erasesize | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		"Major" erase size for the device.  If numeraseregions is | 
					
						
							|  |  |  | 		zero, this is the eraseblock size for the entire device. | 
					
						
							|  |  |  | 		Otherwise, the MEMGETREGIONCOUNT/MEMGETREGIONINFO ioctls | 
					
						
							|  |  |  | 		can be used to determine the actual eraseblock layout. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/flags | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		A hexadecimal value representing the device flags, ORed | 
					
						
							|  |  |  | 		together: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		0x0400: MTD_WRITEABLE - device is writable | 
					
						
							|  |  |  | 		0x0800: MTD_BIT_WRITEABLE - single bits can be flipped | 
					
						
							|  |  |  | 		0x1000: MTD_NO_ERASE - no erase necessary | 
					
						
							|  |  |  | 		0x2000: MTD_POWERUP_LOCK - always locked after reset | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/name | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		A human-readable ASCII name for the device or partition. | 
					
						
							|  |  |  | 		This will match the name in /proc/mtd . | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/numeraseregions | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		For devices that have variable eraseblock sizes, this | 
					
						
							|  |  |  | 		provides the total number of erase regions.  Otherwise, | 
					
						
							|  |  |  | 		it will read back as zero. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/oobsize | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		Number of OOB bytes per page. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/size | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		Total size of the device/partition, in bytes. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/type | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		One of the following ASCII strings, representing the device | 
					
						
							|  |  |  | 		type: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		absent, ram, rom, nor, nand, dataflash, ubi, unknown | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/writesize | 
					
						
							|  |  |  | Date:		April 2009 | 
					
						
							|  |  |  | KernelVersion:	2.6.29 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		Minimal writable flash unit size.  This will always be | 
					
						
							|  |  |  | 		a positive integer. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		In the case of NOR flash it is 1 (even though individual | 
					
						
							|  |  |  | 		bits can be cleared). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		In the case of NAND flash it is one NAND page (or a | 
					
						
							|  |  |  | 		half page, or a quarter page). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		In the case of ECC NOR, it is the ECC block size. | 
					
						
							| 
									
										
										
										
											2012-04-25 12:06:07 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/ecc_strength | 
					
						
							|  |  |  | Date:		April 2012 | 
					
						
							|  |  |  | KernelVersion:	3.4 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		Maximum number of bit errors that the device is capable of | 
					
						
							|  |  |  | 		correcting within each region covering an ecc step.  This will | 
					
						
							|  |  |  | 		always be a non-negative integer.  Note that some devices will | 
					
						
							|  |  |  | 		have multiple ecc steps within each writesize region. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		In the case of devices lacking any ECC capability, it is 0. | 
					
						
							| 
									
										
										
										
											2012-04-25 12:06:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | What:		/sys/class/mtd/mtdX/bitflip_threshold | 
					
						
							|  |  |  | Date:		April 2012 | 
					
						
							|  |  |  | KernelVersion:	3.4 | 
					
						
							|  |  |  | Contact:	linux-mtd@lists.infradead.org | 
					
						
							|  |  |  | Description: | 
					
						
							|  |  |  | 		This allows the user to examine and adjust the criteria by which | 
					
						
							| 
									
										
										
										
											2012-05-22 11:03:42 -07:00
										 |  |  | 		mtd returns -EUCLEAN from mtd_read() and mtd_read_oob().  If the | 
					
						
							|  |  |  | 		maximum number of bit errors that were corrected on any single | 
					
						
							|  |  |  | 		region comprising an ecc step (as reported by the driver) equals | 
					
						
							|  |  |  | 		or exceeds this value, -EUCLEAN is returned.  Otherwise, absent | 
					
						
							|  |  |  | 		an error, 0 is returned.  Higher layers (e.g., UBI) use this | 
					
						
							|  |  |  | 		return code as an indication that an erase block may be | 
					
						
							|  |  |  | 		degrading and should be scrutinized as a candidate for being | 
					
						
							|  |  |  | 		marked as bad. | 
					
						
							| 
									
										
										
										
											2012-04-25 12:06:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		The initial value may be specified by the flash device driver. | 
					
						
							|  |  |  | 		If not, then the default value is ecc_strength. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		The introduction of this feature brings a subtle change to the | 
					
						
							|  |  |  | 		meaning of the -EUCLEAN return code.  Previously, it was | 
					
						
							|  |  |  | 		interpreted to mean simply "one or more bit errors were | 
					
						
							|  |  |  | 		corrected".  Its new interpretation can be phrased as "a | 
					
						
							|  |  |  | 		dangerously high number of bit errors were corrected on one or | 
					
						
							|  |  |  | 		more regions comprising an ecc step".  The precise definition of | 
					
						
							|  |  |  | 		"dangerously high" can be adjusted by the user with | 
					
						
							|  |  |  | 		bitflip_threshold.  Users are discouraged from doing this, | 
					
						
							|  |  |  | 		however, unless they know what they are doing and have intimate | 
					
						
							|  |  |  | 		knowledge of the properties of their device.  Broadly speaking, | 
					
						
							|  |  |  | 		bitflip_threshold should be low enough to detect genuine erase | 
					
						
							|  |  |  | 		block degradation, but high enough to avoid the consequences of | 
					
						
							|  |  |  | 		a persistent return value of -EUCLEAN on devices where sticky | 
					
						
							|  |  |  | 		bitflips occur.  Note that if bitflip_threshold exceeds | 
					
						
							| 
									
										
										
										
											2012-05-22 11:03:42 -07:00
										 |  |  | 		ecc_strength, -EUCLEAN is never returned by the read operations. | 
					
						
							| 
									
										
										
										
											2012-04-25 12:06:11 -07:00
										 |  |  | 		Conversely, if bitflip_threshold is zero, -EUCLEAN is always | 
					
						
							|  |  |  | 		returned, absent a hard error. | 
					
						
							| 
									
										
										
										
											2012-04-25 12:06:08 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		This is generally applicable only to NAND flash devices with ECC | 
					
						
							| 
									
										
										
										
											2012-04-25 12:06:11 -07:00
										 |  |  | 		capability.  It is ignored on devices lacking ECC capability; | 
					
						
							|  |  |  | 		i.e., devices for which ecc_strength is zero. |