[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v7 2/3] * util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64



Hi Andrew,

On 05/05/17 10:01, Andrew Cooper wrote:
On 05/05/17 09:57, Fu Wei wrote:
Hi Stefano,

On 4 May 2017 at 04:53, Stefano Stabellini <sstabellini@xxxxxxxxxx> wrote:
On Wed, 3 May 2017, Andrew Cooper wrote:
On 02/05/17 08:06, fu.wei@xxxxxxxxxx wrote:
From: Fu Wei <fu.wei@xxxxxxxxxx>

This patch adds the support of xen_boot command for aarch64:
    xen_hypervisor
    xen_module
These two commands are only for aarch64, since it has its own protocol and
commands to boot xen hypervisor and Dom0, but not multiboot.

For other architectures, they are still using multiboot and module
commands.

Signed-off-by: Fu Wei <fu.wei@xxxxxxxxxx>
Sorry if I am jumping in late and asking awkward questions, but what is
special about Xen/aarch64 here?  Why is it using a non-standard entry
mechanism?
Multiboot is not available on ARM. The boot protocol we have on ARM is
FDT based:

http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=docs/misc/arm/device-tree/booting.txt

We often refer to it as "multiboot for arm" but in fact it is not
related to the x86 multiboot in any way.

In Grub, the two protocols (multiboot and
docs/misc/arm/device-tree/booting.txt) are kept clearly distinct
(55A687E5.4070106@xxxxxxxxx). Hence, the need for this patch.
Exactly, great thanks for your explanation! :-)

So it really is an entirely custom Xen booting protocol.

Not really, Xen is using the Linux boot protocol. It does not allow to pass multiple modules. The multiboot used by x86 does not support ARM (see [1]) and hence not supported by any bootloaders existing on ARM.

The "multiboot for ARM" has been designed to be generic enough to be used by anyone (see [2]). And the original intention was to use "module" in grub.cfg. I don't know why we did this change.


It is unfortunate that this wasn't reviewed sensibly at the time (and
implemented in a project-neutral way), but it looks like the time to fix
that properly has long since passed.

The bindings are project neutral. Only the commands in grub are not neutral, I cannot find why it is not.

Cheers,

[1] https://www.gnu.org/software/grub/manual/multiboot/multiboot.html
[2] https://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Multiboot

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.