mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-17 21:50:44 -05:00
The Realtek RTl93xx switch SoC series has a built in ECC controller that can provide BCH6 or BCH12 over 512 data and 6 tag bytes. It generates 10 (BCH6) or 20 (BCH12) bytes of parity. This engine will most likely work in conjunction with the Realtek spi-mem based NAND controller but can work on its own. Therefore the initial implementation will be of type external. Remark! The engine can support any data blocks that are multiples of 512 bytes. For now limit it to data+oob layouts that have been analyzed from existing devices. This way it keeps compatibility and pre-existing vendor data can be read. Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
75 lines
2.0 KiB
Plaintext
75 lines
2.0 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
menu "NAND"
|
|
|
|
config MTD_NAND_CORE
|
|
tristate
|
|
|
|
source "drivers/mtd/nand/onenand/Kconfig"
|
|
source "drivers/mtd/nand/raw/Kconfig"
|
|
source "drivers/mtd/nand/spi/Kconfig"
|
|
|
|
menu "ECC engine support"
|
|
|
|
config MTD_NAND_ECC
|
|
bool
|
|
select MTD_NAND_CORE
|
|
|
|
config MTD_NAND_ECC_SW_HAMMING
|
|
bool "Software Hamming ECC engine"
|
|
default y if MTD_RAW_NAND
|
|
select MTD_NAND_ECC
|
|
help
|
|
This enables support for software Hamming error
|
|
correction. This correction can correct up to 1 bit error
|
|
per chunk and detect up to 2 bit errors. While it used to be
|
|
widely used with old parts, newer NAND chips usually require
|
|
more strength correction and in this case BCH or RS will be
|
|
preferred.
|
|
|
|
config MTD_NAND_ECC_SW_HAMMING_SMC
|
|
bool "NAND ECC Smart Media byte order"
|
|
depends on MTD_NAND_ECC_SW_HAMMING
|
|
default n
|
|
help
|
|
Software ECC according to the Smart Media Specification.
|
|
The original Linux implementation had byte 0 and 1 swapped.
|
|
|
|
config MTD_NAND_ECC_SW_BCH
|
|
bool "Software BCH ECC engine"
|
|
select BCH
|
|
select MTD_NAND_ECC
|
|
default n
|
|
help
|
|
This enables support for software BCH error correction. Binary BCH
|
|
codes are more powerful and cpu intensive than traditional Hamming
|
|
ECC codes. They are used with NAND devices requiring more than 1 bit
|
|
of error correction.
|
|
|
|
config MTD_NAND_ECC_MXIC
|
|
bool "Macronix external hardware ECC engine"
|
|
depends on HAS_IOMEM
|
|
select MTD_NAND_ECC
|
|
help
|
|
This enables support for the hardware ECC engine from Macronix.
|
|
|
|
config MTD_NAND_ECC_MEDIATEK
|
|
tristate "Mediatek hardware ECC engine"
|
|
depends on HAS_IOMEM
|
|
depends on ARCH_MEDIATEK || COMPILE_TEST
|
|
select MTD_NAND_ECC
|
|
help
|
|
This enables support for the hardware ECC engine from Mediatek.
|
|
|
|
config MTD_NAND_ECC_REALTEK
|
|
tristate "Realtek RTL93xx hardware ECC engine"
|
|
depends on HAS_IOMEM
|
|
depends on MACH_REALTEK_RTL || COMPILE_TEST
|
|
select MTD_NAND_ECC
|
|
help
|
|
This enables support for the hardware ECC engine from Realtek.
|
|
|
|
endmenu
|
|
|
|
endmenu
|