[U-Boot] [PATCH 5/5] nand: sunxi: And a20_nandread command utilizing spl nand read driver

Daniel Kochmański dkochmanski at turtle-solutions.eu
Wed Apr 29 17:03:01 CEST 2015


This patch adds a20_nandread command. It is simple function utilizing
function from SPL nand driver `nand_spl_load_image`.

Usage: a20_nandread <address> <offset> <bytes>

Signed-off-by: Daniel Kochmański <dkochmanski at turtle-solutions.eu>
Cc: Ian Campbell <ijc at hellion.org.uk>
Cc: Hans De Goede <hdegoede at redhat.com>
---

 common/Kconfig            |  7 +++++++
 common/Makefile           |  1 +
 common/cmd_a20_nandread.c | 27 +++++++++++++++++++++++++++
 3 files changed, 35 insertions(+)
 create mode 100644 common/cmd_a20_nandread.c

diff --git a/common/Kconfig b/common/Kconfig
index 5d7e48a..8edabb6 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -204,6 +204,13 @@ config CMD_NAND
 	help
 	  NAND support.
 
+config CMD_A20_NANDREAD
+	depends on SPL_NAND_SUPPORT
+	bool "a20_nandread"
+	help
+	  NAND read support for A20 SoC. Depends on SPL driver.
+	  Usage: a20_nandread <address> <offset> <size>
+
 config CMD_SPI
 	bool "sspi"
 	help
diff --git a/common/Makefile b/common/Makefile
index fba3830..9286518 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -138,6 +138,7 @@ obj-$(CONFIG_CMD_MMC) += cmd_mmc.o
 obj-$(CONFIG_CMD_MMC_SPI) += cmd_mmc_spi.o
 obj-$(CONFIG_MP) += cmd_mp.o
 obj-$(CONFIG_CMD_MTDPARTS) += cmd_mtdparts.o
+obj-$(CONFIG_CMD_A20_NANDREAD) += cmd_a20_nandread.o
 obj-$(CONFIG_CMD_NAND) += cmd_nand.o
 obj-$(CONFIG_CMD_NET) += cmd_net.o
 obj-$(CONFIG_CMD_ONENAND) += cmd_onenand.o
diff --git a/common/cmd_a20_nandread.c b/common/cmd_a20_nandread.c
new file mode 100644
index 0000000..7361be7
--- /dev/null
+++ b/common/cmd_a20_nandread.c
@@ -0,0 +1,27 @@
+#include <common.h>
+#include <command.h>
+
+int nand_spl_load_image(uint32_t offs, unsigned int size, void *dest);
+
+static int do_a20_nandread(cmd_tbl_t *cmdtp, int flag,
+			   int argc, char *const argv[])
+{
+	if (argc != 4) {
+		printf("usage: a20_nandread <address> <offset> <bytes>\n");
+		return 1;
+	}
+
+	uint32_t dst = simple_strtoul(argv[1], NULL, 16);
+	uint32_t src = simple_strtoul(argv[2], NULL, 16);
+	uint32_t cnt = simple_strtoul(argv[3], NULL, 16);
+	printf("Loading 0x%08XB @ 0x%08X -> 0x%08X...\n", cnt, src, dst);
+	nand_spl_load_image(src, cnt, (void *)dst);
+	return 0;
+}
+
+U_BOOT_CMD(
+	a20_nandread,	CONFIG_SYS_MAXARGS,	3,	do_a20_nandread,
+	"a20_nandread",
+	"[offset size bytes]\n"
+	"   "
+);
-- 
2.3.6



More information about the U-Boot mailing list