[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