1# SPDX-License-Identifier: GPL-2.0-only 2 3menu "NAND" 4 5config MTD_NAND_CORE 6 tristate 7 8source "drivers/mtd/nand/onenand/Kconfig" 9source "drivers/mtd/nand/raw/Kconfig" 10source "drivers/mtd/nand/spi/Kconfig" 11 12menu "ECC engine support" 13 14config MTD_NAND_ECC 15 bool 16 select MTD_NAND_CORE 17 18config MTD_NAND_ECC_SW_HAMMING 19 bool "Software Hamming ECC engine" 20 default y if MTD_RAW_NAND 21 select MTD_NAND_ECC 22 help 23 This enables support for software Hamming error 24 correction. This correction can correct up to 1 bit error 25 per chunk and detect up to 2 bit errors. While it used to be 26 widely used with old parts, newer NAND chips usually require 27 more strength correction and in this case BCH or RS will be 28 preferred. 29 30config MTD_NAND_ECC_SW_HAMMING_SMC 31 bool "NAND ECC Smart Media byte order" 32 depends on MTD_NAND_ECC_SW_HAMMING 33 default n 34 help 35 Software ECC according to the Smart Media Specification. 36 The original Linux implementation had byte 0 and 1 swapped. 37 38config MTD_NAND_ECC_SW_BCH 39 bool "Software BCH ECC engine" 40 select BCH 41 select MTD_NAND_ECC 42 default n 43 help 44 This enables support for software BCH error correction. Binary BCH 45 codes are more powerful and cpu intensive than traditional Hamming 46 ECC codes. They are used with NAND devices requiring more than 1 bit 47 of error correction. 48 49config MTD_NAND_ECC_MXIC 50 bool "Macronix external hardware ECC engine" 51 depends on HAS_IOMEM 52 select MTD_NAND_ECC 53 help 54 This enables support for the hardware ECC engine from Macronix. 55 56config MTD_NAND_ECC_MEDIATEK 57 tristate "Mediatek hardware ECC engine" 58 depends on HAS_IOMEM 59 depends on ARCH_MEDIATEK || COMPILE_TEST 60 select MTD_NAND_ECC 61 help 62 This enables support for the hardware ECC engine from Mediatek. 63 64endmenu 65 66endmenu 67