Kevin Cernekee | 19fe7f1 | 2009-04-08 22:51:43 -0700 | [diff] [blame] | 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 |
Artem Bityutskiy | 880113ef | 2013-03-14 13:09:08 +0200 | [diff] [blame] | 17 | device, or concatenated flash devices. |
Kevin Cernekee | 19fe7f1 | 2009-04-08 22:51:43 -0700 | [diff] [blame] | 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 |
Artem Bityutskiy | 880113ef | 2013-03-14 13:09:08 +0200 | [diff] [blame] | 25 | nodes for /sys/class/mtd/mtdX/ . |
Kevin Cernekee | 19fe7f1 | 2009-04-08 22:51:43 -0700 | [diff] [blame] | 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 | |
Huang Shijie | f483724 | 2013-09-25 14:58:19 +0800 | [diff] [blame] | 107 | absent, ram, rom, nor, nand, mlc-nand, dataflash, ubi, unknown |
Kevin Cernekee | 19fe7f1 | 2009-04-08 22:51:43 -0700 | [diff] [blame] | 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. |
Mike Dunn | a9b672e | 2012-04-25 12:06:07 -0700 | [diff] [blame] | 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 |
Huang Shijie | ed20294 | 2013-08-16 10:10:09 +0800 | [diff] [blame] | 131 | correcting within each region covering an ECC step (see |
| 132 | ecc_step_size). This will always be a non-negative integer. |
Mike Dunn | a9b672e | 2012-04-25 12:06:07 -0700 | [diff] [blame] | 133 | |
| 134 | In the case of devices lacking any ECC capability, it is 0. |
Mike Dunn | d062d4e | 2012-04-25 12:06:08 -0700 | [diff] [blame] | 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 |
Mike Dunn | 021796b | 2012-05-22 11:03:42 -0700 | [diff] [blame] | 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. |
Mike Dunn | d062d4e | 2012-04-25 12:06:08 -0700 | [diff] [blame] | 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 |
Mike Dunn | 021796b | 2012-05-22 11:03:42 -0700 | [diff] [blame] | 168 | ecc_strength, -EUCLEAN is never returned by the read operations. |
Mike Dunn | edbc4540 | 2012-04-25 12:06:11 -0700 | [diff] [blame] | 169 | Conversely, if bitflip_threshold is zero, -EUCLEAN is always |
| 170 | returned, absent a hard error. |
Mike Dunn | d062d4e | 2012-04-25 12:06:08 -0700 | [diff] [blame] | 171 | |
| 172 | This is generally applicable only to NAND flash devices with ECC |
Mike Dunn | edbc4540 | 2012-04-25 12:06:11 -0700 | [diff] [blame] | 173 | capability. It is ignored on devices lacking ECC capability; |
| 174 | i.e., devices for which ecc_strength is zero. |
Huang Shijie | ed20294 | 2013-08-16 10:10:09 +0800 | [diff] [blame] | 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. |
Ezequiel Garcia | 990a3af | 2014-06-24 10:55:50 -0300 | [diff] [blame] | 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). |
Dan Ehrenberg | a62c24d | 2015-04-02 15:15:11 -0700 | [diff] [blame] | 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. |