diff options
author | Mike Frysinger <vapier@gentoo.org> | 2008-11-27 16:50:32 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-06-14 20:01:04 -0400 |
commit | dd14af7640f7d48d8e9768eeeb09592e6f94ed38 (patch) | |
tree | e669594e05417206d374d9843b4f594c8aa11319 /common | |
parent | 67c2829b646bb5b859088b36fbc89e971b9c1960 (diff) | |
download | u-boot-imx-dd14af7640f7d48d8e9768eeeb09592e6f94ed38.zip u-boot-imx-dd14af7640f7d48d8e9768eeeb09592e6f94ed38.tar.gz u-boot-imx-dd14af7640f7d48d8e9768eeeb09592e6f94ed38.tar.bz2 |
Blackfin: new spibootldr command
Newer Blackfin parts can an on-chip ROM that can boot LDRs over SPI flashes,
so add a new 'spibootldr' command to take advantage of it.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/Makefile | 1 | ||||
-rw-r--r-- | common/cmd_spibootldr.c | 36 |
2 files changed, 37 insertions, 0 deletions
diff --git a/common/Makefile b/common/Makefile index ee0cb33..c8e5d26 100644 --- a/common/Makefile +++ b/common/Makefile @@ -133,6 +133,7 @@ COBJS-$(CONFIG_CMD_SF) += cmd_sf.o COBJS-$(CONFIG_CMD_SCSI) += cmd_scsi.o COBJS-$(CONFIG_CMD_SETEXPR) += cmd_setexpr.o COBJS-$(CONFIG_CMD_SPI) += cmd_spi.o +COBJS-$(CONFIG_CMD_SPIBOOTLDR) += cmd_spibootldr.o COBJS-$(CONFIG_CMD_STRINGS) += cmd_strings.o COBJS-$(CONFIG_CMD_TERMINAL) += cmd_terminal.o COBJS-$(CONFIG_CMD_UBI) += cmd_ubi.o diff --git a/common/cmd_spibootldr.c b/common/cmd_spibootldr.c new file mode 100644 index 0000000..d29ed2b --- /dev/null +++ b/common/cmd_spibootldr.c @@ -0,0 +1,36 @@ +/* + * U-boot - spibootldr.c + * + * Copyright (c) 2005-2008 Analog Devices Inc. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * Licensed under the GPL-2 or later. + */ + +#include <common.h> +#include <command.h> + +#include <asm/blackfin.h> +#include <asm/mach-common/bits/bootrom.h> + +int do_spibootldr(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + s32 addr; + + /* Get the address */ + if (argc < 2) + addr = 0; + else + addr = simple_strtoul(argv[1], NULL, 16); + + printf("## Booting ldr image at SPI offset 0x%x ...\n", addr); + + return bfrom_SpiBoot(addr, BFLAG_PERIPHERAL | 4, 0, NULL); +} + +U_BOOT_CMD(spibootldr, 2, 0, do_spibootldr, + "boot ldr image from spi", + "[offset]\n" + " - boot ldr image stored at offset into spi\n"); |