#946240 grub-xen-host: Missing ARM Build

Package:
grub-xen-host
Source:
grub2
Description:
GRand Unified Bootloader, version 2 (Xen host version)
Submitter:
Elliott Mitchell
Date:
2019-12-07 11:09:04 UTC
Severity:
normal
#946240#5
Date:
2019-12-06 00:59:20 UTC
From:
To:
grub-xen-host is only being built for i386 and amd64.  Xen includes
support for *some* ARM processors and so grub-xen-host should be
available for arm64 and armhf (I'm unsure about armel, a guest might run
armel, I don't know whether that is compatible with an armhf build).

#946240#14
Date:
2019-12-06 10:54:44 UTC
From:
To:
I'm afraid that nobody has landed the necessary porting work for this
yet (I don't think I've even seen attempts at it, although that doesn't
mean they don't exist somewhere), and no arm-xen or arm64-xen
CPU/platform combination is defined yet, even in upstream git master.
It won't be possible to fix this bug in Debian until that work has been
done upstream.

The only Xen support that GRUB has on ARM at the moment is a loader,
allowing an instance of GRUB running on bare metal to load a Xen
hypervisor.  Support for running in a PV guest is rather different.

#946240#19
Date:
2019-12-06 14:20:36 UTC
From:
To:
Are you perhaps thinking of the Xen ARM PV project
(info: https://wiki.xenproject.org/wiki/Archived/Xen_ARM_(PV) )
and unaware of the Xen ARM with Virtualization
(info: https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions)
project?

The former has been deprecated, the latter is very much active and
apparently usable.  GRUB's support for working with Xen on ARM may merely
be preliminary, in which case the issue is GRUB.  I would expect
grub-xen-host to be minimally different between ARM and x86.

#946240#24
Date:
2019-12-06 15:26:12 UTC
From:
To:
Neither.  I'm looking at the current state of GRUB, not of Xen.  Neither
of those Xen projects mentions GRUB at all.

I can tell you that such support is nonexistent, not merely preliminary
(aside from the ability to boot a hypervisor, as I mentioned; but that's
not what grub-xen-host is about).

Much of the support for running in PV mode on x86-based Xen is of course
written as relatively generic C code that ought to be usable on other
architectures, but there are essential pieces (at minimum: startup code,
the hypercall ABI, a relocator, and the build system) that nobody has
yet implemented for Xen on ARM, or if they have then I haven't seen it
and the work doesn't seem to have gone upstream.  I'm sure it would be
welcomed, but it wouldn't be entirely trivial.

#946240#29
Date:
2019-12-07 03:08:07 UTC
From:
To:
Yeah, a few minutes of thinking and realized the situation and how silly
I was being thinking this was likely possible out of the box.  Bit of
brain going funky.  %-/

Hrmm.  That is distinctly suboptimal.  This seems like a rather major
weakness for trying to run Xen on ARM.  In other news the
Raspberry PI 4B has hardware which matches the profile for running Xen.
There appears to be a distinct pool of people trying to run Xen on
Raspberry PI devices (I'm not the only one, I think I've got rather more
of a clue than most, doesn't mean I'm anywhere near perfect).

#946240#34
Date:
2019-12-07 11:06:05 UTC
From:
To:
I guess it basically means you get to put explicit paths to guest
kernels in your Xen configuration files (or I suppose it might be
technically possible to write a grub.cfg by hand and use pygrub).
PV-GRUB is certainly more ergonomic.

Hopefully that means somebody from that pool with the requisite skills
will pop up and do the necessary porting work ... if it's anything like
the x86-64 code it should be on the order of a hundred lines of ARM
assembly, but I guess we'll see.