|  | config MTD_NAND_ECC | 
|  | tristate | 
|  |  | 
|  | config MTD_NAND_ECC_SMC | 
|  | bool "NAND ECC Smart Media byte order" | 
|  | depends on MTD_NAND_ECC | 
|  | default n | 
|  | help | 
|  | Software ECC according to the Smart Media Specification. | 
|  | The original Linux implementation had byte 0 and 1 swapped. | 
|  |  | 
|  |  | 
|  | menuconfig MTD_NAND | 
|  | tristate "NAND Device Support" | 
|  | depends on MTD | 
|  | select MTD_NAND_IDS | 
|  | select MTD_NAND_ECC | 
|  | help | 
|  | This enables support for accessing all type of NAND flash | 
|  | devices. For further information see | 
|  | <http://www.linux-mtd.infradead.org/doc/nand.html>. | 
|  |  | 
|  | if MTD_NAND | 
|  |  | 
|  | config MTD_NAND_VERIFY_WRITE | 
|  | bool "Verify NAND page writes" | 
|  | help | 
|  | This adds an extra check when data is written to the flash. The | 
|  | NAND flash device internally checks only bits transitioning | 
|  | from 1 to 0. There is a rare possibility that even though the | 
|  | device thinks the write was successful, a bit could have been | 
|  | flipped accidentally due to device wear or something else. | 
|  |  | 
|  | config MTD_NAND_BCH | 
|  | tristate | 
|  | select BCH | 
|  | depends on MTD_NAND_ECC_BCH | 
|  | default MTD_NAND | 
|  |  | 
|  | config MTD_NAND_ECC_BCH | 
|  | bool "Support software BCH 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_SM_COMMON | 
|  | tristate | 
|  | default n | 
|  |  | 
|  | config MTD_NAND_MUSEUM_IDS | 
|  | bool "Enable chip ids for obsolete ancient NAND devices" | 
|  | default n | 
|  | help | 
|  | Enable this option only when your board has first generation | 
|  | NAND chips (page size 256 byte, erase size 4-8KiB). The IDs | 
|  | of these chips were reused by later, larger chips. | 
|  |  | 
|  | config MTD_NAND_AUTCPU12 | 
|  | tristate "SmartMediaCard on autronix autcpu12 board" | 
|  | depends on ARCH_AUTCPU12 | 
|  | help | 
|  | This enables the driver for the autronix autcpu12 board to | 
|  | access the SmartMediaCard. | 
|  |  | 
|  | config MTD_NAND_DENALI | 
|  | depends on PCI | 
|  | tristate "Support Denali NAND controller on Intel Moorestown" | 
|  | help | 
|  | Enable the driver for NAND flash on Intel Moorestown, using the | 
|  | Denali NAND controller core. | 
|  |  | 
|  | config MTD_NAND_DENALI_SCRATCH_REG_ADDR | 
|  | hex "Denali NAND size scratch register address" | 
|  | default "0xFF108018" | 
|  | depends on MTD_NAND_DENALI | 
|  | help | 
|  | Some platforms place the NAND chip size in a scratch register | 
|  | because (some versions of) the driver aren't able to automatically | 
|  | determine the size of certain chips. Set the address of the | 
|  | scratch register here to enable this feature. On Intel Moorestown | 
|  | boards, the scratch register is at 0xFF108018. | 
|  |  | 
|  | config MTD_NAND_H1900 | 
|  | tristate "iPAQ H1900 flash" | 
|  | depends on ARCH_PXA && BROKEN | 
|  | help | 
|  | This enables the driver for the iPAQ h1900 flash. | 
|  |  | 
|  | config MTD_NAND_GPIO | 
|  | tristate "GPIO NAND Flash driver" | 
|  | depends on GENERIC_GPIO && ARM | 
|  | help | 
|  | This enables a GPIO based NAND flash driver. | 
|  |  | 
|  | config MTD_NAND_SPIA | 
|  | tristate "NAND Flash device on SPIA board" | 
|  | depends on ARCH_P720T | 
|  | help | 
|  | If you had to ask, you don't have one. Say 'N'. | 
|  |  | 
|  | config MTD_NAND_AMS_DELTA | 
|  | tristate "NAND Flash device on Amstrad E3" | 
|  | depends on MACH_AMS_DELTA | 
|  | default y | 
|  | help | 
|  | Support for NAND flash on Amstrad E3 (Delta). | 
|  |  | 
|  | config MTD_NAND_OMAP2 | 
|  | tristate "NAND Flash device on OMAP2, OMAP3 and OMAP4" | 
|  | depends on ARM && (ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP4) | 
|  | help | 
|  | Support for NAND flash on Texas Instruments OMAP2, OMAP3 and OMAP4 | 
|  | platforms. | 
|  |  | 
|  | config MTD_NAND_IDS | 
|  | tristate | 
|  |  | 
|  | config MTD_NAND_RICOH | 
|  | tristate "Ricoh xD card reader" | 
|  | default n | 
|  | depends on PCI | 
|  | select MTD_SM_COMMON | 
|  | help | 
|  | Enable support for Ricoh R5C852 xD card reader | 
|  | You also need to enable ether | 
|  | NAND SSFDC (SmartMedia) read only translation layer' or new | 
|  | expermental, readwrite | 
|  | 'SmartMedia/xD new translation layer' | 
|  |  | 
|  | config MTD_NAND_AU1550 | 
|  | tristate "Au1550/1200 NAND support" | 
|  | depends on MIPS_ALCHEMY | 
|  | help | 
|  | This enables the driver for the NAND flash controller on the | 
|  | AMD/Alchemy 1550 SOC. | 
|  |  | 
|  | config MTD_NAND_BF5XX | 
|  | tristate "Blackfin on-chip NAND Flash Controller driver" | 
|  | depends on BF54x || BF52x | 
|  | help | 
|  | This enables the Blackfin on-chip NAND flash controller | 
|  |  | 
|  | No board specific support is done by this driver, each board | 
|  | must advertise a platform_device for the driver to attach. | 
|  |  | 
|  | This driver can also be built as a module. If so, the module | 
|  | will be called bf5xx-nand. | 
|  |  | 
|  | config MTD_NAND_BF5XX_HWECC | 
|  | bool "BF5XX NAND Hardware ECC" | 
|  | default y | 
|  | depends on MTD_NAND_BF5XX | 
|  | help | 
|  | Enable the use of the BF5XX's internal ECC generator when | 
|  | using NAND. | 
|  |  | 
|  | config MTD_NAND_BF5XX_BOOTROM_ECC | 
|  | bool "Use Blackfin BootROM ECC Layout" | 
|  | default n | 
|  | depends on MTD_NAND_BF5XX_HWECC | 
|  | help | 
|  | If you wish to modify NAND pages and allow the Blackfin on-chip | 
|  | BootROM to boot from them, say Y here.  This is only necessary | 
|  | if you are booting U-Boot out of NAND and you wish to update | 
|  | U-Boot from Linux' userspace.  Otherwise, you should say N here. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config MTD_NAND_RTC_FROM4 | 
|  | tristate "Renesas Flash ROM 4-slot interface board (FROM_BOARD4)" | 
|  | depends on SH_SOLUTION_ENGINE | 
|  | select REED_SOLOMON | 
|  | select REED_SOLOMON_DEC8 | 
|  | select BITREVERSE | 
|  | help | 
|  | This enables the driver for the Renesas Technology AG-AND | 
|  | flash interface board (FROM_BOARD4) | 
|  |  | 
|  | config MTD_NAND_PPCHAMELEONEVB | 
|  | tristate "NAND Flash device on PPChameleonEVB board" | 
|  | depends on PPCHAMELEONEVB && BROKEN | 
|  | help | 
|  | This enables the NAND flash driver on the PPChameleon EVB Board. | 
|  |  | 
|  | config MTD_NAND_S3C2410 | 
|  | tristate "NAND Flash support for Samsung S3C SoCs" | 
|  | depends on ARCH_S3C2410 || ARCH_S3C64XX | 
|  | help | 
|  | This enables the NAND flash controller on the S3C24xx and S3C64xx | 
|  | SoCs | 
|  |  | 
|  | No board specific support is done by this driver, each board | 
|  | must advertise a platform_device for the driver to attach. | 
|  |  | 
|  | config MTD_NAND_S3C2410_DEBUG | 
|  | bool "Samsung S3C NAND driver debug" | 
|  | depends on MTD_NAND_S3C2410 | 
|  | help | 
|  | Enable debugging of the S3C NAND driver | 
|  |  | 
|  | config MTD_NAND_S3C2410_HWECC | 
|  | bool "Samsung S3C NAND Hardware ECC" | 
|  | depends on MTD_NAND_S3C2410 | 
|  | help | 
|  | Enable the use of the controller's internal ECC generator when | 
|  | using NAND. Early versions of the chips have had problems with | 
|  | incorrect ECC generation, and if using these, the default of | 
|  | software ECC is preferable. | 
|  |  | 
|  | config MTD_NAND_NDFC | 
|  | tristate "NDFC NanD Flash Controller" | 
|  | depends on 4xx | 
|  | select MTD_NAND_ECC_SMC | 
|  | help | 
|  | NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs | 
|  |  | 
|  | config MTD_NAND_S3C2410_CLKSTOP | 
|  | bool "Samsung S3C NAND IDLE clock stop" | 
|  | depends on MTD_NAND_S3C2410 | 
|  | default n | 
|  | help | 
|  | Stop the clock to the NAND controller when there is no chip | 
|  | selected to save power. This will mean there is a small delay | 
|  | when the is NAND chip selected or released, but will save | 
|  | approximately 5mA of power when there is nothing happening. | 
|  |  | 
|  | config MTD_NAND_BCM_UMI | 
|  | tristate "NAND Flash support for BCM Reference Boards" | 
|  | depends on ARCH_BCMRING | 
|  | help | 
|  | This enables the NAND flash controller on the BCM UMI block. | 
|  |  | 
|  | No board specific support is done by this driver, each board | 
|  | must advertise a platform_device for the driver to attach. | 
|  |  | 
|  | config MTD_NAND_BCM_UMI_HWCS | 
|  | bool "BCM UMI NAND Hardware CS" | 
|  | depends on MTD_NAND_BCM_UMI | 
|  | help | 
|  | Enable the use of the BCM UMI block's internal CS using NAND. | 
|  | This should only be used if you know the external NAND CS can toggle. | 
|  |  | 
|  | config MTD_NAND_DISKONCHIP | 
|  | tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation) (EXPERIMENTAL)" | 
|  | depends on EXPERIMENTAL | 
|  | select REED_SOLOMON | 
|  | select REED_SOLOMON_DEC16 | 
|  | help | 
|  | This is a reimplementation of M-Systems DiskOnChip 2000, | 
|  | Millennium and Millennium Plus as a standard NAND device driver, | 
|  | as opposed to the earlier self-contained MTD device drivers. | 
|  | This should enable, among other things, proper JFFS2 operation on | 
|  | these devices. | 
|  |  | 
|  | config MTD_NAND_DISKONCHIP_PROBE_ADVANCED | 
|  | bool "Advanced detection options for DiskOnChip" | 
|  | depends on MTD_NAND_DISKONCHIP | 
|  | help | 
|  | This option allows you to specify nonstandard address at which to | 
|  | probe for a DiskOnChip, or to change the detection options.  You | 
|  | are unlikely to need any of this unless you are using LinuxBIOS. | 
|  | Say 'N'. | 
|  |  | 
|  | config MTD_NAND_DISKONCHIP_PROBE_ADDRESS | 
|  | hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED | 
|  | depends on MTD_NAND_DISKONCHIP | 
|  | default "0" | 
|  | ---help--- | 
|  | By default, the probe for DiskOnChip devices will look for a | 
|  | DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000. | 
|  | This option allows you to specify a single address at which to probe | 
|  | for the device, which is useful if you have other devices in that | 
|  | range which get upset when they are probed. | 
|  |  | 
|  | (Note that on PowerPC, the normal probe will only check at | 
|  | 0xE4000000.) | 
|  |  | 
|  | Normally, you should leave this set to zero, to allow the probe at | 
|  | the normal addresses. | 
|  |  | 
|  | config MTD_NAND_DISKONCHIP_PROBE_HIGH | 
|  | bool "Probe high addresses" | 
|  | depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED | 
|  | help | 
|  | By default, the probe for DiskOnChip devices will look for a | 
|  | DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000. | 
|  | This option changes to make it probe between 0xFFFC8000 and | 
|  | 0xFFFEE000.  Unless you are using LinuxBIOS, this is unlikely to be | 
|  | useful to you.  Say 'N'. | 
|  |  | 
|  | config MTD_NAND_DISKONCHIP_BBTWRITE | 
|  | bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP" | 
|  | depends on MTD_NAND_DISKONCHIP | 
|  | help | 
|  | On DiskOnChip devices shipped with the INFTL filesystem (Millennium | 
|  | and 2000 TSOP/Alon), Linux reserves some space at the end of the | 
|  | device for the Bad Block Table (BBT).  If you have existing INFTL | 
|  | data on your device (created by non-Linux tools such as M-Systems' | 
|  | DOS drivers), your data might overlap the area Linux wants to use for | 
|  | the BBT.  If this is a concern for you, leave this option disabled and | 
|  | Linux will not write BBT data into this area. | 
|  | The downside of leaving this option disabled is that if bad blocks | 
|  | are detected by Linux, they will not be recorded in the BBT, which | 
|  | could cause future problems. | 
|  | Once you enable this option, new filesystems (INFTL or others, created | 
|  | in Linux or other operating systems) will not use the reserved area. | 
|  | The only reason not to enable this option is to prevent damage to | 
|  | preexisting filesystems. | 
|  | Even if you leave this disabled, you can enable BBT writes at module | 
|  | load time (assuming you build diskonchip as a module) with the module | 
|  | parameter "inftl_bbt_write=1". | 
|  |  | 
|  | config MTD_NAND_SHARPSL | 
|  | tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)" | 
|  | depends on ARCH_PXA | 
|  |  | 
|  | config MTD_NAND_CAFE | 
|  | tristate "NAND support for OLPC CAFÉ chip" | 
|  | depends on PCI | 
|  | select REED_SOLOMON | 
|  | select REED_SOLOMON_DEC16 | 
|  | help | 
|  | Use NAND flash attached to the CAFÉ chip designed for the OLPC | 
|  | laptop. | 
|  |  | 
|  | config MTD_NAND_CS553X | 
|  | tristate "NAND support for CS5535/CS5536 (AMD Geode companion chip)" | 
|  | depends on X86_32 | 
|  | help | 
|  | The CS553x companion chips for the AMD Geode processor | 
|  | include NAND flash controllers with built-in hardware ECC | 
|  | capabilities; enabling this option will allow you to use | 
|  | these. The driver will check the MSRs to verify that the | 
|  | controller is enabled for NAND, and currently requires that | 
|  | the controller be in MMIO mode. | 
|  |  | 
|  | If you say "m", the module will be called cs553x_nand. | 
|  |  | 
|  | config MTD_NAND_ATMEL | 
|  | tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32" | 
|  | depends on ARCH_AT91 || AVR32 | 
|  | help | 
|  | Enables support for NAND Flash / Smart Media Card interface | 
|  | on Atmel AT91 and AVR32 processors. | 
|  | choice | 
|  | prompt "ECC management for NAND Flash / SmartMedia on AT91 / AVR32" | 
|  | depends on MTD_NAND_ATMEL | 
|  |  | 
|  | config MTD_NAND_ATMEL_ECC_HW | 
|  | bool "Hardware ECC" | 
|  | depends on ARCH_AT91SAM9263 || ARCH_AT91SAM9260 || AVR32 | 
|  | help | 
|  | Use hardware ECC instead of software ECC when the chip | 
|  | supports it. | 
|  |  | 
|  | The hardware ECC controller is capable of single bit error | 
|  | correction and 2-bit random detection per page. | 
|  |  | 
|  | NB : hardware and software ECC schemes are incompatible. | 
|  | If you switch from one to another, you'll have to erase your | 
|  | mtd partition. | 
|  |  | 
|  | If unsure, say Y | 
|  |  | 
|  | config MTD_NAND_ATMEL_ECC_SOFT | 
|  | bool "Software ECC" | 
|  | help | 
|  | Use software ECC. | 
|  |  | 
|  | NB : hardware and software ECC schemes are incompatible. | 
|  | If you switch from one to another, you'll have to erase your | 
|  | mtd partition. | 
|  |  | 
|  | config MTD_NAND_ATMEL_ECC_NONE | 
|  | bool "No ECC (testing only, DANGEROUS)" | 
|  | depends on DEBUG_KERNEL | 
|  | help | 
|  | No ECC will be used. | 
|  | It's not a good idea and it should be reserved for testing | 
|  | purpose only. | 
|  |  | 
|  | If unsure, say N | 
|  |  | 
|  | endchoice | 
|  |  | 
|  | config MTD_NAND_PXA3xx | 
|  | tristate "Support for NAND flash devices on PXA3xx" | 
|  | depends on PXA3xx || ARCH_MMP | 
|  | help | 
|  | This enables the driver for the NAND flash device found on | 
|  | PXA3xx processors | 
|  |  | 
|  | config MTD_NAND_CM_X270 | 
|  | tristate "Support for NAND Flash on CM-X270 modules" | 
|  | depends on MACH_ARMCORE | 
|  |  | 
|  | config MTD_NAND_PASEMI | 
|  | tristate "NAND support for PA Semi PWRficient" | 
|  | depends on PPC_PASEMI | 
|  | help | 
|  | Enables support for NAND Flash interface on PA Semi PWRficient | 
|  | based boards | 
|  |  | 
|  | config MTD_NAND_TMIO | 
|  | tristate "NAND Flash device on Toshiba Mobile IO Controller" | 
|  | depends on MFD_TMIO | 
|  | help | 
|  | Support for NAND flash connected to a Toshiba Mobile IO | 
|  | Controller in some PDAs, including the Sharp SL6000x. | 
|  |  | 
|  | config MTD_NAND_NANDSIM | 
|  | tristate "Support for NAND Flash Simulator" | 
|  | help | 
|  | The simulator may simulate various NAND flash chips for the | 
|  | MTD nand layer. | 
|  |  | 
|  | config MTD_NAND_GPMI_NAND | 
|  | bool "GPMI NAND Flash Controller driver" | 
|  | depends on MTD_NAND && (SOC_IMX23 || SOC_IMX28) | 
|  | select MTD_PARTITIONS | 
|  | select MTD_CMDLINE_PARTS | 
|  | help | 
|  | Enables NAND Flash support for IMX23 or IMX28. | 
|  | The GPMI controller is very powerful, with the help of BCH | 
|  | module, it can do the hardware ECC. The GPMI supports several | 
|  | NAND flashs at the same time. The GPMI may conflicts with other | 
|  | block, such as SD card. So pay attention to it when you enable | 
|  | the GPMI. | 
|  |  | 
|  | config MTD_NAND_PLATFORM | 
|  | tristate "Support for generic platform NAND driver" | 
|  | help | 
|  | This implements a generic NAND driver for on-SOC platform | 
|  | devices. You will need to provide platform-specific functions | 
|  | via platform_data. | 
|  |  | 
|  | config MTD_ALAUDA | 
|  | tristate "MTD driver for Olympus MAUSB-10 and Fujifilm DPC-R1" | 
|  | depends on USB | 
|  | help | 
|  | These two (and possibly other) Alauda-based cardreaders for | 
|  | SmartMedia and xD allow raw flash access. | 
|  |  | 
|  | config MTD_NAND_ORION | 
|  | tristate "NAND Flash support for Marvell Orion SoC" | 
|  | depends on PLAT_ORION | 
|  | help | 
|  | This enables the NAND flash controller on Orion machines. | 
|  |  | 
|  | No board specific support is done by this driver, each board | 
|  | must advertise a platform_device for the driver to attach. | 
|  |  | 
|  | config MTD_NAND_FSL_ELBC | 
|  | tristate "NAND support for Freescale eLBC controllers" | 
|  | depends on PPC_OF | 
|  | select FSL_LBC | 
|  | help | 
|  | Various Freescale chips, including the 8313, include a NAND Flash | 
|  | Controller Module with built-in hardware ECC capabilities. | 
|  | Enabling this option will enable you to use this to control | 
|  | external NAND devices. | 
|  |  | 
|  | config MTD_NAND_FSL_UPM | 
|  | tristate "Support for NAND on Freescale UPM" | 
|  | depends on PPC_83xx || PPC_85xx | 
|  | select FSL_LBC | 
|  | help | 
|  | Enables support for NAND Flash chips wired onto Freescale PowerPC | 
|  | processor localbus with User-Programmable Machine support. | 
|  |  | 
|  | config MTD_NAND_MPC5121_NFC | 
|  | tristate "MPC5121 built-in NAND Flash Controller support" | 
|  | depends on PPC_MPC512x | 
|  | help | 
|  | This enables the driver for the NAND flash controller on the | 
|  | MPC5121 SoC. | 
|  |  | 
|  | config MTD_NAND_MXC | 
|  | tristate "MXC NAND support" | 
|  | depends on IMX_HAVE_PLATFORM_MXC_NAND | 
|  | help | 
|  | This enables the driver for the NAND flash controller on the | 
|  | MXC processors. | 
|  |  | 
|  | config MTD_NAND_NOMADIK | 
|  | tristate "ST Nomadik 8815 NAND support" | 
|  | depends on ARCH_NOMADIK | 
|  | help | 
|  | Driver for the NAND flash controller on the Nomadik, with ECC. | 
|  |  | 
|  | config MTD_NAND_SH_FLCTL | 
|  | tristate "Support for NAND on Renesas SuperH FLCTL" | 
|  | depends on SUPERH || ARCH_SHMOBILE | 
|  | help | 
|  | Several Renesas SuperH CPU has FLCTL. This option enables support | 
|  | for NAND Flash using FLCTL. | 
|  |  | 
|  | config MTD_NAND_DAVINCI | 
|  | tristate "Support NAND on DaVinci SoC" | 
|  | depends on ARCH_DAVINCI | 
|  | help | 
|  | Enable the driver for NAND flash chips on Texas Instruments | 
|  | DaVinci processors. | 
|  |  | 
|  | config MTD_NAND_TXX9NDFMC | 
|  | tristate "NAND Flash support for TXx9 SoC" | 
|  | depends on SOC_TX4938 || SOC_TX4939 | 
|  | help | 
|  | This enables the NAND flash controller on the TXx9 SoCs. | 
|  |  | 
|  | config MTD_NAND_SOCRATES | 
|  | tristate "Support for NAND on Socrates board" | 
|  | depends on SOCRATES | 
|  | help | 
|  | Enables support for NAND Flash chips wired onto Socrates board. | 
|  |  | 
|  | config MTD_NAND_NUC900 | 
|  | tristate "Support for NAND on Nuvoton NUC9xx/w90p910 evaluation boards." | 
|  | depends on ARCH_W90X900 | 
|  | help | 
|  | This enables the driver for the NAND Flash on evaluation board based | 
|  | on w90p910 / NUC9xx. | 
|  |  | 
|  | config MTD_NAND_JZ4740 | 
|  | tristate "Support for JZ4740 SoC NAND controller" | 
|  | depends on MACH_JZ4740 | 
|  | help | 
|  | Enables support for NAND Flash on JZ4740 SoC based boards. | 
|  |  | 
|  | config MTD_NAND_FSMC | 
|  | tristate "Support for NAND on ST Micros FSMC" | 
|  | depends on PLAT_SPEAR || PLAT_NOMADIK || MACH_U300 | 
|  | help | 
|  | Enables support for NAND Flash chips on the ST Microelectronics | 
|  | Flexible Static Memory Controller (FSMC) | 
|  |  | 
|  | endif # MTD_NAND |