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.

> 
> Signed-off-by: Daniel Kochmański <dkochman...@turtle-solutions.eu>
> Cc: Ian Campbell <i...@hellion.org.uk>
> Cc: Hans De Goede <hdego...@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"
> +     "   "
> +);


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to