Hi Andrei,
Great thanks for your review.
So Are you suggesting this: (1) in util/grub.d/20_linux_xen.in, we only use xen_hypervisor/xen_module. (2) in xen_boot.c, we only register command xen_hypervisor/xen_module. (3) in grub-core/loader/i386/xen.c, we *add* --------------- cmd_xen_hypervisort = grub_register_command ("xen_hypervisor", grub_cmd_xen, 0, N_("Load Linux.")); cmd_xen_module = grub_register_command ("xen_module", grub_cmd_module, 0, N_("Load module.")); --------------- (4)in grub-core/loader/multiboot.c, we *add* --------------- #if defined (__i386__) || defined (__aarch64__) cmd_xen_hypervisort = grub_register_command ("xen_hypervisor", grub_cmd_multiboot, 0, N_("Load a multiboot kernel.")); cmd_xen_module = grub_register_command ("xen_module", grub_cmd_module, 0, N_("Load a multiboot module.")); #endif ---------------
BTW, from the source code, MIPS isn't supported by multiboot, IS supported by multiboot2.
Please correct me. If I misunderstand your suggestion. :-)
Thanks again!
On 14 July 2015 at 11:53, Andrei Borzenkov arvidjaar@gmail.com wrote:
В Mon, 13 Jul 2015 16:53:59 +0800 fu.wei@linaro.org пишет:
From: Fu Wei fu.wei@linaro.org
This patch adds the support of boot command on arm64 for XEN: xen_hypervisor xen_module
Signed-off-by: Fu Wei fu.wei@linaro.org
util/grub.d/20_linux_xen.in | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in index f532fb9..b52c50d 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -120,16 +120,16 @@ linux_entry () else xen_rm_opts="no-real-mode edd=off" fi
multiboot ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts}
${multiboot_cmd} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} echo '$(echo "$lmessage" | grub_quote)'
module ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
${module_cmd} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
EOF if test -n "${initrd}" ; then # TRANSLATORS: ramdisk isn't identifier. Should be translated. message="$(gettext_printf "Loading initial ramdisk ...")" sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)'
module --nounzip ${rel_dirname}/${initrd}
${module_cmd} --nounzip ${rel_dirname}/${initrd}
EOF fi sed "s/^/$submenu_indentation/" << EOF @@ -185,6 +185,14 @@ case "$machine" in *) GENKERNEL_ARCH="$machine" ;; esac
+if [ "x$machine" != xaarch64 ]; then
multiboot_cmd="multiboot"
module_cmd="module"
+else
multiboot_cmd="xen_hypervisor"
module_cmd="xen_module"
+fi
Strictly speaking, this is boot-time decision. As mentioned by Vladimir, better would be to provide alias xen_hypervisor and xen_module in multiboot for platforms supporting Xen (is MIPS really supported?) and use it consistently.
# Extra indentation to add to menu entries in a submenu. We're not in a submenu # yet, so it's empty. In a submenu it will be equal to '\t' (one tab). submenu_indentation=""