summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>2015-11-17 14:30:09 +0530
committerScott Wood <oss@buserror.net>2016-02-12 17:27:28 -0600
commit78cb965af088f992930ff2a3e0967acd1f0ad87b (patch)
tree675eb1fd22d8e8e4bb09ecb324eb0a4639745c92
parent065a373d9318c83a493ca833d64881418449d429 (diff)
downloadu-boot-imx-78cb965af088f992930ff2a3e0967acd1f0ad87b.zip
u-boot-imx-78cb965af088f992930ff2a3e0967acd1f0ad87b.tar.gz
u-boot-imx-78cb965af088f992930ff2a3e0967acd1f0ad87b.tar.bz2
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>
-rw-r--r--arch/arm/include/asm/arch-zynqmp/hardware.h2
-rw-r--r--configs/xilinx_zynqmp_ep_defconfig1
-rw-r--r--drivers/mtd/nand/Kconfig7
-rw-r--r--include/configs/xilinx_zynqmp.h9
4 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/include/asm/arch-zynqmp/hardware.h b/arch/arm/include/asm/arch-zynqmp/hardware.h
index 5879382..e223988 100644
--- a/arch/arm/include/asm/arch-zynqmp/hardware.h
+++ b/arch/arm/include/asm/arch-zynqmp/hardware.h
@@ -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
diff --git a/configs/xilinx_zynqmp_ep_defconfig b/configs/xilinx_zynqmp_ep_defconfig
index dd2a9ed..2811918 100644
--- a/configs/xilinx_zynqmp_ep_defconfig
+++ b/configs/xilinx_zynqmp_ep_defconfig
@@ -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
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index 9a74064..2fc73ef 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -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
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index 27ef74d..28622de 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -105,6 +105,15 @@
# 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