[PATCH 3/5] bootm: add -L option to specify the initrd load address

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Sat Oct 8 10:29:51 EDT 2011


Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 commands/bootm.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/commands/bootm.c b/commands/bootm.c
index afb9e06..f11138a 100644
--- a/commands/bootm.c
+++ b/commands/bootm.c
@@ -191,7 +191,18 @@ static struct image_handle *get_fake_image_handle(struct image_data *data, int n
 static int initrd_handler_parse_options(struct image_data *data, int opt,
 		char *optarg)
 {
+	uint32_t initrd_start;
+
 	switch(opt) {
+	case 'L':
+		if (!data->initrd) {
+			eprintf("Warning -L ingnored. Specify the initrd first\n");
+			break;
+		}
+		initrd_start = simple_strtoul(optarg, NULL, 0);
+		printf("initrd_start=0x%x\n", initrd_start);
+		data->initrd->header.ih_load = cpu_to_uimage(initrd_start);
+		break;
 	case 'r':
 		printf("use initrd %s\n", optarg);
 		/* check for multi image @<num> */
@@ -204,16 +215,19 @@ static int initrd_handler_parse_options(struct image_data *data, int opt,
 		}
 		if (!data->initrd)
 			return -1;
-		return 0;
+		break;
 	default:
 		return 1;
 	}
+
+	return 0;
 }
 
 static struct image_handler initrd_handler = {
-	.cmdline_options = "r:",
+	.cmdline_options = "r:L:",
 	.cmdline_parse = initrd_handler_parse_options,
-	.help_string = " -r <initrd>    specify an initrd image",
+	.help_string = " -r <initrd>    specify an initrd image\n"
+		       " -L <load addr> specify initrd load address",
 };
 
 static int initrd_register_image_handler(void)
-- 
1.7.6.3




More information about the barebox mailing list