grub2/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch
Peter Jones 81987f4958 Update grub2 for f28
- Try to fix things for new compiler madness.
  I really don't know why gcc decided __attribute__((packed)) on a "typedef
  struct" should imply __attribute__((align (1))) and that it should have a
  warning that it does so.  The obvious behavior would be to keep the alignment
  of the first element unless it's used in another object or type that /also/
  hask the packed attribute.  Why should it change the default alignment at
  all?
- Merge in the BLS patches Javier and I wrote.
- Attempt to fix pmtimer initialization failures to not be super duper slow.

Signed-off-by: Peter Jones <pjones@redhat.com>
2018-02-28 09:40:44 -05:00

86 lines
2.3 KiB
Diff

From fb582651ea4568d7226f96e6b618ad795430c842 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Tue, 14 Jan 2014 13:12:23 -0500
Subject: [PATCH 106/206] Make 10_linux work with our changes for linux16 and
linuxefi on aarch64
Signed-off-by: Peter Jones <pjones@redhat.com>
---
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
--
2.15.0