zynqmp: nand: Add Nand driver support for zynqmp
authorSiva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Tue, 17 Nov 2015 09:00:09 +0000 (14:30 +0530)
committerScott Wood <oss@buserror.net>
Fri, 12 Feb 2016 23:27:28 +0000 (17:27 -0600)
Add nand driver support for zynqmp. The Nand
controller used in ZynqMP is Arasan Nand Flash
controller.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
[scottwood: Fix checkpatch warning]
Signed-off-by: Scott Wood <oss@buserror.net>
arch/arm/include/asm/arch-zynqmp/hardware.h
configs/xilinx_zynqmp_ep_defconfig
drivers/mtd/nand/Kconfig
include/configs/xilinx_zynqmp.h

index 587938249e8f7e3cd501463a6bd1c54cf57dc94f..e223988b7d977049585889bc4b2783458b37a3de 100644 (file)
@@ -19,6 +19,8 @@
 #define ZYNQ_I2C_BASEADDR0     0xFF020000
 #define ZYNQ_I2C_BASEADDR1     0xFF030000
 
+#define ARASAN_NAND_BASEADDR   0xFF100000
+
 #define ZYNQMP_SATA_BASEADDR   0xFD0C0000
 
 #define ZYNQMP_USB0_XHCI_BASEADDR      0xFE200000
index dd2a9edffb8154f5722ca441ed97902ae557c279..281191809ab141fdc8d7e786bfe5561b29a7fc88 100644 (file)
@@ -1,6 +1,7 @@
 CONFIG_ARM=y
 CONFIG_ARCH_ZYNQMP=y
 CONFIG_ZYNQMP_USB=y
+CONFIG_NAND_ARASAN=y
 CONFIG_SYS_TEXT_BASE=0x8000000
 CONFIG_DEFAULT_DEVICE_TREE="zynqmp-ep108"
 CONFIG_FIT=y
index 9a74064c98b5d13bb73cda2bb1a46f3aaf0cd643..2fc73ef4e59dd0e3fc48f6039ebcd87938b7f0bd 100644 (file)
@@ -71,6 +71,13 @@ config NAND_SUNXI
        Enable support for NAND. This option allows SPL to read from
        sunxi NAND using DMA transfers.
 
+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.
+
 comment "Generic NAND options"
 
 # Enhance depends when converting drivers to Kconfig which use this config
index 27ef74daf50f41187860b5f4db10ba743747bc1d..28622dec18821e51a00783ad8bdae3c12ea9cd17 100644 (file)
 # define CONFIG_CMD_EXT4_WRITE
 #endif
 
+#ifdef CONFIG_NAND_ARASAN
+# define CONFIG_CMD_NAND
+# define CONFIG_CMD_NAND_LOCK_UNLOCK
+# define CONFIG_SYS_MAX_NAND_DEVICE    1
+# define CONFIG_SYS_NAND_SELF_INIT
+# define CONFIG_SYS_NAND_ONFI_DETECTION
+# define CONFIG_MTD_DEVICE
+#endif
+
 /* Miscellaneous configurable options */
 #define CONFIG_SYS_LOAD_ADDR           0x8000000