1cfcc706cSMiquel Raynal 2cfcc706cSMiquel Raynalmenuconfig NAND 353bde89bSMiquel Raynal bool "Raw NAND Device Support" 4cfcc706cSMiquel Raynalif NAND 5cfcc706cSMiquel Raynal 6cfcc706cSMiquel Raynalconfig SYS_NAND_SELF_INIT 7cfcc706cSMiquel Raynal bool 8cfcc706cSMiquel Raynal help 9cfcc706cSMiquel Raynal This option, if enabled, provides more flexible and linux-like 10cfcc706cSMiquel Raynal NAND initialization process. 11cfcc706cSMiquel Raynal 1250c9e2f7SStefan Agnerconfig SYS_NAND_DRIVER_ECC_LAYOUT 1350c9e2f7SStefan Agner bool 1450c9e2f7SStefan Agner help 1550c9e2f7SStefan Agner Omit standard ECC layouts to safe space. Select this if your driver 1650c9e2f7SStefan Agner is known to provide its own ECC layout. 1750c9e2f7SStefan Agner 18cfcc706cSMiquel Raynalconfig NAND_ATMEL 19cfcc706cSMiquel Raynal bool "Support Atmel NAND controller" 20cfcc706cSMiquel Raynal imply SYS_NAND_USE_FLASH_BBT 21cfcc706cSMiquel Raynal help 22cfcc706cSMiquel Raynal Enable this driver for NAND flash platforms using an Atmel NAND 23cfcc706cSMiquel Raynal controller. 24cfcc706cSMiquel Raynal 25c6de2aaeSDerald D. Woodsif NAND_ATMEL 26c6de2aaeSDerald D. Woods 27c6de2aaeSDerald D. Woodsconfig ATMEL_NAND_HWECC 28c6de2aaeSDerald D. Woods bool "Atmel Hardware ECC" 29c6de2aaeSDerald D. Woods default n 30c6de2aaeSDerald D. Woods 31c6de2aaeSDerald D. Woodsconfig ATMEL_NAND_HW_PMECC 32c6de2aaeSDerald D. Woods bool "Atmel Programmable Multibit ECC (PMECC)" 33c6de2aaeSDerald D. Woods select ATMEL_NAND_HWECC 34c6de2aaeSDerald D. Woods default n 35c6de2aaeSDerald D. Woods help 36c6de2aaeSDerald D. Woods The Programmable Multibit ECC (PMECC) controller is a programmable 37c6de2aaeSDerald D. Woods binary BCH(Bose, Chaudhuri and Hocquenghem) encoder and decoder. 38c6de2aaeSDerald D. Woods 39c6de2aaeSDerald D. Woodsconfig PMECC_CAP 40c6de2aaeSDerald D. Woods int "PMECC Correctable ECC Bits" 41c6de2aaeSDerald D. Woods depends on ATMEL_NAND_HW_PMECC 42c6de2aaeSDerald D. Woods default 2 43c6de2aaeSDerald D. Woods help 44c6de2aaeSDerald D. Woods Correctable ECC bits, can be 2, 4, 8, 12, and 24. 45c6de2aaeSDerald D. Woods 46c6de2aaeSDerald D. Woodsconfig PMECC_SECTOR_SIZE 47c6de2aaeSDerald D. Woods int "PMECC Sector Size" 48c6de2aaeSDerald D. Woods depends on ATMEL_NAND_HW_PMECC 49c6de2aaeSDerald D. Woods default 512 50c6de2aaeSDerald D. Woods help 51c6de2aaeSDerald D. Woods Sector size, in bytes, can be 512 or 1024. 52c6de2aaeSDerald D. Woods 53c6de2aaeSDerald D. Woodsconfig SPL_GENERATE_ATMEL_PMECC_HEADER 54c6de2aaeSDerald D. Woods bool "Atmel PMECC Header Generation" 55c6de2aaeSDerald D. Woods select ATMEL_NAND_HWECC 56c6de2aaeSDerald D. Woods select ATMEL_NAND_HW_PMECC 57c6de2aaeSDerald D. Woods default n 58c6de2aaeSDerald D. Woods help 59c6de2aaeSDerald D. Woods Generate Programmable Multibit ECC (PMECC) header for SPL image. 60c6de2aaeSDerald D. Woods 61c6de2aaeSDerald D. Woodsendif 62c6de2aaeSDerald D. Woods 63625940feSPhilippe Reynesconfig NAND_BRCMNAND 64625940feSPhilippe Reynes bool "Support Broadcom NAND controller" 65625940feSPhilippe Reynes depends on OF_CONTROL && DM && MTD 66625940feSPhilippe Reynes help 67625940feSPhilippe Reynes Enable the driver for NAND flash on platforms using a Broadcom NAND 68625940feSPhilippe Reynes controller. 69625940feSPhilippe Reynes 70625940feSPhilippe Reynesconfig NAND_BRCMNAND_6838 71625940feSPhilippe Reynes bool "Support Broadcom NAND controller on bcm6838" 72625940feSPhilippe Reynes depends on NAND_BRCMNAND && ARCH_BMIPS && SOC_BMIPS_BCM6838 73625940feSPhilippe Reynes help 74625940feSPhilippe Reynes Enable support for broadcom nand driver on bcm6838. 75625940feSPhilippe Reynes 76625940feSPhilippe Reynesconfig NAND_BRCMNAND_6858 77625940feSPhilippe Reynes bool "Support Broadcom NAND controller on bcm6858" 78625940feSPhilippe Reynes depends on NAND_BRCMNAND && ARCH_BCM6858 79625940feSPhilippe Reynes help 80625940feSPhilippe Reynes Enable support for broadcom nand driver on bcm6858. 81625940feSPhilippe Reynes 82625940feSPhilippe Reynesconfig NAND_BRCMNAND_63158 83625940feSPhilippe Reynes bool "Support Broadcom NAND controller on bcm63158" 84625940feSPhilippe Reynes depends on NAND_BRCMNAND && ARCH_BCM63158 85625940feSPhilippe Reynes help 86625940feSPhilippe Reynes Enable support for broadcom nand driver on bcm63158. 87625940feSPhilippe Reynes 88cfcc706cSMiquel Raynalconfig NAND_DAVINCI 89cfcc706cSMiquel Raynal bool "Support TI Davinci NAND controller" 90cfcc706cSMiquel Raynal help 91cfcc706cSMiquel Raynal Enable this driver for NAND flash controllers available in TI Davinci 92cfcc706cSMiquel Raynal and Keystone2 platforms 93cfcc706cSMiquel Raynal 94cfcc706cSMiquel Raynalconfig NAND_DENALI 95cfcc706cSMiquel Raynal bool 96cfcc706cSMiquel Raynal select SYS_NAND_SELF_INIT 97cfcc706cSMiquel Raynal imply CMD_NAND 98cfcc706cSMiquel Raynal 99cfcc706cSMiquel Raynalconfig NAND_DENALI_DT 100cfcc706cSMiquel Raynal bool "Support Denali NAND controller as a DT device" 101cfcc706cSMiquel Raynal select NAND_DENALI 102cfcc706cSMiquel Raynal depends on OF_CONTROL && DM 103cfcc706cSMiquel Raynal help 104cfcc706cSMiquel Raynal Enable the driver for NAND flash on platforms using a Denali NAND 105cfcc706cSMiquel Raynal controller as a DT device. 106cfcc706cSMiquel Raynal 107cfcc706cSMiquel Raynalconfig NAND_DENALI_SPARE_AREA_SKIP_BYTES 108cfcc706cSMiquel Raynal int "Number of bytes skipped in OOB area" 109cfcc706cSMiquel Raynal depends on NAND_DENALI 110cfcc706cSMiquel Raynal range 0 63 111cfcc706cSMiquel Raynal help 112cfcc706cSMiquel Raynal This option specifies the number of bytes to skip from the beginning 113cfcc706cSMiquel Raynal of OOB area before last ECC sector data starts. This is potentially 114cfcc706cSMiquel Raynal used to preserve the bad block marker in the OOB area. 115cfcc706cSMiquel Raynal 116cfcc706cSMiquel Raynalconfig NAND_LPC32XX_SLC 117cfcc706cSMiquel Raynal bool "Support LPC32XX_SLC controller" 118cfcc706cSMiquel Raynal help 119cfcc706cSMiquel Raynal Enable the LPC32XX SLC NAND controller. 120cfcc706cSMiquel Raynal 121cfcc706cSMiquel Raynalconfig NAND_OMAP_GPMC 122cfcc706cSMiquel Raynal bool "Support OMAP GPMC NAND controller" 123cfcc706cSMiquel Raynal depends on ARCH_OMAP2PLUS 124cfcc706cSMiquel Raynal help 125cfcc706cSMiquel Raynal Enables omap_gpmc.c driver for OMAPx and AMxxxx platforms. 126cfcc706cSMiquel Raynal GPMC controller is used for parallel NAND flash devices, and can 127cfcc706cSMiquel Raynal do ECC calculation (not ECC error detection) for HAM1, BCH4, BCH8 128cfcc706cSMiquel Raynal and BCH16 ECC algorithms. 129cfcc706cSMiquel Raynal 130cfcc706cSMiquel Raynalconfig NAND_OMAP_GPMC_PREFETCH 131cfcc706cSMiquel Raynal bool "Enable GPMC Prefetch" 132cfcc706cSMiquel Raynal depends on NAND_OMAP_GPMC 133cfcc706cSMiquel Raynal default y 134cfcc706cSMiquel Raynal help 135cfcc706cSMiquel Raynal On OMAP platforms that use the GPMC controller 136cfcc706cSMiquel Raynal (CONFIG_NAND_OMAP_GPMC_PREFETCH), this options enables the code that 137cfcc706cSMiquel Raynal uses the prefetch mode to speed up read operations. 138cfcc706cSMiquel Raynal 139cfcc706cSMiquel Raynalconfig NAND_OMAP_ELM 140cfcc706cSMiquel Raynal bool "Enable ELM driver for OMAPxx and AMxx platforms." 141cfcc706cSMiquel Raynal depends on NAND_OMAP_GPMC && !OMAP34XX 142cfcc706cSMiquel Raynal help 143cfcc706cSMiquel Raynal ELM controller is used for ECC error detection (not ECC calculation) 144cfcc706cSMiquel Raynal of BCH4, BCH8 and BCH16 ECC algorithms. 145cfcc706cSMiquel Raynal Some legacy platforms like OMAP3xx do not have in-built ELM h/w engine, 146cfcc706cSMiquel Raynal thus such SoC platforms need to depend on software library for ECC error 147cfcc706cSMiquel Raynal detection. However ECC calculation on such plaforms would still be 148cfcc706cSMiquel Raynal done by GPMC controller. 149cfcc706cSMiquel Raynal 150cfcc706cSMiquel Raynalconfig NAND_VF610_NFC 151cfcc706cSMiquel Raynal bool "Support for Freescale NFC for VF610" 152cfcc706cSMiquel Raynal select SYS_NAND_SELF_INIT 15350c9e2f7SStefan Agner select SYS_NAND_DRIVER_ECC_LAYOUT 154cfcc706cSMiquel Raynal imply CMD_NAND 155cfcc706cSMiquel Raynal help 156cfcc706cSMiquel Raynal Enables support for NAND Flash Controller on some Freescale 157cfcc706cSMiquel Raynal processors like the VF610, MCF54418 or Kinetis K70. 158cfcc706cSMiquel Raynal The driver supports a maximum 2k page size. The driver 159cfcc706cSMiquel Raynal currently does not support hardware ECC. 160cfcc706cSMiquel Raynal 161b6a0fedbSLukasz Majewskiif NAND_VF610_NFC 162b6a0fedbSLukasz Majewski 163b6a0fedbSLukasz Majewskiconfig NAND_VF610_NFC_DT 164b6a0fedbSLukasz Majewski bool "Support Vybrid's vf610 NAND controller as a DT device" 165b6a0fedbSLukasz Majewski depends on OF_CONTROL && MTD 166b6a0fedbSLukasz Majewski help 167b6a0fedbSLukasz Majewski Enable the driver for Vybrid's vf610 NAND flash on platforms 168b6a0fedbSLukasz Majewski using device tree. 169b6a0fedbSLukasz Majewski 170cfcc706cSMiquel Raynalchoice 171cfcc706cSMiquel Raynal prompt "Hardware ECC strength" 172cfcc706cSMiquel Raynal depends on NAND_VF610_NFC 173cfcc706cSMiquel Raynal default SYS_NAND_VF610_NFC_45_ECC_BYTES 174cfcc706cSMiquel Raynal help 175cfcc706cSMiquel Raynal Select the ECC strength used in the hardware BCH ECC block. 176cfcc706cSMiquel Raynal 177cfcc706cSMiquel Raynalconfig SYS_NAND_VF610_NFC_45_ECC_BYTES 178cfcc706cSMiquel Raynal bool "24-error correction (45 ECC bytes)" 179cfcc706cSMiquel Raynal 180cfcc706cSMiquel Raynalconfig SYS_NAND_VF610_NFC_60_ECC_BYTES 181cfcc706cSMiquel Raynal bool "32-error correction (60 ECC bytes)" 182cfcc706cSMiquel Raynal 183cfcc706cSMiquel Raynalendchoice 184cfcc706cSMiquel Raynal 185b6a0fedbSLukasz Majewskiendif 186b6a0fedbSLukasz Majewski 187cfcc706cSMiquel Raynalconfig NAND_PXA3XX 188cfcc706cSMiquel Raynal bool "Support for NAND on PXA3xx and Armada 370/XP/38x" 189cfcc706cSMiquel Raynal select SYS_NAND_SELF_INIT 190cfcc706cSMiquel Raynal imply CMD_NAND 191cfcc706cSMiquel Raynal help 192cfcc706cSMiquel Raynal This enables the driver for the NAND flash device found on 193cfcc706cSMiquel Raynal PXA3xx processors (NFCv1) and also on Armada 370/XP (NFCv2). 194cfcc706cSMiquel Raynal 195cfcc706cSMiquel Raynalconfig NAND_SUNXI 196cfcc706cSMiquel Raynal bool "Support for NAND on Allwinner SoCs" 197cfcc706cSMiquel Raynal default ARCH_SUNXI 198cfcc706cSMiquel Raynal depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I 199cfcc706cSMiquel Raynal select SYS_NAND_SELF_INIT 200cfcc706cSMiquel Raynal select SYS_NAND_U_BOOT_LOCATIONS 201cfcc706cSMiquel Raynal select SPL_NAND_SUPPORT 202cfcc706cSMiquel Raynal imply CMD_NAND 203cfcc706cSMiquel Raynal ---help--- 204cfcc706cSMiquel Raynal Enable support for NAND. This option enables the standard and 205cfcc706cSMiquel Raynal SPL drivers. 206cfcc706cSMiquel Raynal The SPL driver only supports reading from the NAND using DMA 207cfcc706cSMiquel Raynal transfers. 208cfcc706cSMiquel Raynal 209cfcc706cSMiquel Raynalif NAND_SUNXI 210cfcc706cSMiquel Raynal 211cfcc706cSMiquel Raynalconfig NAND_SUNXI_SPL_ECC_STRENGTH 212cfcc706cSMiquel Raynal int "Allwinner NAND SPL ECC Strength" 213cfcc706cSMiquel Raynal default 64 214cfcc706cSMiquel Raynal 215cfcc706cSMiquel Raynalconfig NAND_SUNXI_SPL_ECC_SIZE 216cfcc706cSMiquel Raynal int "Allwinner NAND SPL ECC Step Size" 217cfcc706cSMiquel Raynal default 1024 218cfcc706cSMiquel Raynal 219cfcc706cSMiquel Raynalconfig NAND_SUNXI_SPL_USABLE_PAGE_SIZE 220cfcc706cSMiquel Raynal int "Allwinner NAND SPL Usable Page Size" 221cfcc706cSMiquel Raynal default 1024 222cfcc706cSMiquel Raynal 223cfcc706cSMiquel Raynalendif 224cfcc706cSMiquel Raynal 225cfcc706cSMiquel Raynalconfig NAND_ARASAN 226cfcc706cSMiquel Raynal bool "Configure Arasan Nand" 227cfcc706cSMiquel Raynal select SYS_NAND_SELF_INIT 228cfcc706cSMiquel Raynal imply CMD_NAND 229cfcc706cSMiquel Raynal help 230cfcc706cSMiquel Raynal This enables Nand driver support for Arasan nand flash 231cfcc706cSMiquel Raynal controller. This uses the hardware ECC for read and 232cfcc706cSMiquel Raynal write operations. 233cfcc706cSMiquel Raynal 234cfcc706cSMiquel Raynalconfig NAND_MXC 235cfcc706cSMiquel Raynal bool "MXC NAND support" 236cfcc706cSMiquel Raynal depends on CPU_ARM926EJS || CPU_ARM1136 || MX5 237cfcc706cSMiquel Raynal imply CMD_NAND 238cfcc706cSMiquel Raynal help 239cfcc706cSMiquel Raynal This enables the NAND driver for the NAND flash controller on the 240cfcc706cSMiquel Raynal i.MX27 / i.MX31 / i.MX5 rocessors. 241cfcc706cSMiquel Raynal 242cfcc706cSMiquel Raynalconfig NAND_MXS 243cfcc706cSMiquel Raynal bool "MXS NAND support" 244cfcc706cSMiquel Raynal depends on MX23 || MX28 || MX6 || MX7 245cfcc706cSMiquel Raynal select SYS_NAND_SELF_INIT 246cfcc706cSMiquel Raynal imply CMD_NAND 247cfcc706cSMiquel Raynal select APBH_DMA 248cfcc706cSMiquel Raynal select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7 249cfcc706cSMiquel Raynal select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7 250cfcc706cSMiquel Raynal help 251cfcc706cSMiquel Raynal This enables NAND driver for the NAND flash controller on the 252cfcc706cSMiquel Raynal MXS processors. 253cfcc706cSMiquel Raynal 254cfcc706cSMiquel Raynalif NAND_MXS 255cfcc706cSMiquel Raynal 256cfcc706cSMiquel Raynalconfig NAND_MXS_DT 257cfcc706cSMiquel Raynal bool "Support MXS NAND controller as a DT device" 258cfcc706cSMiquel Raynal depends on OF_CONTROL && MTD 259cfcc706cSMiquel Raynal help 260cfcc706cSMiquel Raynal Enable the driver for MXS NAND flash on platforms using 261cfcc706cSMiquel Raynal device tree. 262cfcc706cSMiquel Raynal 263cfcc706cSMiquel Raynalconfig NAND_MXS_USE_MINIMUM_ECC 264cfcc706cSMiquel Raynal bool "Use minimum ECC strength supported by the controller" 265cfcc706cSMiquel Raynal default false 266cfcc706cSMiquel Raynal 267cfcc706cSMiquel Raynalendif 268cfcc706cSMiquel Raynal 269*57e25cf7SYifeng Zhaoconfig NAND_ROCKCHIP 270*57e25cf7SYifeng Zhao bool "Support for NAND on Rockchip SoCs" 271*57e25cf7SYifeng Zhao select SYS_NAND_SELF_INIT 272*57e25cf7SYifeng Zhao default n 273*57e25cf7SYifeng Zhao help 274*57e25cf7SYifeng Zhao Enable support for Rockchip nand. 275*57e25cf7SYifeng Zhao 276*57e25cf7SYifeng Zhaoconfig NAND_ROCKCHIP_V9 277*57e25cf7SYifeng Zhao bool "Support for NAND V9 on Rockchip SoCs" 278*57e25cf7SYifeng Zhao select SYS_NAND_SELF_INIT 279*57e25cf7SYifeng Zhao default n 280*57e25cf7SYifeng Zhao help 281*57e25cf7SYifeng Zhao Enable support for Rockchip nand v9. 282*57e25cf7SYifeng Zhao 283*57e25cf7SYifeng Zhaoif NAND_ROCKCHIP || NAND_ROCKCHIP_V9 284*57e25cf7SYifeng Zhaoconfig NAND_ROCKCHIP_DT 285*57e25cf7SYifeng Zhao bool "Support Rockchip NAND controller as a DT device" 286*57e25cf7SYifeng Zhao default y 287*57e25cf7SYifeng Zhao help 288*57e25cf7SYifeng Zhao Enable the driver for Rockchip NAND flash on platforms 289*57e25cf7SYifeng Zhao using device tree. 290*57e25cf7SYifeng Zhaoendif 291*57e25cf7SYifeng Zhao 292cfcc706cSMiquel Raynalconfig NAND_ZYNQ 293cfcc706cSMiquel Raynal bool "Support for Zynq Nand controller" 294cfcc706cSMiquel Raynal select SYS_NAND_SELF_INIT 295cfcc706cSMiquel Raynal imply CMD_NAND 296cfcc706cSMiquel Raynal help 297cfcc706cSMiquel Raynal This enables Nand driver support for Nand flash controller 298cfcc706cSMiquel Raynal found on Zynq SoC. 299cfcc706cSMiquel Raynal 300cfcc706cSMiquel Raynalconfig NAND_ZYNQ_USE_BOOTLOADER1_TIMINGS 301cfcc706cSMiquel Raynal bool "Enable use of 1st stage bootloader timing for NAND" 302cfcc706cSMiquel Raynal depends on NAND_ZYNQ 303cfcc706cSMiquel Raynal help 304cfcc706cSMiquel Raynal This flag prevent U-boot reconfigure NAND flash controller and reuse 305cfcc706cSMiquel Raynal the NAND timing from 1st stage bootloader. 306cfcc706cSMiquel Raynal 30715f504adSChristophe Kerelloconfig NAND_STM32_FMC2 30815f504adSChristophe Kerello bool "Support for NAND controller on STM32MP SoCs" 30915f504adSChristophe Kerello depends on ARCH_STM32MP 31015f504adSChristophe Kerello select SYS_NAND_SELF_INIT 31115f504adSChristophe Kerello imply CMD_NAND 31215f504adSChristophe Kerello help 31315f504adSChristophe Kerello Enables support for NAND Flash chips on SoCs containing the FMC2 31415f504adSChristophe Kerello NAND controller. This controller is found on STM32MP SoCs. 31515f504adSChristophe Kerello The controller supports a maximum 8k page size and supports 31615f504adSChristophe Kerello a maximum 8-bit correction error per sector of 512 bytes. 31715f504adSChristophe Kerello 318cfcc706cSMiquel Raynalcomment "Generic NAND options" 319cfcc706cSMiquel Raynal 320cfcc706cSMiquel Raynalconfig SYS_NAND_BLOCK_SIZE 321cfcc706cSMiquel Raynal hex "NAND chip eraseblock size" 322cfcc706cSMiquel Raynal depends on ARCH_SUNXI 323cfcc706cSMiquel Raynal help 324cfcc706cSMiquel Raynal Number of data bytes in one eraseblock for the NAND chip on the 325cfcc706cSMiquel Raynal board. This is the multiple of NAND_PAGE_SIZE and the number of 326cfcc706cSMiquel Raynal pages. 327cfcc706cSMiquel Raynal 328cfcc706cSMiquel Raynalconfig SYS_NAND_PAGE_SIZE 329cfcc706cSMiquel Raynal hex "NAND chip page size" 330cfcc706cSMiquel Raynal depends on ARCH_SUNXI 331cfcc706cSMiquel Raynal help 332cfcc706cSMiquel Raynal Number of data bytes in one page for the NAND chip on the 333cfcc706cSMiquel Raynal board, not including the OOB area. 334cfcc706cSMiquel Raynal 335cfcc706cSMiquel Raynalconfig SYS_NAND_OOBSIZE 336cfcc706cSMiquel Raynal hex "NAND chip OOB size" 337cfcc706cSMiquel Raynal depends on ARCH_SUNXI 338cfcc706cSMiquel Raynal help 339cfcc706cSMiquel Raynal Number of bytes in the Out-Of-Band area for the NAND chip on 340cfcc706cSMiquel Raynal the board. 341cfcc706cSMiquel Raynal 342cfcc706cSMiquel Raynal# Enhance depends when converting drivers to Kconfig which use this config 343cfcc706cSMiquel Raynal# option (mxc_nand, ndfc, omap_gpmc). 344cfcc706cSMiquel Raynalconfig SYS_NAND_BUSWIDTH_16BIT 345cfcc706cSMiquel Raynal bool "Use 16-bit NAND interface" 346cfcc706cSMiquel Raynal depends on NAND_VF610_NFC || NAND_OMAP_GPMC || NAND_MXC || ARCH_DAVINCI 347cfcc706cSMiquel Raynal help 348cfcc706cSMiquel Raynal Indicates that NAND device has 16-bit wide data-bus. In absence of this 349cfcc706cSMiquel Raynal config, bus-width of NAND device is assumed to be either 8-bit and later 350cfcc706cSMiquel Raynal determined by reading ONFI params. 351cfcc706cSMiquel Raynal Above config is useful when NAND device's bus-width information cannot 352cfcc706cSMiquel Raynal be determined from on-chip ONFI params, like in following scenarios: 353cfcc706cSMiquel Raynal - SPL boot does not support reading of ONFI parameters. This is done to 354cfcc706cSMiquel Raynal keep SPL code foot-print small. 355cfcc706cSMiquel Raynal - In current U-Boot flow using nand_init(), driver initialization 356cfcc706cSMiquel Raynal happens in board_nand_init() which is called before any device probe 357cfcc706cSMiquel Raynal (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are 358cfcc706cSMiquel Raynal not available while configuring controller. So a static CONFIG_NAND_xx 359cfcc706cSMiquel Raynal is needed to know the device's bus-width in advance. 360cfcc706cSMiquel Raynal 3613dbd2dd7ST Karthik Reddyconfig SYS_NAND_MAX_CHIPS 3623dbd2dd7ST Karthik Reddy int "NAND max chips" 3633dbd2dd7ST Karthik Reddy default 1 3643dbd2dd7ST Karthik Reddy depends on NAND_ARASAN 3653dbd2dd7ST Karthik Reddy help 3663dbd2dd7ST Karthik Reddy The maximum number of NAND chips per device to be supported. 3673dbd2dd7ST Karthik Reddy 368cfcc706cSMiquel Raynalif SPL 369cfcc706cSMiquel Raynal 370cfcc706cSMiquel Raynalconfig SYS_NAND_U_BOOT_LOCATIONS 371cfcc706cSMiquel Raynal bool "Define U-boot binaries locations in NAND" 372cfcc706cSMiquel Raynal help 373cfcc706cSMiquel Raynal Enable CONFIG_SYS_NAND_U_BOOT_OFFS though Kconfig. 374cfcc706cSMiquel Raynal This option should not be enabled when compiling U-boot for boards 375cfcc706cSMiquel Raynal defining CONFIG_SYS_NAND_U_BOOT_OFFS in their include/configs/<board>.h 376cfcc706cSMiquel Raynal file. 377cfcc706cSMiquel Raynal 378cfcc706cSMiquel Raynalconfig SYS_NAND_U_BOOT_OFFS 379cfcc706cSMiquel Raynal hex "Location in NAND to read U-Boot from" 380cfcc706cSMiquel Raynal default 0x800000 if NAND_SUNXI 381cfcc706cSMiquel Raynal depends on SYS_NAND_U_BOOT_LOCATIONS 382cfcc706cSMiquel Raynal help 383cfcc706cSMiquel Raynal Set the offset from the start of the nand where u-boot should be 384cfcc706cSMiquel Raynal loaded from. 385cfcc706cSMiquel Raynal 386cfcc706cSMiquel Raynalconfig SYS_NAND_U_BOOT_OFFS_REDUND 387cfcc706cSMiquel Raynal hex "Location in NAND to read U-Boot from" 388cfcc706cSMiquel Raynal default SYS_NAND_U_BOOT_OFFS 389cfcc706cSMiquel Raynal depends on SYS_NAND_U_BOOT_LOCATIONS 390cfcc706cSMiquel Raynal help 391cfcc706cSMiquel Raynal Set the offset from the start of the nand where the redundant u-boot 392cfcc706cSMiquel Raynal should be loaded from. 393cfcc706cSMiquel Raynal 394cfcc706cSMiquel Raynalconfig SPL_NAND_AM33XX_BCH 395cfcc706cSMiquel Raynal bool "Enables SPL-NAND driver which supports ELM based" 396cfcc706cSMiquel Raynal depends on NAND_OMAP_GPMC && !OMAP34XX 397cfcc706cSMiquel Raynal default y 398cfcc706cSMiquel Raynal help 399cfcc706cSMiquel Raynal Hardware ECC correction. This is useful for platforms which have ELM 400cfcc706cSMiquel Raynal hardware engine and use NAND boot mode. 401cfcc706cSMiquel Raynal Some legacy platforms like OMAP3xx do not have in-built ELM h/w engine, 402cfcc706cSMiquel Raynal so those platforms should use CONFIG_SPL_NAND_SIMPLE for enabling 403cfcc706cSMiquel Raynal SPL-NAND driver with software ECC correction support. 404cfcc706cSMiquel Raynal 405cfcc706cSMiquel Raynalconfig SPL_NAND_DENALI 406cfcc706cSMiquel Raynal bool "Support Denali NAND controller for SPL" 407cfcc706cSMiquel Raynal help 408cfcc706cSMiquel Raynal This is a small implementation of the Denali NAND controller 409cfcc706cSMiquel Raynal for use on SPL. 410cfcc706cSMiquel Raynal 411cfcc706cSMiquel Raynalconfig SPL_NAND_SIMPLE 412cfcc706cSMiquel Raynal bool "Use simple SPL NAND driver" 413cfcc706cSMiquel Raynal depends on !SPL_NAND_AM33XX_BCH 414cfcc706cSMiquel Raynal help 415cfcc706cSMiquel Raynal Support for NAND boot using simple NAND drivers that 416cfcc706cSMiquel Raynal expose the cmd_ctrl() interface. 417cfcc706cSMiquel Raynalendif 418cfcc706cSMiquel Raynal 419cfcc706cSMiquel Raynalendif # if NAND 420