6 The mtd/ class subdirectory belongs to the MTD subsystem
9 What: /sys/class/mtd/mtdX/
14 The /sys/class/mtd/mtd{0,1,2,3,...} directories correspond
15 to each /dev/mtdX character device. These may represent
16 physical/simulated flash devices, partitions on a flash
17 device, or concatenated flash devices. They exist regardless
18 of whether CONFIG_MTD_CHAR is actually enabled.
20 What: /sys/class/mtd/mtdXro/
25 These directories provide the corresponding read-only device
26 nodes for /sys/class/mtd/mtdX/ . They are only created
27 (for the benefit of udev) if CONFIG_MTD_CHAR is enabled.
29 What: /sys/class/mtd/mtdX/dev
34 Major and minor numbers of the character device corresponding
35 to this MTD device (in <major>:<minor> format). This is the
36 read-write device so <minor> will be even.
38 What: /sys/class/mtd/mtdXro/dev
43 Major and minor numbers of the character device corresponding
44 to the read-only variant of thie MTD device (in
45 <major>:<minor> format). In this case <minor> will be odd.
47 What: /sys/class/mtd/mtdX/erasesize
52 "Major" erase size for the device. If numeraseregions is
53 zero, this is the eraseblock size for the entire device.
54 Otherwise, the MEMGETREGIONCOUNT/MEMGETREGIONINFO ioctls
55 can be used to determine the actual eraseblock layout.
57 What: /sys/class/mtd/mtdX/flags
62 A hexadecimal value representing the device flags, ORed
65 0x0400: MTD_WRITEABLE - device is writable
66 0x0800: MTD_BIT_WRITEABLE - single bits can be flipped
67 0x1000: MTD_NO_ERASE - no erase necessary
68 0x2000: MTD_POWERUP_LOCK - always locked after reset
70 What: /sys/class/mtd/mtdX/name
75 A human-readable ASCII name for the device or partition.
76 This will match the name in /proc/mtd .
78 What: /sys/class/mtd/mtdX/numeraseregions
83 For devices that have variable eraseblock sizes, this
84 provides the total number of erase regions. Otherwise,
85 it will read back as zero.
87 What: /sys/class/mtd/mtdX/oobsize
92 Number of OOB bytes per page.
94 What: /sys/class/mtd/mtdX/size
99 Total size of the device/partition, in bytes.
101 What: /sys/class/mtd/mtdX/type
103 KernelVersion: 2.6.29
106 One of the following ASCII strings, representing the device
109 absent, ram, rom, nor, nand, dataflash, ubi, unknown
111 What: /sys/class/mtd/mtdX/writesize
113 KernelVersion: 2.6.29
116 Minimal writable flash unit size. This will always be
119 In the case of NOR flash it is 1 (even though individual
120 bits can be cleared).
122 In the case of NAND flash it is one NAND page (or a
123 half page, or a quarter page).
125 In the case of ECC NOR, it is the ECC block size.
127 What: /sys/class/mtd/mtdX/ecc_strength
132 Maximum number of bit errors that the device is capable of
133 correcting within each region covering an ecc step. This will
134 always be a non-negative integer. Note that some devices will
135 have multiple ecc steps within each writesize region.
137 In the case of devices lacking any ECC capability, it is 0.
139 What: /sys/class/mtd/mtdX/bitflip_threshold
144 This allows the user to examine and adjust the criteria by which
145 mtd returns -EUCLEAN from mtd_read(). If the maximum number of
146 bit errors that were corrected on any single region comprising
147 an ecc step (as reported by the driver) equals or exceeds this
148 value, -EUCLEAN is returned. Otherwise, absent an error, 0 is
149 returned. Higher layers (e.g., UBI) use this return code as an
150 indication that an erase block may be degrading and should be
151 scrutinized as a candidate for being marked as bad.
153 The initial value may be specified by the flash device driver.
154 If not, then the default value is ecc_strength.
156 The introduction of this feature brings a subtle change to the
157 meaning of the -EUCLEAN return code. Previously, it was
158 interpreted to mean simply "one or more bit errors were
159 corrected". Its new interpretation can be phrased as "a
160 dangerously high number of bit errors were corrected on one or
161 more regions comprising an ecc step". The precise definition of
162 "dangerously high" can be adjusted by the user with
163 bitflip_threshold. Users are discouraged from doing this,
164 however, unless they know what they are doing and have intimate
165 knowledge of the properties of their device. Broadly speaking,
166 bitflip_threshold should be low enough to detect genuine erase
167 block degradation, but high enough to avoid the consequences of
168 a persistent return value of -EUCLEAN on devices where sticky
169 bitflips occur. Note that if bitflip_threshold exceeds
170 ecc_strength, -EUCLEAN is never returned by mtd_read().
171 Conversely, if bitflip_threshold is zero, -EUCLEAN is always
172 returned, absent a hard error.
174 This is generally applicable only to NAND flash devices with ECC
175 capability. It is ignored on devices lacking ECC capability;
176 i.e., devices for which ecc_strength is zero.