On 19.08.2010, at 15:02, Avi Kivity wrote:

> On 08/19/2010 02:24 PM, Adam Lackorzynski wrote:
>> A via -kernel supplied x86_64 ELF image is being started in 32bit mode.
>> Detect and exit if a 64bit image has been supplied.
>> 
>> 
>> 
>> diff --git a/hw/multiboot.c b/hw/multiboot.c
>> index dc980e6..e9dcbc9 100644
>> --- a/hw/multiboot.c
>> +++ b/hw/multiboot.c
>> @@ -171,6 +171,12 @@ int load_multiboot(void *fw_cfg,
>>          uint64_t elf_low, elf_high;
>>          int kernel_size;
>>          fclose(f);
>> +
>> +        if (((struct elf64_hdr*)header)->e_machine == EM_X86_64) {
>> +            fprintf(stderr, "Cannot load x86-64 image, give a 32bit 
>> one.\n");
>> +            exit(1);
>> +        }
>> +
>>          kernel_size = load_elf(kernel_filename, NULL, NULL,&elf_entry,
>>                                 &elf_low,&elf_high, 0, ELF_MACHINE, 0);
>>          if (kernel_size<  0) {
> 
> We rely on the existing behaviour in kvm-unit-tests.git.  Tests (.flat files) 
> are 64-bit elf binaries that are loaded in 32-bit more and switch immediately 
> to 64-bit.
> 
> We can easily wrap them in a 32-bit elf, but that's a needless complication.

Well, but if they wouldn't work in grub that doesn't help too much, right? I'm 
in full sympathy to stick to whatever grub does, as that's the reference 
implementation.


Alex


Reply via email to