xref: /rk3399_rockchip-uboot/drivers/mtd/nand/raw/Kconfig (revision 57e25cf7ea75e107ba3b4033e705e4e6a45dacbc)
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