@@ -799,7 +799,18 @@ int dt_expand_node(struct dt_node *node, const void *fdt, int fdt_node)
* going for now, we may ultimately want to
* assert
*/
- (void)dt_attach_root(node, child);
+ if (!dt_attach_root(node, child))
+ /**
+ * @fwts-label DTHasDuplicateNodeID
+ * @fwts-advice OPAL will parse the Flatten Device Tree(FDT), which can generated
+ * from different firmware sources. During expansion of FDT, OPAL observed
+ * the duplicate node assigned multiple times. This means platform XML can
+ * contain either duplicate node ID for same hardware device or for different
+ * hardware devices. This is a bug in firmware component of platform xml,
+ * due to which firmware/OPAL won't add the hardware device found with a
+ * duplicate node ID into DT. And corresponding device is not functional.
+ */
+ prlog(PR_ERR, "DT: Found duplicate node: %s\n", child->name);
break;
case FDT_END:
return -1;
Reference bug: https://github.com/open-power/op-build/issues/751 Signed-off-by: Pridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com> --- Changes from v2: - Moved the fwts annotation into the function dt_expand_node to make it clear that this is suitable for checking duplicate entries in FDT expansion path. Changes from v1: - Replaced same node ID with duplicate node - Generalized fwts annotation description core/device.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)