diff options
author | David Turner <digit@android.com> | 2010-09-10 10:15:07 +0200 |
---|---|---|
committer | David 'Digit' Turner <digit@android.com> | 2010-09-13 00:30:34 -0700 |
commit | a25351325187eb8eff8b9b090acd8f2d7684c6ff (patch) | |
tree | a692498d0473066d512d5fc39ad1c6327cb6be81 /hw/arm_boot.c | |
parent | 2abe02c0511b2278af9386e7ac5e266d890a38b1 (diff) | |
download | external_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.c | 20 |
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); } |