From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Date: Mon, 04 May 2015 16:20:48 +0200 Subject: [U-Boot] [PATCH 5/5] nand: sunxi: And a20_nandread command utilizing spl nand read driver In-Reply-To: <1430576790.15640.140.camel@hellion.org.uk> References: <1430319781-15375-1-git-send-email-dkochmanski@turtle-solutions.eu> <1430319781-15375-6-git-send-email-dkochmanski@turtle-solutions.eu> <1430576790.15640.140.camel@hellion.org.uk> Message-ID: <55478040.2090902@redhat.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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
> > 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 > >> >> Signed-off-by: Daniel Kochma?ski >> Cc: Ian Campbell >> Cc: Hans De Goede >> --- >> >> 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
>> + >> 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 >> +#include >> + >> +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
\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" >> + " " >> +); > >