[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] i386: don't require elf64 for multiboot kernel
From: |
Gonzo FWS |
Subject: |
Re: [Qemu-devel] i386: don't require elf64 for multiboot kernel |
Date: |
Wed, 5 Dec 2018 13:03:42 +0000 |
When I attach a GRUB loader, it doesn't check ELFCLASS at all. It just boots
the kernel as expected in protected mode. Only Qemu does the extra check that I
know of, but I cannot force your opinions on this. We can still continue to use
a chainloader to avoid this problem. (Or worse, build a ELFCLASS32 64-bit
kernel. Just kidding, of course.)
-gonzo
________________________________
From: Paolo Bonzini <address@hidden>
Sent: Wednesday, December 5, 2018 1:20 PM
To: Thomas Huth; Gonzo FWS; address@hidden
Cc: Richard Henderson; Eduardo Habkost; Michael S. Tsirkin; Marcel Apfelbaum
Subject: Re: [Qemu-devel] i386: don't require elf64 for multiboot kernel
On 05/12/18 06:35, Thomas Huth wrote:
> On 2018-12-04 17:55, Gonzo FWS wrote:
>> Right now IncludeOS on x86_64 must use a chainloader for multiboot
>> support. The chainloader is an ELF32 kernel that loads the real
>> ELF64 kernel and jumps to it. As long as the ELF has the .multiboot
>> section and conforms to the spec, meaning _start is be a 32-bit
>> entry, it should be fine.
>>
>> By removing the extra check in multiboot.c, we can also boot ELF64
>> files. As can be seen here:
>> https://cloud.fwsnet.net/index.php/s/XrkBkC8zy7MLa9p
>>
>> Signed-off-by: Alf-André Walla <address@hidden>
I think a 64-bit multiboot specification doesn't exist, but if it
existed, it would require an EM_X86_64 ELF file to be booted already in
long mode. I don't think it's a good idea to allow booting into an
EM_X86_64 ELF file with the processor in 32-bit mode.
Paolo