1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2deedeb60SMiquel Raynal 3deedeb60SMiquel Raynalmenu "NAND" 4deedeb60SMiquel Raynal 59c3736a3SBoris Brezillonconfig MTD_NAND_CORE 69c3736a3SBoris Brezillon tristate 79c3736a3SBoris Brezillon 826777d37SBoris Brezillonsource "drivers/mtd/nand/onenand/Kconfig" 993db446aSBoris Brezillonsource "drivers/mtd/nand/raw/Kconfig" 107529df46SPeter Pansource "drivers/mtd/nand/spi/Kconfig" 11deedeb60SMiquel Raynal 12a8c7ffdbSMiquel Raynalmenu "ECC engine support" 13a8c7ffdbSMiquel Raynal 14a8c7ffdbSMiquel Raynalconfig MTD_NAND_ECC 15a8c7ffdbSMiquel Raynal bool 16928f0736SMiquel Raynal select MTD_NAND_CORE 17a8c7ffdbSMiquel Raynal 18e5acf9c8SMiquel Raynalconfig MTD_NAND_ECC_SW_HAMMING 195180a62cSMiquel Raynal bool "Software Hamming ECC engine" 205180a62cSMiquel Raynal default y if MTD_RAW_NAND 215180a62cSMiquel Raynal select MTD_NAND_ECC 225180a62cSMiquel Raynal help 235180a62cSMiquel Raynal This enables support for software Hamming error 245180a62cSMiquel Raynal correction. This correction can correct up to 1 bit error 255180a62cSMiquel Raynal per chunk and detect up to 2 bit errors. While it used to be 265180a62cSMiquel Raynal widely used with old parts, newer NAND chips usually require 275180a62cSMiquel Raynal more strength correction and in this case BCH or RS will be 285180a62cSMiquel Raynal preferred. 29e5acf9c8SMiquel Raynal 30e5acf9c8SMiquel Raynalconfig MTD_NAND_ECC_SW_HAMMING_SMC 31e5acf9c8SMiquel Raynal bool "NAND ECC Smart Media byte order" 32e5acf9c8SMiquel Raynal depends on MTD_NAND_ECC_SW_HAMMING 33e5acf9c8SMiquel Raynal default n 34e5acf9c8SMiquel Raynal help 35e5acf9c8SMiquel Raynal Software ECC according to the Smart Media Specification. 36e5acf9c8SMiquel Raynal The original Linux implementation had byte 0 and 1 swapped. 37e5acf9c8SMiquel Raynal 38cdbe8df5SMiquel Raynalconfig MTD_NAND_ECC_SW_BCH 39cdbe8df5SMiquel Raynal bool "Software BCH ECC engine" 40cdbe8df5SMiquel Raynal select BCH 41cdbe8df5SMiquel Raynal select MTD_NAND_ECC 42cdbe8df5SMiquel Raynal default n 43cdbe8df5SMiquel Raynal help 44cdbe8df5SMiquel Raynal This enables support for software BCH error correction. Binary BCH 45cdbe8df5SMiquel Raynal codes are more powerful and cpu intensive than traditional Hamming 46cdbe8df5SMiquel Raynal ECC codes. They are used with NAND devices requiring more than 1 bit 47cdbe8df5SMiquel Raynal of error correction. 48cdbe8df5SMiquel Raynal 4948e6633aSMiquel Raynalconfig MTD_NAND_ECC_MXIC 5048e6633aSMiquel Raynal bool "Macronix external hardware ECC engine" 518f877b7eSMiquel Raynal depends on HAS_IOMEM 5248e6633aSMiquel Raynal select MTD_NAND_ECC 5348e6633aSMiquel Raynal help 5448e6633aSMiquel Raynal This enables support for the hardware ECC engine from Macronix. 5548e6633aSMiquel Raynal 564fd62f15SChuanhong Guoconfig MTD_NAND_ECC_MEDIATEK 574fd62f15SChuanhong Guo tristate "Mediatek hardware ECC engine" 584fd62f15SChuanhong Guo depends on HAS_IOMEM 59*66d7a40bSGeert Uytterhoeven depends on ARCH_MEDIATEK || COMPILE_TEST 604fd62f15SChuanhong Guo select MTD_NAND_ECC 614fd62f15SChuanhong Guo help 624fd62f15SChuanhong Guo This enables support for the hardware ECC engine from Mediatek. 634fd62f15SChuanhong Guo 64a8c7ffdbSMiquel Raynalendmenu 65a8c7ffdbSMiquel Raynal 66deedeb60SMiquel Raynalendmenu 67