[PATCH 02/11] bootu: Allow passing in devices as parameter
Sascha Hauer
s.hauer at pengutronix.de
Mon Jun 14 05:48:32 EDT 2010
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
arch/arm/lib/armlinux.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c
index 75c6519..a38c6bf 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();
--
1.7.1
More information about the barebox
mailing list