diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2011-04-01 14:21:29 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-04-04 16:27:59 +0200 |
commit | 973069dcaf94527ad7655368d47e5955db862f3b (patch) | |
tree | eab7323d54cbb28cbb0ca41d70385d1ec0e078fb /arch/arm/lib/bootu.c | |
parent | f103a9843e480debba080cf4fab602bc751fbad8 (diff) | |
download | barebox-973069dcaf94527ad7655368d47e5955db862f3b.tar.gz barebox-973069dcaf94527ad7655368d47e5955db862f3b.tar.xz |
ARM: move bootu code to its own file
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/lib/bootu.c')
-rw-r--r-- | arch/arm/lib/bootu.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/arch/arm/lib/bootu.c b/arch/arm/lib/bootu.c new file mode 100644 index 0000000000..e97ded0e47 --- /dev/null +++ b/arch/arm/lib/bootu.c @@ -0,0 +1,38 @@ +#include <common.h> +#include <command.h> +#include <fs.h> +#include <fcntl.h> +#include <errno.h> +#include <asm/armlinux.h> + +static int do_bootu(struct command *cmdtp, int argc, char *argv[]) +{ + int fd; + void *kernel = NULL; + + if (argc != 2) { + barebox_cmd_usage(cmdtp); + return 1; + } + + fd = open(argv[1], O_RDONLY); + if (fd > 0) + kernel = (void *)memmap(fd, PROT_READ); + + if (!kernel) + kernel = (void *)simple_strtoul(argv[1], NULL, 0); + + start_linux(kernel, 0, NULL); + + return 1; +} + +static const __maybe_unused char cmd_bootu_help[] = +"Usage: bootu <address>\n"; + +BAREBOX_CMD_START(bootu) + .cmd = do_bootu, + .usage = "bootu - start a raw linux image", + BAREBOX_CMD_HELP(cmd_bootu_help) +BAREBOX_CMD_END + |