From 72861584e33759ca4b531a47702d04ddbf730548 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Fri, 11 Jun 2010 09:54:15 +0200 Subject: bootu: Allow passing in devices as parameter Signed-off-by: Sascha Hauer --- arch/arm/lib/armlinux.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'arch') diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c index 75c65195bf..a38c6bf655 100644 --- a/arch/arm/lib/armlinux.c +++ b/arch/arm/lib/armlinux.c @@ -332,15 +332,21 @@ BAREBOX_CMD_END #ifdef CONFIG_CMD_BOOTU static int do_bootu(struct command *cmdtp, int argc, char *argv[]) { - void (*theKernel)(int zero, int arch, void *params); + void (*theKernel)(int zero, int arch, void *params) = NULL; const char *commandline = getenv("bootargs"); + int fd; if (argc != 2) { barebox_cmd_usage(cmdtp); return 1; } - theKernel = (void *)simple_strtoul(argv[1], NULL, 0); + fd = open(argv[1], O_RDONLY); + if (fd > 0) + theKernel = (void *)memmap(fd, PROT_READ); + + if (!theKernel) + theKernel = (void *)simple_strtoul(argv[1], NULL, 0); setup_start_tag(); setup_memory_tags(); -- cgit v1.2.3