浏览代码

zynqmp: nand: Add Nand driver support for zynqmp

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>
Siva Durga Prasad Paladugu 9 年之前
父节点
当前提交
78cb965af0

+ 2 - 0
arch/arm/include/asm/arch-zynqmp/hardware.h

@@ -19,6 +19,8 @@
 #define ZYNQ_I2C_BASEADDR0	0xFF020000
 #define ZYNQ_I2C_BASEADDR0	0xFF020000
 #define ZYNQ_I2C_BASEADDR1	0xFF030000
 #define ZYNQ_I2C_BASEADDR1	0xFF030000
 
 
+#define ARASAN_NAND_BASEADDR	0xFF100000
+
 #define ZYNQMP_SATA_BASEADDR	0xFD0C0000
 #define ZYNQMP_SATA_BASEADDR	0xFD0C0000
 
 
 #define ZYNQMP_USB0_XHCI_BASEADDR	0xFE200000
 #define ZYNQMP_USB0_XHCI_BASEADDR	0xFE200000

+ 1 - 0
configs/xilinx_zynqmp_ep_defconfig

@@ -1,6 +1,7 @@
 CONFIG_ARM=y
 CONFIG_ARM=y
 CONFIG_ARCH_ZYNQMP=y
 CONFIG_ARCH_ZYNQMP=y
 CONFIG_ZYNQMP_USB=y
 CONFIG_ZYNQMP_USB=y
+CONFIG_NAND_ARASAN=y
 CONFIG_SYS_TEXT_BASE=0x8000000
 CONFIG_SYS_TEXT_BASE=0x8000000
 CONFIG_DEFAULT_DEVICE_TREE="zynqmp-ep108"
 CONFIG_DEFAULT_DEVICE_TREE="zynqmp-ep108"
 CONFIG_FIT=y
 CONFIG_FIT=y

+ 7 - 0
drivers/mtd/nand/Kconfig

@@ -71,6 +71,13 @@ config NAND_SUNXI
 	Enable support for NAND. This option allows SPL to read from
 	Enable support for NAND. This option allows SPL to read from
 	sunxi NAND using DMA transfers.
 	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"
 comment "Generic NAND options"
 
 
 # Enhance depends when converting drivers to Kconfig which use this config
 # Enhance depends when converting drivers to Kconfig which use this config

+ 9 - 0
include/configs/xilinx_zynqmp.h

@@ -105,6 +105,15 @@
 # define CONFIG_CMD_EXT4_WRITE
 # define CONFIG_CMD_EXT4_WRITE
 #endif
 #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 */
 /* Miscellaneous configurable options */
 #define CONFIG_SYS_LOAD_ADDR		0x8000000
 #define CONFIG_SYS_LOAD_ADDR		0x8000000