On Wed, Sep 18, 2019 at 07:06:49AM +0100, Colin Watson wrote: > On Tue, Sep 17, 2019 at 04:29:37PM -0700, Elliott Mitchell wrote: > > This makes it impossible for GRUB to load Xen on any platform that is not > > either i386 or amd64. Xen has support for running on ARM platforms, but > > with no bootloader... > > > > For example there is known to be working UEFI third-stage firmware for > > the Raspberry PI: > > https://github.com/tianocore/edk2-platforms/tree/master/Platform/RaspberryPi/RPi3 > > > > The absence of /usr/lib/grub/arm64-efi/multiboot.mod means entries > > generated by /etc/grub.d/20_linux_xen cannot work. > > I don't understand this point. 20_linux_xen looks like this: > > if ($grub_file --is-arm64-efi $current_xen); then > xen_loader="xen_hypervisor" > module_loader="xen_module" > else > if ($grub_file --is-x86-multiboot2 $current_xen); then > xen_loader="multiboot2" > module_loader="module2" > else > xen_loader="multiboot" > module_loader="module" > fi > fi > > So on ARM (64-bit, anyway) it should use xen_hypervisor, not multiboot.
Okay, this may not be an issue for 2.04-3, and instead merely a problem with 2.02+dfsg1-20. On 2.02+dfsg1-20, 20_linux_xen is missing the first if, which means it tries to load multiboot.mod which doesn't exist. For 2.02+dfsg1-20 and 2.04-3 though I note there is a /usr/lib/grub/arm64-efi/xen_boot.mod, but no /usr/lib/grub/arm64-efi/xen_hypervisor.mod. I don't know too much about GRUB's workings, but I'm suspicious of 'xen_loader="xen_hypervisor"'. -- (\___(\___(\______ --=> 8-) EHM <=-- ______/)___/)___/) \BS ( | [email protected] PGP 87145445 | ) / \_CS\ | _____ -O #include <stddisclaimer.h> O- _____ | / _/ 8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445

