From 1c9518bb506f8f4fa6b388571c76797705e7b566 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 Subject: [PATCH 123/143] 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 c943a1e..2b8c561 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -75,8 +75,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 @@ -133,7 +143,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 @@ -143,7 +153,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 @@ -151,6 +161,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 @@ -211,6 +228,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 -- 1.9.3