summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/lib/bootm.c37
1 files changed, 19 insertions, 18 deletions
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 7401f2f05d..6f84cb309d 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -26,24 +26,6 @@ static int __do_bootm_linux(struct image_data *data, int swap)
{
unsigned long kernel;
unsigned long initrd_start = 0, initrd_size = 0, initrd_end = 0;
- struct memory_bank *bank;
- unsigned long load_address;
- int ret;
-
- if (data->os_address == UIMAGE_INVALID_ADDRESS) {
- bank = list_first_entry(&memory_banks,
- struct memory_bank, list);
- load_address = bank->start + SZ_32K;
- if (bootm_verbose(data))
- printf("no os load address, defaulting to 0x%08lx\n",
- load_address);
- } else {
- load_address = data->os_address;
- }
-
- ret = bootm_load_os(data, load_address);
- if (ret)
- return ret;
kernel = data->os_res->start + data->os_entry;
@@ -104,6 +86,25 @@ static int __do_bootm_linux(struct image_data *data, int swap)
static int do_bootm_linux(struct image_data *data)
{
+ struct memory_bank *bank;
+ unsigned long load_address;
+ int ret;
+
+ load_address = data->os_address;
+
+ if (load_address == UIMAGE_INVALID_ADDRESS) {
+ bank = list_first_entry(&memory_banks,
+ struct memory_bank, list);
+ load_address = bank->start + SZ_32K;
+ if (bootm_verbose(data))
+ printf("no os load address, defaulting to 0x%08lx\n",
+ load_address);
+ }
+
+ ret = bootm_load_os(data, load_address);
+ if (ret)
+ return ret;
+
return __do_bootm_linux(data, 0);
}