summaryrefslogtreecommitdiffstats
path: root/commands/bootm.c
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2013-05-02 11:07:11 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-05-04 11:06:30 +0200
commitce9163ae34cfec84206d3ae0bbd4b263323cc80c (patch)
tree4f2179f0b4b2271ab8274348eddb51099a4cf1b8 /commands/bootm.c
parent7c15fd1b09349d853bf340fa58bcf71e85f716d2 (diff)
downloadbarebox-ce9163ae34cfec84206d3ae0bbd4b263323cc80c.tar.gz
barebox-ce9163ae34cfec84206d3ae0bbd4b263323cc80c.tar.xz
bootm: Simplify initrd address handling
data.initrd_address = UIMAGE_SOME_ADDRESS; ... if (-L was given to bootm) data.initrd_address = address_provided_to_-L; ... if (initrd is provided as uInitrd && data.initrd_address == UIMAGE_SOME_ADDRESS) data.initrd_address = load_address_from_uInitrd; ... if (data.initrd_address == UIMAGE_SOME_ADDRESS) data.initrd_address = UIMAGE_INVALID_ADDRESS; can be simplified to: data.initrd_address = UIMAGE_INVALID_ADDRESS; ... if (-L was given to bootm) data.initrd_address = address_provided_to_-L; ... if (initrd is provided as uInitrd && data.initrd_address == UIMAGE_INVALID_ADDRESS) data.initrd_address = load_address_from_uInitrd; ... The only change introduced by this simplification is for cases where the user passes -L UIMAGE_SOME_ADDRESS or -L UIMAGE_INVALID_ADDRESS to bootm. (-L UIMAGE_SOME_ADDRESS is now used literally instead of ignored before. -L UIMAGE_INVALID_ADDRESS used to skip getting the initrd-address from the uInitrd, now the uInitrd address is honored.) Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/bootm.c')
-rw-r--r--commands/bootm.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/commands/bootm.c b/commands/bootm.c
index e5dfc6ab3c..bb44776afd 100644
--- a/commands/bootm.c
+++ b/commands/bootm.c
@@ -127,7 +127,7 @@ static int bootm_open_initrd_uimage(struct image_data *data)
data->initrd = data->os;
}
- if (data->initrd_address == UIMAGE_SOME_ADDRESS)
+ if (data->initrd_address == UIMAGE_INVALID_ADDRESS)
data->initrd_address = data->initrd->header.ih_load;
return 0;
@@ -256,7 +256,7 @@ static int do_bootm(int argc, char *argv[])
memset(&data, 0, sizeof(struct image_data));
- data.initrd_address = UIMAGE_SOME_ADDRESS;
+ data.initrd_address = UIMAGE_INVALID_ADDRESS;
data.os_address = UIMAGE_SOME_ADDRESS;
data.verify = 0;
data.verbose = 0;
@@ -408,8 +408,6 @@ static int do_bootm(int argc, char *argv[])
#endif
if (data.os_address == UIMAGE_SOME_ADDRESS)
data.os_address = UIMAGE_INVALID_ADDRESS;
- if (data.initrd_address == UIMAGE_SOME_ADDRESS)
- data.initrd_address = UIMAGE_INVALID_ADDRESS;
handler = bootm_find_handler(os_type, &data);
if (!handler) {