Message ID | 1281365286-7050-1-git-send-email-weil@mail.berlios.de |
---|---|
State | New |
Headers | show |
Am 09.08.2010 16:48, schrieb Stefan Weil: > ELF images were not detected as linux kernels. > > Assume that they are linux kernels if the kernel name contains 'vmlinux'. > > Cc: Paul Brook<paul@codesourcery.com> > Signed-off-by: Stefan Weil<weil@mail.berlios.de> > --- > hw/arm_boot.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/hw/arm_boot.c b/hw/arm_boot.c > index 620550b..e73ef42 100644 > --- a/hw/arm_boot.c > +++ b/hw/arm_boot.c > @@ -204,7 +204,7 @@ void arm_load_kernel(CPUState *env, struct arm_boot_info *info) > int kernel_size; > int initrd_size; > int n; > - int is_linux = 0; > + int is_linux; > uint64_t elf_entry; > target_phys_addr_t entry; > int big_endian; > @@ -225,7 +225,9 @@ void arm_load_kernel(CPUState *env, struct arm_boot_info *info) > big_endian = 0; > #endif > > - /* Assume that raw images are linux kernels, and ELF images are not. */ > + /* Assume that raw images are linux kernels, and ELF images > + are not (unless the kernel filename contains 'vmlinux'). */ > + is_linux = (strstr(info->kernel_filename, "vmlinux") != NULL); > kernel_size = load_elf(info->kernel_filename, NULL, NULL,&elf_entry, > NULL, NULL, big_endian, ELF_MACHINE, 1); > entry = elf_entry; > The patch is still missing in qemu master. Is anything missing, or can it be applied?
diff --git a/hw/arm_boot.c b/hw/arm_boot.c index 620550b..e73ef42 100644 --- a/hw/arm_boot.c +++ b/hw/arm_boot.c @@ -204,7 +204,7 @@ void arm_load_kernel(CPUState *env, struct arm_boot_info *info) int kernel_size; int initrd_size; int n; - int is_linux = 0; + int is_linux; uint64_t elf_entry; target_phys_addr_t entry; int big_endian; @@ -225,7 +225,9 @@ void arm_load_kernel(CPUState *env, struct arm_boot_info *info) big_endian = 0; #endif - /* Assume that raw images are linux kernels, and ELF images are not. */ + /* Assume that raw images are linux kernels, and ELF images + are not (unless the kernel filename contains 'vmlinux'). */ + is_linux = (strstr(info->kernel_filename, "vmlinux") != NULL); kernel_size = load_elf(info->kernel_filename, NULL, NULL, &elf_entry, NULL, NULL, big_endian, ELF_MACHINE, 1); entry = elf_entry;
ELF images were not detected as linux kernels. Assume that they are linux kernels if the kernel name contains 'vmlinux'. Cc: Paul Brook <paul@codesourcery.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- hw/arm_boot.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)