mirror of
https://github.com/ostreedev/ostree.git
synced 2025-03-19 22:50:35 +03:00
grub2: add support for devicetree
Similar as available for u-boot (ce2995e1dc1557c4d97ef5af807eacf3ef4a22d8) and syslinux (c5112c25e4519835c4cd53f4350c1b2f2a477746), enable parsing and writing devicetree filename into grub.cfg. This is required by arm64-based devices running edk2 instead of u-boot as the main bootloader (e.g. 96boards HiKey and HiKey960). Signed-off-by: Ricardo Salveti <ricardo@foundries.io> Closes: #1790 Approved by: cgwalters
This commit is contained in:
parent
ee988f69aa
commit
b6795c93ea
@ -33,6 +33,7 @@ read_config()
|
||||
initrd=""
|
||||
options=""
|
||||
linux=""
|
||||
devicetree=""
|
||||
|
||||
while read -r line
|
||||
do
|
||||
@ -48,6 +49,9 @@ read_config()
|
||||
"linux")
|
||||
linux=${value}
|
||||
;;
|
||||
"devicetree")
|
||||
devicetree=${value}
|
||||
;;
|
||||
"options")
|
||||
options=${value}
|
||||
;;
|
||||
@ -74,6 +78,9 @@ populate_menu()
|
||||
if [ -n "${initrd}" ] ; then
|
||||
menu="${menu}\t initrd ${boot_prefix}${initrd}\n"
|
||||
fi
|
||||
if [ -n "${devicetree}" ] ; then
|
||||
menu="${menu}\t devicetree ${boot_prefix}${devicetree}\n"
|
||||
fi
|
||||
menu="${menu}}\n\n"
|
||||
done
|
||||
# The printf command seems to be more reliable across shells for special character (\n, \t) evaluation
|
||||
|
@ -191,6 +191,7 @@ _ostree_bootloader_grub2_generate_config (OstreeSysroot *sysroot
|
||||
const char *options;
|
||||
const char *kernel;
|
||||
const char *initrd;
|
||||
const char *devicetree;
|
||||
char *quoted_title = NULL;
|
||||
char *uuid = NULL;
|
||||
char *quoted_uuid = NULL;
|
||||
@ -246,6 +247,15 @@ _ostree_bootloader_grub2_generate_config (OstreeSysroot *sysroot
|
||||
g_string_append_c (output, '\n');
|
||||
}
|
||||
|
||||
devicetree = ostree_bootconfig_parser_get (config, "devicetree");
|
||||
if (devicetree)
|
||||
{
|
||||
g_string_append (output, "devicetree");
|
||||
g_string_append_c (output, ' ');
|
||||
g_string_append (output, devicetree);
|
||||
g_string_append_c (output, '\n');
|
||||
}
|
||||
|
||||
g_string_append (output, "}\n");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user