1 2menuconfig NAND 3 bool "NAND Device Support" 4if NAND 5 6config SYS_NAND_SELF_INIT 7 bool 8 help 9 This option, if enabled, provides more flexible and linux-like 10 NAND initialization process. 11 12config NAND_DENALI 13 bool "Support Denali NAND controller" 14 select SYS_NAND_SELF_INIT 15 imply CMD_NAND 16 help 17 Enable support for the Denali NAND controller. 18 19config NAND_DENALI_DT 20 bool "Support Denali NAND controller as a DT device" 21 depends on NAND_DENALI && OF_CONTROL && DM 22 help 23 Enable the driver for NAND flash on platforms using a Denali NAND 24 controller as a DT device. 25 26config SYS_NAND_DENALI_64BIT 27 bool "Use 64-bit variant of Denali NAND controller" 28 depends on NAND_DENALI 29 help 30 The Denali NAND controller IP has some variations in terms of 31 the bus interface. The DMA setup sequence is completely differenct 32 between 32bit / 64bit AXI bus variants. 33 34 If your Denali NAND controller is the 64-bit variant, say Y. 35 Otherwise (32 bit), say N. 36 37config NAND_DENALI_SPARE_AREA_SKIP_BYTES 38 int "Number of bytes skipped in OOB area" 39 depends on NAND_DENALI 40 range 0 63 41 help 42 This option specifies the number of bytes to skip from the beginning 43 of OOB area before last ECC sector data starts. This is potentially 44 used to preserve the bad block marker in the OOB area. 45 46config NAND_VF610_NFC 47 bool "Support for Freescale NFC for VF610" 48 select SYS_NAND_SELF_INIT 49 imply CMD_NAND 50 help 51 Enables support for NAND Flash Controller on some Freescale 52 processors like the VF610, MCF54418 or Kinetis K70. 53 The driver supports a maximum 2k page size. The driver 54 currently does not support hardware ECC. 55 56choice 57 prompt "Hardware ECC strength" 58 depends on NAND_VF610_NFC 59 default SYS_NAND_VF610_NFC_45_ECC_BYTES 60 help 61 Select the ECC strength used in the hardware BCH ECC block. 62 63config SYS_NAND_VF610_NFC_45_ECC_BYTES 64 bool "24-error correction (45 ECC bytes)" 65 66config SYS_NAND_VF610_NFC_60_ECC_BYTES 67 bool "32-error correction (60 ECC bytes)" 68 69endchoice 70 71config NAND_PXA3XX 72 bool "Support for NAND on PXA3xx and Armada 370/XP/38x" 73 select SYS_NAND_SELF_INIT 74 imply CMD_NAND 75 help 76 This enables the driver for the NAND flash device found on 77 PXA3xx processors (NFCv1) and also on Armada 370/XP (NFCv2). 78 79config NAND_ROCKCHIP 80 bool "Support for NAND on Rockchip SoCs" 81 select SYS_NAND_SELF_INIT 82 default n 83 ---help--- 84 Enable support for Rockchip nand. 85 86config NAND_ROCKCHIP_V9 87 bool "Support for NAND V9 on Rockchip SoCs" 88 select SYS_NAND_SELF_INIT 89 default n 90 ---help--- 91 Enable support for Rockchip nand v9. 92 93config NAND_SUNXI 94 bool "Support for NAND on Allwinner SoCs" 95 depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I 96 select SYS_NAND_SELF_INIT 97 select SYS_NAND_U_BOOT_LOCATIONS 98 imply CMD_NAND 99 ---help--- 100 Enable support for NAND. This option enables the standard and 101 SPL drivers. 102 The SPL driver only supports reading from the NAND using DMA 103 transfers. 104 105if NAND_SUNXI 106 107config NAND_SUNXI_SPL_ECC_STRENGTH 108 int "Allwinner NAND SPL ECC Strength" 109 default 64 110 111config NAND_SUNXI_SPL_ECC_SIZE 112 int "Allwinner NAND SPL ECC Step Size" 113 default 1024 114 115config NAND_SUNXI_SPL_USABLE_PAGE_SIZE 116 int "Allwinner NAND SPL Usable Page Size" 117 default 1024 118 119endif 120 121config NAND_ARASAN 122 bool "Configure Arasan Nand" 123 imply CMD_NAND 124 help 125 This enables Nand driver support for Arasan nand flash 126 controller. This uses the hardware ECC for read and 127 write operations. 128 129config NAND_MXS 130 bool "MXS NAND support" 131 depends on MX6 || MX7 132 imply CMD_NAND 133 help 134 This enables NAND driver for the NAND flash controller on the 135 MXS processors. 136 137config NAND_ZYNQ 138 bool "Support for Zynq Nand controller" 139 select SYS_NAND_SELF_INIT 140 imply CMD_NAND 141 help 142 This enables Nand driver support for Nand flash controller 143 found on Zynq SoC. 144 145comment "Generic NAND options" 146 147# Enhance depends when converting drivers to Kconfig which use this config 148# option (mxc_nand, ndfc, omap_gpmc). 149config SYS_NAND_BUSWIDTH_16BIT 150 bool "Use 16-bit NAND interface" 151 depends on NAND_VF610_NFC 152 help 153 Indicates that NAND device has 16-bit wide data-bus. In absence of this 154 config, bus-width of NAND device is assumed to be either 8-bit and later 155 determined by reading ONFI params. 156 Above config is useful when NAND device's bus-width information cannot 157 be determined from on-chip ONFI params, like in following scenarios: 158 - SPL boot does not support reading of ONFI parameters. This is done to 159 keep SPL code foot-print small. 160 - In current U-Boot flow using nand_init(), driver initialization 161 happens in board_nand_init() which is called before any device probe 162 (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are 163 not available while configuring controller. So a static CONFIG_NAND_xx 164 is needed to know the device's bus-width in advance. 165 166if SPL 167 168config SYS_NAND_U_BOOT_LOCATIONS 169 bool "Define U-boot binaries locations in NAND" 170 help 171 Enable CONFIG_SYS_NAND_U_BOOT_OFFS though Kconfig. 172 This option should not be enabled when compiling U-boot for boards 173 defining CONFIG_SYS_NAND_U_BOOT_OFFS in their include/configs/<board>.h 174 file. 175 176config SYS_NAND_U_BOOT_OFFS 177 hex "Location in NAND to read U-Boot from" 178 default 0x800000 if NAND_SUNXI 179 depends on SYS_NAND_U_BOOT_LOCATIONS 180 help 181 Set the offset from the start of the nand where u-boot should be 182 loaded from. 183 184config SYS_NAND_U_BOOT_OFFS_REDUND 185 hex "Location in NAND to read U-Boot from" 186 default SYS_NAND_U_BOOT_OFFS 187 depends on SYS_NAND_U_BOOT_LOCATIONS 188 help 189 Set the offset from the start of the nand where the redundant u-boot 190 should be loaded from. 191 192config SPL_NAND_DENALI 193 bool "Support Denali NAND controller for SPL" 194 help 195 This is a small implementation of the Denali NAND controller 196 for use on SPL. 197 198endif 199 200endif # if NAND 201