Module Name:    src
Committed By:   jmcneill
Date:           Fri Aug 30 00:01:33 UTC 2019

Modified Files:
        src/sys/stand/efiboot: efifdt.c

Log Message:
Only set #address-cells and #size-cells properties on /chosen if we are
fabricating a devicetree (ACPI mode). Fixes PR# 54494


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/sys/stand/efiboot/efifdt.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/stand/efiboot/efifdt.c
diff -u src/sys/stand/efiboot/efifdt.c:1.18 src/sys/stand/efiboot/efifdt.c:1.19
--- src/sys/stand/efiboot/efifdt.c:1.18	Thu Aug  1 13:11:16 2019
+++ src/sys/stand/efiboot/efifdt.c	Fri Aug 30 00:01:33 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: efifdt.c,v 1.18 2019/08/01 13:11:16 jmcneill Exp $ */
+/* $NetBSD: efifdt.c,v 1.19 2019/08/30 00:01:33 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2019 Jason R. Thorpe
@@ -292,8 +292,15 @@ efi_fdt_gop(void)
 			continue;
 		}
 
+		fdt_setprop_u32(fdt_data,
+		    fdt_path_offset(fdt_data, FDT_CHOSEN_NODE_PATH), "#address-cells", 2);
+		fdt_setprop_u32(fdt_data,
+		    fdt_path_offset(fdt_data, FDT_CHOSEN_NODE_PATH), "#size-cells", 2);
+		fdt_setprop_empty(fdt_data,
+		    fdt_path_offset(fdt_data, FDT_CHOSEN_NODE_PATH), "ranges");
+
 		snprintf(buf, sizeof(buf), "framebuffer@%" PRIx64, mode->FrameBufferBase);
-		fb = fdt_add_subnode(fdt_data, fdt_path_offset(fdt_data, "/chosen"), buf);
+		fb = fdt_add_subnode(fdt_data, fdt_path_offset(fdt_data, FDT_CHOSEN_NODE_PATH), buf);
 		if (fb < 0)
 			panic("FDT: Failed to create framebuffer node");
 
@@ -327,10 +334,6 @@ efi_fdt_bootargs(const char *bootargs)
 	if (chosen < 0)
 		panic("FDT: Failed to create " FDT_CHOSEN_NODE_PATH " node");
 
-	fdt_setprop_u32(fdt_data, chosen, "#address-cells", 2);
-	fdt_setprop_u32(fdt_data, chosen, "#size-cells", 2);
-	fdt_setprop_empty(fdt_data, chosen, "ranges");
-
 	if (*bootargs)
 		fdt_setprop_string(fdt_data, chosen, "bootargs", bootargs);
 

Reply via email to