GNU Linux-libre 4.4.294-gnu1
[releases.git] / Documentation / ABI / testing / sysfs-class-mtd
1 What:           /sys/class/mtd/
2 Date:           April 2009
3 KernelVersion:  2.6.29
4 Contact:        linux-mtd@lists.infradead.org
5 Description:
6                 The mtd/ class subdirectory belongs to the MTD subsystem
7                 (MTD core).
8
9 What:           /sys/class/mtd/mtdX/
10 Date:           April 2009
11 KernelVersion:  2.6.29
12 Contact:        linux-mtd@lists.infradead.org
13 Description:
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.
18
19 What:           /sys/class/mtd/mtdXro/
20 Date:           April 2009
21 KernelVersion:  2.6.29
22 Contact:        linux-mtd@lists.infradead.org
23 Description:
24                 These directories provide the corresponding read-only device
25                 nodes for /sys/class/mtd/mtdX/ .
26
27 What:           /sys/class/mtd/mtdX/dev
28 Date:           April 2009
29 KernelVersion:  2.6.29
30 Contact:        linux-mtd@lists.infradead.org
31 Description:
32                 Major and minor numbers of the character device corresponding
33                 to this MTD device (in <major>:<minor> format).  This is the
34                 read-write device so <minor> will be even.
35
36 What:           /sys/class/mtd/mtdXro/dev
37 Date:           April 2009
38 KernelVersion:  2.6.29
39 Contact:        linux-mtd@lists.infradead.org
40 Description:
41                 Major and minor numbers of the character device corresponding
42                 to the read-only variant of thie MTD device (in
43                 <major>:<minor> format).  In this case <minor> will be odd.
44
45 What:           /sys/class/mtd/mtdX/erasesize
46 Date:           April 2009
47 KernelVersion:  2.6.29
48 Contact:        linux-mtd@lists.infradead.org
49 Description:
50                 "Major" erase size for the device.  If numeraseregions is
51                 zero, this is the eraseblock size for the entire device.
52                 Otherwise, the MEMGETREGIONCOUNT/MEMGETREGIONINFO ioctls
53                 can be used to determine the actual eraseblock layout.
54
55 What:           /sys/class/mtd/mtdX/flags
56 Date:           April 2009
57 KernelVersion:  2.6.29
58 Contact:        linux-mtd@lists.infradead.org
59 Description:
60                 A hexadecimal value representing the device flags, ORed
61                 together:
62
63                 0x0400: MTD_WRITEABLE - device is writable
64                 0x0800: MTD_BIT_WRITEABLE - single bits can be flipped
65                 0x1000: MTD_NO_ERASE - no erase necessary
66                 0x2000: MTD_POWERUP_LOCK - always locked after reset
67
68 What:           /sys/class/mtd/mtdX/name
69 Date:           April 2009
70 KernelVersion:  2.6.29
71 Contact:        linux-mtd@lists.infradead.org
72 Description:
73                 A human-readable ASCII name for the device or partition.
74                 This will match the name in /proc/mtd .
75
76 What:           /sys/class/mtd/mtdX/numeraseregions
77 Date:           April 2009
78 KernelVersion:  2.6.29
79 Contact:        linux-mtd@lists.infradead.org
80 Description:
81                 For devices that have variable eraseblock sizes, this
82                 provides the total number of erase regions.  Otherwise,
83                 it will read back as zero.
84
85 What:           /sys/class/mtd/mtdX/oobsize
86 Date:           April 2009
87 KernelVersion:  2.6.29
88 Contact:        linux-mtd@lists.infradead.org
89 Description:
90                 Number of OOB bytes per page.
91
92 What:           /sys/class/mtd/mtdX/size
93 Date:           April 2009
94 KernelVersion:  2.6.29
95 Contact:        linux-mtd@lists.infradead.org
96 Description:
97                 Total size of the device/partition, in bytes.
98
99 What:           /sys/class/mtd/mtdX/type
100 Date:           April 2009
101 KernelVersion:  2.6.29
102 Contact:        linux-mtd@lists.infradead.org
103 Description:
104                 One of the following ASCII strings, representing the device
105                 type:
106
107                 absent, ram, rom, nor, nand, mlc-nand, dataflash, ubi, unknown
108
109 What:           /sys/class/mtd/mtdX/writesize
110 Date:           April 2009
111 KernelVersion:  2.6.29
112 Contact:        linux-mtd@lists.infradead.org
113 Description:
114                 Minimal writable flash unit size.  This will always be
115                 a positive integer.
116
117                 In the case of NOR flash it is 1 (even though individual
118                 bits can be cleared).
119
120                 In the case of NAND flash it is one NAND page (or a
121                 half page, or a quarter page).
122
123                 In the case of ECC NOR, it is the ECC block size.
124
125 What:           /sys/class/mtd/mtdX/ecc_strength
126 Date:           April 2012
127 KernelVersion:  3.4
128 Contact:        linux-mtd@lists.infradead.org
129 Description:
130                 Maximum number of bit errors that the device is capable of
131                 correcting within each region covering an ECC step (see
132                 ecc_step_size).  This will always be a non-negative integer.
133
134                 In the case of devices lacking any ECC capability, it is 0.
135
136 What:           /sys/class/mtd/mtdX/bitflip_threshold
137 Date:           April 2012
138 KernelVersion:  3.4
139 Contact:        linux-mtd@lists.infradead.org
140 Description:
141                 This allows the user to examine and adjust the criteria by which
142                 mtd returns -EUCLEAN from mtd_read() and mtd_read_oob().  If the
143                 maximum number of bit errors that were corrected on any single
144                 region comprising an ecc step (as reported by the driver) equals
145                 or exceeds this value, -EUCLEAN is returned.  Otherwise, absent
146                 an error, 0 is returned.  Higher layers (e.g., UBI) use this
147                 return code as an indication that an erase block may be
148                 degrading and should be scrutinized as a candidate for being
149                 marked as bad.
150
151                 The initial value may be specified by the flash device driver.
152                 If not, then the default value is ecc_strength.
153
154                 The introduction of this feature brings a subtle change to the
155                 meaning of the -EUCLEAN return code.  Previously, it was
156                 interpreted to mean simply "one or more bit errors were
157                 corrected".  Its new interpretation can be phrased as "a
158                 dangerously high number of bit errors were corrected on one or
159                 more regions comprising an ecc step".  The precise definition of
160                 "dangerously high" can be adjusted by the user with
161                 bitflip_threshold.  Users are discouraged from doing this,
162                 however, unless they know what they are doing and have intimate
163                 knowledge of the properties of their device.  Broadly speaking,
164                 bitflip_threshold should be low enough to detect genuine erase
165                 block degradation, but high enough to avoid the consequences of
166                 a persistent return value of -EUCLEAN on devices where sticky
167                 bitflips occur.  Note that if bitflip_threshold exceeds
168                 ecc_strength, -EUCLEAN is never returned by the read operations.
169                 Conversely, if bitflip_threshold is zero, -EUCLEAN is always
170                 returned, absent a hard error.
171
172                 This is generally applicable only to NAND flash devices with ECC
173                 capability.  It is ignored on devices lacking ECC capability;
174                 i.e., devices for which ecc_strength is zero.
175
176 What:           /sys/class/mtd/mtdX/ecc_step_size
177 Date:           May 2013
178 KernelVersion:  3.10
179 Contact:        linux-mtd@lists.infradead.org
180 Description:
181                 The size of a single region covered by ECC, known as the ECC
182                 step.  Devices may have several equally sized ECC steps within
183                 each writesize region.
184
185                 It will always be a non-negative integer.  In the case of
186                 devices lacking any ECC capability, it is 0.
187
188 What:           /sys/class/mtd/mtdX/ecc_failures
189 Date:           June 2014
190 KernelVersion:  3.17
191 Contact:        linux-mtd@lists.infradead.org
192 Description:
193                 The number of failures reported by this device's ECC. Typically,
194                 these failures are associated with failed read operations.
195
196                 It will always be a non-negative integer.  In the case of
197                 devices lacking any ECC capability, it is 0.
198
199 What:           /sys/class/mtd/mtdX/corrected_bits
200 Date:           June 2014
201 KernelVersion:  3.17
202 Contact:        linux-mtd@lists.infradead.org
203 Description:
204                 The number of bits that have been corrected by means of the
205                 device's ECC.
206
207                 It will always be a non-negative integer.  In the case of
208                 devices lacking any ECC capability, it is 0.
209
210 What:           /sys/class/mtd/mtdX/bad_blocks
211 Date:           June 2014
212 KernelVersion:  3.17
213 Contact:        linux-mtd@lists.infradead.org
214 Description:
215                 The number of blocks marked as bad, if any, in this partition.
216
217 What:           /sys/class/mtd/mtdX/bbt_blocks
218 Date:           June 2014
219 KernelVersion:  3.17
220 Contact:        linux-mtd@lists.infradead.org
221 Description:
222                 The number of blocks that are marked as reserved, if any, in
223                 this partition. These are typically used to store the in-flash
224                 bad block table (BBT).
225
226 What:           /sys/class/mtd/mtdX/offset
227 Date:           March 2015
228 KernelVersion:  4.1
229 Contact:        linux-mtd@lists.infradead.org
230 Description:
231                 For a partition, the offset of that partition from the start
232                 of the master device in bytes. This attribute is absent on
233                 main devices, so it can be used to distinguish between
234                 partitions and devices that aren't partitions.