aboutsummaryrefslogtreecommitdiffstats
path: root/hw/arm_boot.c
diff options
context:
space:
mode:
authorDavid Turner <digit@android.com>2010-09-10 10:15:07 +0200
committerDavid 'Digit' Turner <digit@android.com>2010-09-13 00:30:34 -0700
commita25351325187eb8eff8b9b090acd8f2d7684c6ff (patch)
treea692498d0473066d512d5fc39ad1c6327cb6be81 /hw/arm_boot.c
parent2abe02c0511b2278af9386e7ac5e266d890a38b1 (diff)
downloadexternal_qemu-a25351325187eb8eff8b9b090acd8f2d7684c6ff.zip
external_qemu-a25351325187eb8eff8b9b090acd8f2d7684c6ff.tar.gz
external_qemu-a25351325187eb8eff8b9b090acd8f2d7684c6ff.tar.bz2
upstream: minow hw updates.
Diffstat (limited to 'hw/arm_boot.c')
-rw-r--r--hw/arm_boot.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/hw/arm_boot.c b/hw/arm_boot.c
index acfa67e..2061ee3 100644
--- a/hw/arm_boot.c
+++ b/hw/arm_boot.c
@@ -191,7 +191,8 @@ void arm_load_kernel(CPUState *env, struct arm_boot_info *info)
int n;
int is_linux = 0;
uint64_t elf_entry;
- target_ulong entry;
+ target_phys_addr_t entry;
+ int big_endian;
/* Load the kernel. */
if (!info->kernel_filename) {
@@ -199,12 +200,15 @@ void arm_load_kernel(CPUState *env, struct arm_boot_info *info)
exit(1);
}
- if (!env->boot_info) {
- if (info->nb_cpus == 0)
- info->nb_cpus = 1;
- env->boot_info = info;
- qemu_register_reset(main_cpu_reset, 0, env);
- }
+ if (info->nb_cpus == 0)
+ info->nb_cpus = 1;
+ env->boot_info = info;
+
+#ifdef TARGET_WORDS_BIGENDIAN
+ big_endian = 1;
+#else
+ big_endian = 0;
+#endif
/* Assume that raw images are linux kernels, and ELF images are not. */
kernel_size = load_elf(info->kernel_filename, 0, &elf_entry, NULL, NULL);
@@ -259,4 +263,6 @@ void arm_load_kernel(CPUState *env, struct arm_boot_info *info)
else
set_kernel_args(info, initrd_size, info->loader_start);
}
+ info->is_linux = is_linux;
+ qemu_register_reset(main_cpu_reset, 0, env);
}