You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.4 KiB
42 lines
1.4 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Mark Salter <msalter@redhat.com> |
|
Date: Mon, 17 Apr 2017 08:44:29 -0400 |
|
Subject: [PATCH] arm64: make sure fdt has #address-cells and #size-cells |
|
properties |
|
|
|
Recent upstream changes to kexec-tools relies on #address-cells |
|
and #size-cells properties in the FDT. If grub2 needs to create |
|
a chosen node, it is likely because firmware did not provide one. |
|
In that case, set #address-cells and #size-cells properties to |
|
make sure they exist. |
|
--- |
|
grub-core/loader/arm64/linux.c | 16 +++++++++++++++- |
|
1 file changed, 15 insertions(+), 1 deletion(-) |
|
|
|
diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c |
|
index 0452a20e98b..1eb332a892c 100644 |
|
--- a/grub-core/loader/arm64/linux.c |
|
+++ b/grub-core/loader/arm64/linux.c |
|
@@ -147,7 +147,21 @@ finalize_params (void) |
|
|
|
node = grub_fdt_find_subnode (fdt, 0, "chosen"); |
|
if (node < 0) |
|
- node = grub_fdt_add_subnode (fdt, 0, "chosen"); |
|
+ { |
|
+ /* |
|
+ * If we have to create a chosen node, Make sure we |
|
+ * have #address-cells and #size-cells properties. |
|
+ */ |
|
+ retval = grub_fdt_set_prop32(fdt, 0, "#address-cells", 2); |
|
+ if (retval) |
|
+ goto failure; |
|
+ |
|
+ retval = grub_fdt_set_prop32(fdt, 0, "#size-cells", 2); |
|
+ if (retval) |
|
+ goto failure; |
|
+ |
|
+ node = grub_fdt_add_subnode (fdt, 0, "chosen"); |
|
+ } |
|
|
|
if (node < 1) |
|
goto failure;
|
|
|