]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - drivers/mtd/nand/Kconfig
Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[people/ms/u-boot.git] / drivers / mtd / nand / Kconfig
index c24221499bfb6cd47f272cd5e71839d7296cf4ea..a7b76f4218c35b16cbd99a70167d03b908e99e45 100644 (file)
@@ -6,8 +6,6 @@ config SYS_NAND_SELF_INIT
          This option, if enabled, provides more flexible and linux-like
          NAND initialization process.
 
-if !SPL_BUILD
-
 config NAND_DENALI
        bool "Support Denali NAND controller"
        select SYS_NAND_SELF_INIT
@@ -34,9 +32,131 @@ config NAND_DENALI_SPARE_AREA_SKIP_BYTES
          of OOB area before last ECC sector data starts.  This is potentially
          used to preserve the bad block marker in the OOB area.
 
+config NAND_VF610_NFC
+       bool "Support for Freescale NFC for VF610/MPC5125"
+       select SYS_NAND_SELF_INIT
+       help
+         Enables support for NAND Flash Controller on some Freescale
+         processors like the VF610, MPC5125, MCF54418 or Kinetis K70.
+         The driver supports a maximum 2k page size. The driver
+         currently does not support hardware ECC.
+
+choice
+       prompt "Hardware ECC strength"
+       depends on NAND_VF610_NFC
+       default SYS_NAND_VF610_NFC_45_ECC_BYTES
+       help
+         Select the ECC strength used in the hardware BCH ECC block.
+
+config SYS_NAND_VF610_NFC_45_ECC_BYTES
+       bool "24-error correction (45 ECC bytes)"
+
+config SYS_NAND_VF610_NFC_60_ECC_BYTES
+       bool "32-error correction (60 ECC bytes)"
+
+endchoice
+
+config NAND_PXA3XX
+       bool "Support for NAND on PXA3xx and Armada 370/XP/38x"
+       select SYS_NAND_SELF_INIT
+       help
+         This enables the driver for the NAND flash device found on
+         PXA3xx processors (NFCv1) and also on Armada 370/XP (NFCv2).
+
+config NAND_SUNXI
+       bool "Support for NAND on Allwinner SoCs"
+       depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
+       select SYS_NAND_SELF_INIT
+       select SYS_NAND_U_BOOT_LOCATIONS
+       ---help---
+       Enable support for NAND. This option enables the standard and
+       SPL drivers.
+       The SPL driver only supports reading from the NAND using DMA
+       transfers.
+
+if NAND_SUNXI
+
+config NAND_SUNXI_SPL_ECC_STRENGTH
+       int "Allwinner NAND SPL ECC Strength"
+       default 64
+
+config NAND_SUNXI_SPL_ECC_SIZE
+       int "Allwinner NAND SPL ECC Step Size"
+       default 1024
+
+config NAND_SUNXI_SPL_USABLE_PAGE_SIZE
+       int "Allwinner NAND SPL Usable Page Size"
+       default 1024
+
 endif
 
-if SPL_BUILD
+config NAND_ARASAN
+       bool "Configure Arasan Nand"
+       help
+         This enables Nand driver support for Arasan nand flash
+         controller. This uses the hardware ECC for read and
+         write operations.
+
+config NAND_MXS
+       bool "MXS NAND support"
+       depends on MX6 || MX7
+       help
+         This enables NAND driver for the NAND flash controller on the
+         MXS processors.
+
+config NAND_ZYNQ
+       bool "Support for Zynq Nand controller"
+       select SYS_NAND_SELF_INIT
+       help
+         This enables Nand driver support for Nand flash controller
+         found on Zynq SoC.
+
+comment "Generic NAND options"
+
+# Enhance depends when converting drivers to Kconfig which use this config
+# option (mxc_nand, ndfc, omap_gpmc).
+config SYS_NAND_BUSWIDTH_16BIT
+       bool "Use 16-bit NAND interface"
+       depends on NAND_VF610_NFC
+       help
+         Indicates that NAND device has 16-bit wide data-bus. In absence of this
+         config, bus-width of NAND device is assumed to be either 8-bit and later
+         determined by reading ONFI params.
+         Above config is useful when NAND device's bus-width information cannot
+         be determined from on-chip ONFI params, like in following scenarios:
+         - SPL boot does not support reading of ONFI parameters. This is done to
+           keep SPL code foot-print small.
+         - In current U-Boot flow using nand_init(), driver initialization
+           happens in board_nand_init() which is called before any device probe
+           (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are
+           not available while configuring controller. So a static CONFIG_NAND_xx
+           is needed to know the device's bus-width in advance.
+
+if SPL
+
+config SYS_NAND_U_BOOT_LOCATIONS
+       bool "Define U-boot binaries locations in NAND"
+       help
+       Enable CONFIG_SYS_NAND_U_BOOT_OFFS though Kconfig.
+       This option should not be enabled when compiling U-boot for boards
+       defining CONFIG_SYS_NAND_U_BOOT_OFFS in their include/configs/<board>.h
+       file.
+
+config SYS_NAND_U_BOOT_OFFS
+       hex "Location in NAND to read U-Boot from"
+       default 0x800000 if NAND_SUNXI
+       depends on SYS_NAND_U_BOOT_LOCATIONS
+       help
+       Set the offset from the start of the nand where u-boot should be
+       loaded from.
+
+config SYS_NAND_U_BOOT_OFFS_REDUND
+       hex "Location in NAND to read U-Boot from"
+       default SYS_NAND_U_BOOT_OFFS
+       depends on SYS_NAND_U_BOOT_LOCATIONS
+       help
+       Set the offset from the start of the nand where the redundant u-boot
+       should be loaded from.
 
 config SPL_NAND_DENALI
        bool "Support Denali NAND controller for SPL"