On Fri, Oct 13, 2017 at 02:25:43PM -0700, Anatol Pomozov wrote: > Hi > > On Fri, Oct 13, 2017 at 12:25 PM, Eduardo Habkost <ehabk...@redhat.com> wrote: > > On Thu, Oct 12, 2017 at 04:54:37PM -0700, Anatol Pomozov wrote: > >> x86 is not the only architecture supported by multiboot. > >> For example GRUB supports MIPS architecture as well. > >> > >> Signed-off-by: Anatol Pomozov <anatol.pomo...@gmail.com> > >> --- > >> hw/i386/multiboot.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c > >> index c9254f313e..7dacd6d827 100644 > >> --- a/hw/i386/multiboot.c > >> +++ b/hw/i386/multiboot.c > >> @@ -173,7 +173,7 @@ int load_multiboot(FWCfgState *fw_cfg, > >> } > >> > >> kernel_size = load_elf(kernel_filename, NULL, NULL, &elf_entry, > >> - &elf_low, &elf_high, 0, I386_ELF_MACHINE, > >> + &elf_low, &elf_high, 0, EM_NONE, > >> 0, 0); > > > > I assume we still want PC to reject non-x86 ELF files. > > Does multiboot spec states this restriction? I've heard that there are > attempts to implement multiboot at ARM [1] [2]. Also multiboot2 spec > mentions MIPS as one of the target architectures. > > [1] https://github.com/jncronin/rpi-boot/blob/master/MULTIBOOT-ARM > [2] https://wiki.linaro.org/AndrePrzywara/Multiboot
I don't believe the spec restricts that, but I don't see why it would be useful to load an ELF file that doesn't match the target architecture (e.g. loading non-x86 ELF files on a x86 machine like PC). > > > Isn't it > > better to add a elf_machine argument to load_multiboot() so each > > load_multiboot() caller can specify what's the expected > > architecture? > > > > > >> if (kernel_size < 0) { > >> fprintf(stderr, "Error while loading elf kernel\n"); > >> -- > >> 2.15.0.rc0.271.g36b669edcc-goog > >> > > > > -- > > Eduardo -- Eduardo