On Tue, May 9, 2017, 11:02 Fu Wei <fu....@linaro.org> wrote:

> Hi Vladimir
>
> On 9 May 2017 at 14:59, Vladimir 'phcoder' Serbinenko <phco...@gmail.com>
> wrote:
> >
> >
> > Le Tue, May 2, 2017 à 9:06 AM, <fu....@linaro.org> a écrit :
> >>
> >> From: Fu Wei <fu....@linaro.org>
> >>
> >> 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....@linaro.org>
> >> ---
> >>  util/grub.d/20_linux_xen.in | 13 ++++++++++---
> >>  1 file changed, 10 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
> >> index c48af94..9777719 100644
> >> --- a/util/grub.d/20_linux_xen.in
> >> +++ b/util/grub.d/20_linux_xen.in
> >> @@ -122,16 +122,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}
> >> +       ${xen_loader}   ${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_loader}        ${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_loader}        --nounzip   ${rel_dirname}/${initrd}
> >>  EOF
> >>    fi
> >>    sed "s/^/$submenu_indentation/" << EOF
> >> @@ -206,6 +206,13 @@ while [ "x${xen_list}" != "x" ] ; do
> >>      if [ "x$is_top_level" != xtrue ]; then
> >>         echo "  submenu '$(gettext_printf "Xen hypervisor, version %s"
> >> "${xen_version}" | grub_quote)' \$menuentry_id_option
> >> 'xen-hypervisor-$xen_version-$boot_device_id' {"
> >>      fi
> >> +    if [ "x$machine" != xaarch64 ]; then
> >
> > Machine of grub-mkconfig doesn't necessarily match the kernel. Think of
> > chroot or of having 32-bit userspace with 64-bit kernel. Better to do
> this
> > on runtime. I know, it's not very nice but the whole grub-mkconfig is
> > trouble that needs redesign that I'm working on.
>
> So if we need to do this at run time(in grub shell), can I use
> "grub_cpu" variable instead?
>
Yes, you can. Another possibility, probably better, is to check actual file
type, see grub-file

>
> Thanks!
>
> >>
> >> +       xen_loader="multiboot"
> >> +       module_loader="module"
> >> +    else
> >> +       xen_loader="xen_hypervisor"
> >> +       module_loader="xen_module"
> >> +    fi
> >>      while [ "x$list" != "x" ] ; do
> >>         linux=`version_find_latest $list`
> >>         gettext_printf "Found linux image: %s\n" "$linux" >&2
> >> --
> >> 2.9.3
> >>
> >
>
>
>
> --
> Best regards,
>
> Fu Wei
> Software Engineer
> Red Hat
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to