
Hans de Goede writes:
Hi,
On 05/02/2015 04:26 PM, Ian Campbell wrote:
On Wed, 2015-04-29 at 17:03 +0200, Daniel Kochmański wrote:
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>
This stuff should really be integrated with cmd_nand.c rather than adding an adhoc SoC specific interface.
I want to go even further and I see that this really needs to be integrated with the blkdev code so that one can just do:
ls nand 0:1
And things will just work, these way we can also just have the standard boot cmds from config_distro_bootcmd.h work rather then needing special nand boot commands.
Regards,
Hans
It was more a convenient function then proper integration. I'll look into that, but it may take time - I'm quite unfamiliar with U-Boot nand interface.
Signed-off-by: Daniel Kochmański dkochmanski@turtle-solutions.eu Cc: Ian Campbell ijc@hellion.org.uk Cc: Hans De Goede hdegoede@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"
- " "
+);