From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel =?utf-8?Q?Kochma=C5=84ski?= Date: Tue, 05 May 2015 11:17:25 +0200 Subject: [U-Boot] [PATCH 5/5] nand: sunxi: And a20_nandread command utilizing spl nand read driver In-Reply-To: <55478040.2090902@redhat.com> 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> <55478040.2090902@redhat.com> Message-ID: <87zj5jtmca.fsf@hellsgate.pl> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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
>> >> 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 >>> 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" >>> + " " >>> +); >> >> -- Daniel Kochma?ski | Pozna?, Poland ;; aka jackdaniel "Be the change that you wish to see in the world." - Mahatma Gandhi