linux/drivers/mtd/nand/Kconfig
<<
>>
Prefs
   1config MTD_NAND_ECC
   2        tristate
   3
   4config MTD_NAND_ECC_SMC
   5        bool "NAND ECC Smart Media byte order"
   6        depends on MTD_NAND_ECC
   7        default n
   8        help
   9          Software ECC according to the Smart Media Specification.
  10          The original Linux implementation had byte 0 and 1 swapped.
  11
  12
  13menuconfig MTD_NAND
  14        tristate "NAND Device Support"
  15        depends on MTD
  16        select MTD_NAND_IDS
  17        select MTD_NAND_ECC
  18        help
  19          This enables support for accessing all type of NAND flash
  20          devices. For further information see
  21          <http://www.linux-mtd.infradead.org/doc/nand.html>.
  22
  23if MTD_NAND
  24
  25config MTD_NAND_BCH
  26        tristate
  27        select BCH
  28        depends on MTD_NAND_ECC_BCH
  29        default MTD_NAND
  30
  31config MTD_NAND_ECC_BCH
  32        bool "Support software BCH ECC"
  33        default n
  34        help
  35          This enables support for software BCH error correction. Binary BCH
  36          codes are more powerful and cpu intensive than traditional Hamming
  37          ECC codes. They are used with NAND devices requiring more than 1 bit
  38          of error correction.
  39
  40config MTD_SM_COMMON
  41        tristate
  42        default n
  43
  44config MTD_NAND_DENALI
  45        tristate
  46
  47config MTD_NAND_DENALI_PCI
  48        tristate "Support Denali NAND controller on Intel Moorestown"
  49        select MTD_NAND_DENALI
  50        depends on HAS_DMA && PCI
  51        help
  52          Enable the driver for NAND flash on Intel Moorestown, using the
  53          Denali NAND controller core.
  54
  55config MTD_NAND_DENALI_DT
  56        tristate "Support Denali NAND controller as a DT device"
  57        select MTD_NAND_DENALI
  58        depends on HAS_DMA && HAVE_CLK
  59        help
  60          Enable the driver for NAND flash on platforms using a Denali NAND
  61          controller as a DT device.
  62
  63config MTD_NAND_DENALI_SCRATCH_REG_ADDR
  64        hex "Denali NAND size scratch register address"
  65        default "0xFF108018"
  66        depends on MTD_NAND_DENALI_PCI
  67        help
  68          Some platforms place the NAND chip size in a scratch register
  69          because (some versions of) the driver aren't able to automatically
  70          determine the size of certain chips. Set the address of the
  71          scratch register here to enable this feature. On Intel Moorestown
  72          boards, the scratch register is at 0xFF108018.
  73
  74config MTD_NAND_GPIO
  75        tristate "GPIO assisted NAND Flash driver"
  76        depends on GPIOLIB || COMPILE_TEST
  77        help
  78          This enables a NAND flash driver where control signals are
  79          connected to GPIO pins, and commands and data are communicated
  80          via a memory mapped interface.
  81
  82config MTD_NAND_AMS_DELTA
  83        tristate "NAND Flash device on Amstrad E3"
  84        depends on MACH_AMS_DELTA
  85        default y
  86        help
  87          Support for NAND flash on Amstrad E3 (Delta).
  88
  89config MTD_NAND_OMAP2
  90        tristate "NAND Flash device on OMAP2, OMAP3 and OMAP4"
  91        depends on ARCH_OMAP2PLUS
  92        help
  93          Support for NAND flash on Texas Instruments OMAP2, OMAP3 and OMAP4
  94          platforms.
  95
  96config MTD_NAND_OMAP_BCH
  97        depends on MTD_NAND_OMAP2
  98        bool "Support hardware based BCH error correction"
  99        default n
 100        select BCH
 101        help
 102          This config enables the ELM hardware engine, which can be used to
 103          locate and correct errors when using BCH ECC scheme. This offloads
 104          the cpu from doing ECC error searching and correction. However some
 105          legacy OMAP families like OMAP2xxx, OMAP3xxx do not have ELM engine
 106          so this is optional for them.
 107
 108config MTD_NAND_OMAP_BCH_BUILD
 109        def_tristate MTD_NAND_OMAP2 && MTD_NAND_OMAP_BCH
 110
 111config MTD_NAND_IDS
 112        tristate
 113
 114config MTD_NAND_RICOH
 115        tristate "Ricoh xD card reader"
 116        default n
 117        depends on PCI
 118        select MTD_SM_COMMON
 119        help
 120          Enable support for Ricoh R5C852 xD card reader
 121          You also need to enable ether
 122          NAND SSFDC (SmartMedia) read only translation layer' or new
 123          expermental, readwrite
 124          'SmartMedia/xD new translation layer'
 125
 126config MTD_NAND_AU1550
 127        tristate "Au1550/1200 NAND support"
 128        depends on MIPS_ALCHEMY
 129        help
 130          This enables the driver for the NAND flash controller on the
 131          AMD/Alchemy 1550 SOC.
 132
 133config MTD_NAND_BF5XX
 134        tristate "Blackfin on-chip NAND Flash Controller driver"
 135        depends on BF54x || BF52x
 136        help
 137          This enables the Blackfin on-chip NAND flash controller
 138
 139          No board specific support is done by this driver, each board
 140          must advertise a platform_device for the driver to attach.
 141
 142          This driver can also be built as a module. If so, the module
 143          will be called bf5xx-nand.
 144
 145config MTD_NAND_BF5XX_HWECC
 146        bool "BF5XX NAND Hardware ECC"
 147        default y
 148        depends on MTD_NAND_BF5XX
 149        help
 150          Enable the use of the BF5XX's internal ECC generator when
 151          using NAND.
 152
 153config MTD_NAND_BF5XX_BOOTROM_ECC
 154        bool "Use Blackfin BootROM ECC Layout"
 155        default n
 156        depends on MTD_NAND_BF5XX_HWECC
 157        help
 158          If you wish to modify NAND pages and allow the Blackfin on-chip
 159          BootROM to boot from them, say Y here.  This is only necessary
 160          if you are booting U-Boot out of NAND and you wish to update
 161          U-Boot from Linux' userspace.  Otherwise, you should say N here.
 162
 163          If unsure, say N.
 164
 165config MTD_NAND_S3C2410
 166        tristate "NAND Flash support for Samsung S3C SoCs"
 167        depends on ARCH_S3C24XX || ARCH_S3C64XX
 168        help
 169          This enables the NAND flash controller on the S3C24xx and S3C64xx
 170          SoCs
 171
 172          No board specific support is done by this driver, each board
 173          must advertise a platform_device for the driver to attach.
 174
 175config MTD_NAND_S3C2410_DEBUG
 176        bool "Samsung S3C NAND driver debug"
 177        depends on MTD_NAND_S3C2410
 178        help
 179          Enable debugging of the S3C NAND driver
 180
 181config MTD_NAND_S3C2410_HWECC
 182        bool "Samsung S3C NAND Hardware ECC"
 183        depends on MTD_NAND_S3C2410
 184        help
 185          Enable the use of the controller's internal ECC generator when
 186          using NAND. Early versions of the chips have had problems with
 187          incorrect ECC generation, and if using these, the default of
 188          software ECC is preferable.
 189
 190config MTD_NAND_NDFC
 191        tristate "NDFC NanD Flash Controller"
 192        depends on 4xx
 193        select MTD_NAND_ECC_SMC
 194        help
 195         NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs
 196
 197config MTD_NAND_S3C2410_CLKSTOP
 198        bool "Samsung S3C NAND IDLE clock stop"
 199        depends on MTD_NAND_S3C2410
 200        default n
 201        help
 202          Stop the clock to the NAND controller when there is no chip
 203          selected to save power. This will mean there is a small delay
 204          when the is NAND chip selected or released, but will save
 205          approximately 5mA of power when there is nothing happening.
 206
 207config MTD_NAND_DISKONCHIP
 208        tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation)"
 209        depends on HAS_IOMEM
 210        select REED_SOLOMON
 211        select REED_SOLOMON_DEC16
 212        help
 213          This is a reimplementation of M-Systems DiskOnChip 2000,
 214          Millennium and Millennium Plus as a standard NAND device driver,
 215          as opposed to the earlier self-contained MTD device drivers.
 216          This should enable, among other things, proper JFFS2 operation on
 217          these devices.
 218
 219config MTD_NAND_DISKONCHIP_PROBE_ADVANCED
 220        bool "Advanced detection options for DiskOnChip"
 221        depends on MTD_NAND_DISKONCHIP
 222        help
 223          This option allows you to specify nonstandard address at which to
 224          probe for a DiskOnChip, or to change the detection options.  You
 225          are unlikely to need any of this unless you are using LinuxBIOS.
 226          Say 'N'.
 227
 228config MTD_NAND_DISKONCHIP_PROBE_ADDRESS
 229        hex "Physical address of DiskOnChip" if MTD_NAND_DISKONCHIP_PROBE_ADVANCED
 230        depends on MTD_NAND_DISKONCHIP
 231        default "0"
 232        ---help---
 233        By default, the probe for DiskOnChip devices will look for a
 234        DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
 235        This option allows you to specify a single address at which to probe
 236        for the device, which is useful if you have other devices in that
 237        range which get upset when they are probed.
 238
 239        (Note that on PowerPC, the normal probe will only check at
 240        0xE4000000.)
 241
 242        Normally, you should leave this set to zero, to allow the probe at
 243        the normal addresses.
 244
 245config MTD_NAND_DISKONCHIP_PROBE_HIGH
 246        bool "Probe high addresses"
 247        depends on MTD_NAND_DISKONCHIP_PROBE_ADVANCED
 248        help
 249          By default, the probe for DiskOnChip devices will look for a
 250          DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
 251          This option changes to make it probe between 0xFFFC8000 and
 252          0xFFFEE000.  Unless you are using LinuxBIOS, this is unlikely to be
 253          useful to you.  Say 'N'.
 254
 255config MTD_NAND_DISKONCHIP_BBTWRITE
 256        bool "Allow BBT writes on DiskOnChip Millennium and 2000TSOP"
 257        depends on MTD_NAND_DISKONCHIP
 258        help
 259          On DiskOnChip devices shipped with the INFTL filesystem (Millennium
 260          and 2000 TSOP/Alon), Linux reserves some space at the end of the
 261          device for the Bad Block Table (BBT).  If you have existing INFTL
 262          data on your device (created by non-Linux tools such as M-Systems'
 263          DOS drivers), your data might overlap the area Linux wants to use for
 264          the BBT.  If this is a concern for you, leave this option disabled and
 265          Linux will not write BBT data into this area.
 266          The downside of leaving this option disabled is that if bad blocks
 267          are detected by Linux, they will not be recorded in the BBT, which
 268          could cause future problems.
 269          Once you enable this option, new filesystems (INFTL or others, created
 270          in Linux or other operating systems) will not use the reserved area.
 271          The only reason not to enable this option is to prevent damage to
 272          preexisting filesystems.
 273          Even if you leave this disabled, you can enable BBT writes at module
 274          load time (assuming you build diskonchip as a module) with the module
 275          parameter "inftl_bbt_write=1".
 276
 277config MTD_NAND_DOCG4
 278        tristate "Support for DiskOnChip G4"
 279        depends on HAS_IOMEM
 280        select BCH
 281        select BITREVERSE
 282        help
 283          Support for diskonchip G4 nand flash, found in various smartphones and
 284          PDAs, among them the Palm Treo680, HTC Prophet and Wizard, Toshiba
 285          Portege G900, Asus P526, and O2 XDA Zinc.
 286
 287          With this driver you will be able to use UBI and create a ubifs on the
 288          device, so you may wish to consider enabling UBI and UBIFS as well.
 289
 290          These devices ship with the Mys/Sandisk SAFTL formatting, for which
 291          there is currently no mtd parser, so you may want to use command line
 292          partitioning to segregate write-protected blocks. On the Treo680, the
 293          first five erase blocks (256KiB each) are write-protected, followed
 294          by the block containing the saftl partition table.  This is probably
 295          typical.
 296
 297config MTD_NAND_SHARPSL
 298        tristate "Support for NAND Flash on Sharp SL Series (C7xx + others)"
 299        depends on ARCH_PXA
 300
 301config MTD_NAND_CAFE
 302        tristate "NAND support for OLPC CAFÉ chip"
 303        depends on PCI
 304        select REED_SOLOMON
 305        select REED_SOLOMON_DEC16
 306        help
 307          Use NAND flash attached to the CAFÉ chip designed for the OLPC
 308          laptop.
 309
 310config MTD_NAND_CS553X
 311        tristate "NAND support for CS5535/CS5536 (AMD Geode companion chip)"
 312        depends on X86_32
 313        help
 314          The CS553x companion chips for the AMD Geode processor
 315          include NAND flash controllers with built-in hardware ECC
 316          capabilities; enabling this option will allow you to use
 317          these. The driver will check the MSRs to verify that the
 318          controller is enabled for NAND, and currently requires that
 319          the controller be in MMIO mode.
 320
 321          If you say "m", the module will be called cs553x_nand.
 322
 323config MTD_NAND_ATMEL
 324        tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32"
 325        depends on ARCH_AT91 || AVR32
 326        help
 327          Enables support for NAND Flash / Smart Media Card interface
 328          on Atmel AT91 and AVR32 processors.
 329
 330config MTD_NAND_PXA3xx
 331        tristate "NAND support on PXA3xx and Armada 370/XP"
 332        depends on PXA3xx || ARCH_MMP || PLAT_ORION
 333        help
 334          This enables the driver for the NAND flash device found on
 335          PXA3xx processors (NFCv1) and also on Armada 370/XP (NFCv2).
 336
 337config MTD_NAND_SLC_LPC32XX
 338        tristate "NXP LPC32xx SLC Controller"
 339        depends on ARCH_LPC32XX
 340        help
 341          Enables support for NXP's LPC32XX SLC (i.e. for Single Level Cell
 342          chips) NAND controller. This is the default for the PHYTEC 3250
 343          reference board which contains a NAND256R3A2CZA6 chip.
 344
 345          Please check the actual NAND chip connected and its support
 346          by the SLC NAND controller.
 347
 348config MTD_NAND_MLC_LPC32XX
 349        tristate "NXP LPC32xx MLC Controller"
 350        depends on ARCH_LPC32XX
 351        help
 352          Uses the LPC32XX MLC (i.e. for Multi Level Cell chips) NAND
 353          controller. This is the default for the WORK92105 controller
 354          board.
 355
 356          Please check the actual NAND chip connected and its support
 357          by the MLC NAND controller.
 358
 359config MTD_NAND_CM_X270
 360        tristate "Support for NAND Flash on CM-X270 modules"
 361        depends on MACH_ARMCORE
 362
 363config MTD_NAND_PASEMI
 364        tristate "NAND support for PA Semi PWRficient"
 365        depends on PPC_PASEMI
 366        help
 367          Enables support for NAND Flash interface on PA Semi PWRficient
 368          based boards
 369
 370config MTD_NAND_TMIO
 371        tristate "NAND Flash device on Toshiba Mobile IO Controller"
 372        depends on MFD_TMIO
 373        help
 374          Support for NAND flash connected to a Toshiba Mobile IO
 375          Controller in some PDAs, including the Sharp SL6000x.
 376
 377config MTD_NAND_NANDSIM
 378        tristate "Support for NAND Flash Simulator"
 379        help
 380          The simulator may simulate various NAND flash chips for the
 381          MTD nand layer.
 382
 383config MTD_NAND_GPMI_NAND
 384        tristate "GPMI NAND Flash Controller driver"
 385        depends on MTD_NAND && MXS_DMA
 386        help
 387         Enables NAND Flash support for IMX23, IMX28 or IMX6.
 388         The GPMI controller is very powerful, with the help of BCH
 389         module, it can do the hardware ECC. The GPMI supports several
 390         NAND flashs at the same time. The GPMI may conflicts with other
 391         block, such as SD card. So pay attention to it when you enable
 392         the GPMI.
 393
 394config MTD_NAND_BRCMNAND
 395        tristate "Broadcom STB NAND controller"
 396        depends on ARM || MIPS
 397        help
 398          Enables the Broadcom NAND controller driver. The controller was
 399          originally designed for Set-Top Box but is used on various BCM7xxx,
 400          BCM3xxx, BCM63xxx, iProc/Cygnus and more.
 401
 402config MTD_NAND_BCM47XXNFLASH
 403        tristate "Support for NAND flash on BCM4706 BCMA bus"
 404        depends on BCMA_NFLASH
 405        help
 406          BCMA bus can have various flash memories attached, they are
 407          registered by bcma as platform devices. This enables driver for
 408          NAND flash memories. For now only BCM4706 is supported.
 409
 410config MTD_NAND_PLATFORM
 411        tristate "Support for generic platform NAND driver"
 412        depends on HAS_IOMEM
 413        help
 414          This implements a generic NAND driver for on-SOC platform
 415          devices. You will need to provide platform-specific functions
 416          via platform_data.
 417
 418config MTD_NAND_ORION
 419        tristate "NAND Flash support for Marvell Orion SoC"
 420        depends on PLAT_ORION
 421        help
 422          This enables the NAND flash controller on Orion machines.
 423
 424          No board specific support is done by this driver, each board
 425          must advertise a platform_device for the driver to attach.
 426
 427config MTD_NAND_FSL_ELBC
 428        tristate "NAND support for Freescale eLBC controllers"
 429        depends on PPC
 430        select FSL_LBC
 431        help
 432          Various Freescale chips, including the 8313, include a NAND Flash
 433          Controller Module with built-in hardware ECC capabilities.
 434          Enabling this option will enable you to use this to control
 435          external NAND devices.
 436
 437config MTD_NAND_FSL_IFC
 438        tristate "NAND support for Freescale IFC controller"
 439        depends on MTD_NAND && FSL_SOC
 440        select FSL_IFC
 441        select MEMORY
 442        help
 443          Various Freescale chips e.g P1010, include a NAND Flash machine
 444          with built-in hardware ECC capabilities.
 445          Enabling this option will enable you to use this to control
 446          external NAND devices.
 447
 448config MTD_NAND_FSL_UPM
 449        tristate "Support for NAND on Freescale UPM"
 450        depends on PPC_83xx || PPC_85xx
 451        select FSL_LBC
 452        help
 453          Enables support for NAND Flash chips wired onto Freescale PowerPC
 454          processor localbus with User-Programmable Machine support.
 455
 456config MTD_NAND_MPC5121_NFC
 457        tristate "MPC5121 built-in NAND Flash Controller support"
 458        depends on PPC_MPC512x
 459        help
 460          This enables the driver for the NAND flash controller on the
 461          MPC5121 SoC.
 462
 463config MTD_NAND_MXC
 464        tristate "MXC NAND support"
 465        depends on ARCH_MXC
 466        help
 467          This enables the driver for the NAND flash controller on the
 468          MXC processors.
 469
 470config MTD_NAND_SH_FLCTL
 471        tristate "Support for NAND on Renesas SuperH FLCTL"
 472        depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
 473        depends on HAS_IOMEM
 474        depends on HAS_DMA
 475        help
 476          Several Renesas SuperH CPU has FLCTL. This option enables support
 477          for NAND Flash using FLCTL.
 478
 479config MTD_NAND_DAVINCI
 480        tristate "Support NAND on DaVinci/Keystone SoC"
 481        depends on ARCH_DAVINCI || (ARCH_KEYSTONE && TI_AEMIF)
 482        help
 483          Enable the driver for NAND flash chips on Texas Instruments
 484          DaVinci/Keystone processors.
 485
 486config MTD_NAND_TXX9NDFMC
 487        tristate "NAND Flash support for TXx9 SoC"
 488        depends on SOC_TX4938 || SOC_TX4939
 489        help
 490          This enables the NAND flash controller on the TXx9 SoCs.
 491
 492config MTD_NAND_SOCRATES
 493        tristate "Support for NAND on Socrates board"
 494        depends on SOCRATES
 495        help
 496          Enables support for NAND Flash chips wired onto Socrates board.
 497
 498config MTD_NAND_NUC900
 499        tristate "Support for NAND on Nuvoton NUC9xx/w90p910 evaluation boards."
 500        depends on ARCH_W90X900
 501        help
 502          This enables the driver for the NAND Flash on evaluation board based
 503          on w90p910 / NUC9xx.
 504
 505config MTD_NAND_JZ4740
 506        tristate "Support for JZ4740 SoC NAND controller"
 507        depends on MACH_JZ4740
 508        help
 509                Enables support for NAND Flash on JZ4740 SoC based boards.
 510
 511config MTD_NAND_FSMC
 512        tristate "Support for NAND on ST Micros FSMC"
 513        depends on PLAT_SPEAR || ARCH_NOMADIK || ARCH_U8500 || MACH_U300
 514        help
 515          Enables support for NAND Flash chips on the ST Microelectronics
 516          Flexible Static Memory Controller (FSMC)
 517
 518config MTD_NAND_XWAY
 519        tristate "Support for NAND on Lantiq XWAY SoC"
 520        depends on LANTIQ && SOC_TYPE_XWAY
 521        select MTD_NAND_PLATFORM
 522        help
 523          Enables support for NAND Flash chips on Lantiq XWAY SoCs. NAND is attached
 524          to the External Bus Unit (EBU).
 525
 526config MTD_NAND_SUNXI
 527        tristate "Support for NAND on Allwinner SoCs"
 528        depends on ARCH_SUNXI
 529        help
 530          Enables support for NAND Flash chips on Allwinner SoCs.
 531
 532config MTD_NAND_HISI504
 533        tristate "Support for NAND controller on Hisilicon SoC Hip04"
 534        depends on HAS_DMA
 535        help
 536          Enables support for NAND controller on Hisilicon SoC Hip04.
 537
 538endif # MTD_NAND
 539