# 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. endmenu endmenu