diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2013-05-02 11:07:11 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-04 11:06:30 +0200 |
commit | ce9163ae34cfec84206d3ae0bbd4b263323cc80c (patch) | |
tree | 4f2179f0b4b2271ab8274348eddb51099a4cf1b8 /commands/bootm.c | |
parent | 7c15fd1b09349d853bf340fa58bcf71e85f716d2 (diff) | |
download | barebox-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.c | 6 |
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) { |