Commit | Line | Data |
---|---|---|
19fe7f1a KC |
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. They exist regardless | |
18 | of whether CONFIG_MTD_CHAR is actually enabled. | |
19 | ||
20 | What: /sys/class/mtd/mtdXro/ | |
21 | Date: April 2009 | |
22 | KernelVersion: 2.6.29 | |
23 | Contact: linux-mtd@lists.infradead.org | |
24 | Description: | |
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. | |
28 | ||
29 | What: /sys/class/mtd/mtdX/dev | |
30 | Date: April 2009 | |
31 | KernelVersion: 2.6.29 | |
32 | Contact: linux-mtd@lists.infradead.org | |
33 | Description: | |
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. | |
37 | ||
38 | What: /sys/class/mtd/mtdXro/dev | |
39 | Date: April 2009 | |
40 | KernelVersion: 2.6.29 | |
41 | Contact: linux-mtd@lists.infradead.org | |
42 | Description: | |
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. | |
46 | ||
47 | What: /sys/class/mtd/mtdX/erasesize | |
48 | Date: April 2009 | |
49 | KernelVersion: 2.6.29 | |
50 | Contact: linux-mtd@lists.infradead.org | |
51 | Description: | |
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. | |
56 | ||
57 | What: /sys/class/mtd/mtdX/flags | |
58 | Date: April 2009 | |
59 | KernelVersion: 2.6.29 | |
60 | Contact: linux-mtd@lists.infradead.org | |
61 | Description: | |
62 | A hexadecimal value representing the device flags, ORed | |
63 | together: | |
64 | ||
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 | |
69 | ||
70 | What: /sys/class/mtd/mtdX/name | |
71 | Date: April 2009 | |
72 | KernelVersion: 2.6.29 | |
73 | Contact: linux-mtd@lists.infradead.org | |
74 | Description: | |
75 | A human-readable ASCII name for the device or partition. | |
76 | This will match the name in /proc/mtd . | |
77 | ||
78 | What: /sys/class/mtd/mtdX/numeraseregions | |
79 | Date: April 2009 | |
80 | KernelVersion: 2.6.29 | |
81 | Contact: linux-mtd@lists.infradead.org | |
82 | Description: | |
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. | |
86 | ||
87 | What: /sys/class/mtd/mtdX/oobsize | |
88 | Date: April 2009 | |
89 | KernelVersion: 2.6.29 | |
90 | Contact: linux-mtd@lists.infradead.org | |
91 | Description: | |
92 | Number of OOB bytes per page. | |
93 | ||
94 | What: /sys/class/mtd/mtdX/size | |
95 | Date: April 2009 | |
96 | KernelVersion: 2.6.29 | |
97 | Contact: linux-mtd@lists.infradead.org | |
98 | Description: | |
99 | Total size of the device/partition, in bytes. | |
100 | ||
101 | What: /sys/class/mtd/mtdX/type | |
102 | Date: April 2009 | |
103 | KernelVersion: 2.6.29 | |
104 | Contact: linux-mtd@lists.infradead.org | |
105 | Description: | |
106 | One of the following ASCII strings, representing the device | |
107 | type: | |
108 | ||
109 | absent, ram, rom, nor, nand, dataflash, ubi, unknown | |
110 | ||
111 | What: /sys/class/mtd/mtdX/writesize | |
112 | Date: April 2009 | |
113 | KernelVersion: 2.6.29 | |
114 | Contact: linux-mtd@lists.infradead.org | |
115 | Description: | |
116 | Minimal writable flash unit size. This will always be | |
117 | a positive integer. | |
118 | ||
119 | In the case of NOR flash it is 1 (even though individual | |
120 | bits can be cleared). | |
121 | ||
122 | In the case of NAND flash it is one NAND page (or a | |
123 | half page, or a quarter page). | |
124 | ||
125 | In the case of ECC NOR, it is the ECC block size. | |
a9b672e8 MD |
126 | |
127 | What: /sys/class/mtd/mtdX/ecc_strength | |
128 | Date: April 2012 | |
129 | KernelVersion: 3.4 | |
130 | Contact: linux-mtd@lists.infradead.org | |
131 | Description: | |
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. | |
136 | ||
137 | In the case of devices lacking any ECC capability, it is 0. | |
d062d4ed MD |
138 | |
139 | What: /sys/class/mtd/mtdX/bitflip_threshold | |
140 | Date: April 2012 | |
141 | KernelVersion: 3.4 | |
142 | Contact: linux-mtd@lists.infradead.org | |
143 | Description: | |
144 | This allows the user to examine and adjust the criteria by which | |
021796b8 MD |
145 | mtd returns -EUCLEAN from mtd_read() and mtd_read_oob(). If the |
146 | maximum number of bit errors that were corrected on any single | |
147 | region comprising an ecc step (as reported by the driver) equals | |
148 | or exceeds this value, -EUCLEAN is returned. Otherwise, absent | |
149 | an error, 0 is returned. Higher layers (e.g., UBI) use this | |
150 | return code as an indication that an erase block may be | |
151 | degrading and should be scrutinized as a candidate for being | |
152 | marked as bad. | |
d062d4ed MD |
153 | |
154 | The initial value may be specified by the flash device driver. | |
155 | If not, then the default value is ecc_strength. | |
156 | ||
157 | The introduction of this feature brings a subtle change to the | |
158 | meaning of the -EUCLEAN return code. Previously, it was | |
159 | interpreted to mean simply "one or more bit errors were | |
160 | corrected". Its new interpretation can be phrased as "a | |
161 | dangerously high number of bit errors were corrected on one or | |
162 | more regions comprising an ecc step". The precise definition of | |
163 | "dangerously high" can be adjusted by the user with | |
164 | bitflip_threshold. Users are discouraged from doing this, | |
165 | however, unless they know what they are doing and have intimate | |
166 | knowledge of the properties of their device. Broadly speaking, | |
167 | bitflip_threshold should be low enough to detect genuine erase | |
168 | block degradation, but high enough to avoid the consequences of | |
169 | a persistent return value of -EUCLEAN on devices where sticky | |
170 | bitflips occur. Note that if bitflip_threshold exceeds | |
021796b8 | 171 | ecc_strength, -EUCLEAN is never returned by the read operations. |
edbc4540 MD |
172 | Conversely, if bitflip_threshold is zero, -EUCLEAN is always |
173 | returned, absent a hard error. | |
d062d4ed MD |
174 | |
175 | This is generally applicable only to NAND flash devices with ECC | |
edbc4540 MD |
176 | capability. It is ignored on devices lacking ECC capability; |
177 | i.e., devices for which ecc_strength is zero. |