Message ID | 1436777640-31871-3-git-send-email-fu.wei@linaro.org |
---|---|
State | New |
Headers | show |
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="" >
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 + # 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=""