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.

> +       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
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to