From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 Subject: [PATCH] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones --- util/grub.d/10_linux.in | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in index ef52cf3dbbb..191aebe80bb 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -77,8 +77,18 @@ linux_entry () args="$4" sixteenbit="" + linuxefi="linux" + initrdefi="initrd" case "$machine" in - i?86|x86_64) sixteenbit="16" ;; + i?86|x86_64) + sixteenbit="16" + linuxefi="linuxefi" + initrdefi="initrdefi" + ;; + aarch64) + linuxefi="linux" + initrdefi="initrd" + ;; esac if [ -z "$boot_device_id" ]; then @@ -135,7 +145,7 @@ linux_entry () fi if [ -d /sys/firmware/efi ]; then sed "s/^/$submenu_indentation/" << EOF - linuxefi ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} + ${linuxefi} ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} EOF else sed "s/^/$submenu_indentation/" << EOF @@ -145,7 +155,7 @@ EOF if test -n "${initrd}" ; then if [ -d /sys/firmware/efi ]; then sed "s/^/$submenu_indentation/" << EOF - initrdefi ${rel_dirname}/${initrd} + ${initrdefi} ${rel_dirname}/${initrd} EOF else sed "s/^/$submenu_indentation/" << EOF @@ -153,6 +163,13 @@ EOF EOF fi fi + if test -n "${fdt}" ; then + message="$(gettext_printf "Loading fdt ...")" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' + devicetree ${rel_dirname}/${fdt} +EOF + fi sed "s/^/$submenu_indentation/" << EOF } EOF @@ -215,6 +232,14 @@ while [ "x$list" != "x" ] ; do fi done + fdt= + for i in "dtb-${version}" "dtb-${alt_version}"; do + if test -e "${dirname}/${i}/foundation-v8.dtb" ; then + fdt="${i}/foundation-v8.dtb" + break + fi + done + config= for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do if test -e "${i}" ; then