021796b892
The -EUCLEAN return value applies to mtd_read_oob() as well as mtd_read(), but only mtd_read() was mentioned in the blurd on bitflip_threshold in the ABI documentation. Signed-off-by: Mike Dunn <mikedunn@newsguy.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
177 lines
6.1 KiB
Text
177 lines
6.1 KiB
Text
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.
|
|
|
|
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.
|
|
|
|
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
|
|
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.
|
|
|
|
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
|
|
ecc_strength, -EUCLEAN is never returned by the read operations.
|
|
Conversely, if bitflip_threshold is zero, -EUCLEAN is always
|
|
returned, absent a hard error.
|
|
|
|
This is generally applicable only to NAND flash devices with ECC
|
|
capability. It is ignored on devices lacking ECC capability;
|
|
i.e., devices for which ecc_strength is zero.
|