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 93if NAND_ROCKCHIP || NAND_ROCKCHIP_V9 94config NAND_ROCKCHIP_DT 95 bool "Support Rockchip NAND controller as a DT device" 96 default y 97 help 98 Enable the driver for Rockchip NAND flash on platforms 99 using device tree. 100endif 101 102config NAND_SUNXI 103 bool "Support for NAND on Allwinner SoCs" 104 depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I 105 select SYS_NAND_SELF_INIT 106 select SYS_NAND_U_BOOT_LOCATIONS 107 imply CMD_NAND 108 ---help--- 109 Enable support for NAND. This option enables the standard and 110 SPL drivers. 111 The SPL driver only supports reading from the NAND using DMA 112 transfers. 113 114if NAND_SUNXI 115 116config NAND_SUNXI_SPL_ECC_STRENGTH 117 int "Allwinner NAND SPL ECC Strength" 118 default 64 119 120config NAND_SUNXI_SPL_ECC_SIZE 121 int "Allwinner NAND SPL ECC Step Size" 122 default 1024 123 124config NAND_SUNXI_SPL_USABLE_PAGE_SIZE 125 int "Allwinner NAND SPL Usable Page Size" 126 default 1024 127 128endif 129 130config NAND_ARASAN 131 bool "Configure Arasan Nand" 132 imply CMD_NAND 133 help 134 This enables Nand driver support for Arasan nand flash 135 controller. This uses the hardware ECC for read and 136 write operations. 137 138config NAND_MXS 139 bool "MXS NAND support" 140 depends on MX6 || MX7 141 imply CMD_NAND 142 help 143 This enables NAND driver for the NAND flash controller on the 144 MXS processors. 145 146config NAND_ZYNQ 147 bool "Support for Zynq Nand controller" 148 select SYS_NAND_SELF_INIT 149 imply CMD_NAND 150 help 151 This enables Nand driver support for Nand flash controller 152 found on Zynq SoC. 153 154comment "Generic NAND options" 155 156# Enhance depends when converting drivers to Kconfig which use this config 157# option (mxc_nand, ndfc, omap_gpmc). 158config SYS_NAND_BUSWIDTH_16BIT 159 bool "Use 16-bit NAND interface" 160 depends on NAND_VF610_NFC 161 help 162 Indicates that NAND device has 16-bit wide data-bus. In absence of this 163 config, bus-width of NAND device is assumed to be either 8-bit and later 164 determined by reading ONFI params. 165 Above config is useful when NAND device's bus-width information cannot 166 be determined from on-chip ONFI params, like in following scenarios: 167 - SPL boot does not support reading of ONFI parameters. This is done to 168 keep SPL code foot-print small. 169 - In current U-Boot flow using nand_init(), driver initialization 170 happens in board_nand_init() which is called before any device probe 171 (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are 172 not available while configuring controller. So a static CONFIG_NAND_xx 173 is needed to know the device's bus-width in advance. 174 175if SPL 176 177config SYS_NAND_U_BOOT_LOCATIONS 178 bool "Define U-boot binaries locations in NAND" 179 help 180 Enable CONFIG_SYS_NAND_U_BOOT_OFFS though Kconfig. 181 This option should not be enabled when compiling U-boot for boards 182 defining CONFIG_SYS_NAND_U_BOOT_OFFS in their include/configs/<board>.h 183 file. 184 185config SYS_NAND_U_BOOT_OFFS 186 hex "Location in NAND to read U-Boot from" 187 default 0x800000 if NAND_SUNXI 188 depends on SYS_NAND_U_BOOT_LOCATIONS 189 help 190 Set the offset from the start of the nand where u-boot should be 191 loaded from. 192 193config SYS_NAND_U_BOOT_OFFS_REDUND 194 hex "Location in NAND to read U-Boot from" 195 default SYS_NAND_U_BOOT_OFFS 196 depends on SYS_NAND_U_BOOT_LOCATIONS 197 help 198 Set the offset from the start of the nand where the redundant u-boot 199 should be loaded from. 200 201config SPL_NAND_DENALI 202 bool "Support Denali NAND controller for SPL" 203 help 204 This is a small implementation of the Denali NAND controller 205 for use on SPL. 206 207endif 208 209endif # if NAND 210