|
@@ -266,6 +266,17 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob,
|
|
|
for (offset = fdt_first_subnode(blob, offset);
|
|
|
offset > 0;
|
|
|
offset = fdt_next_subnode(blob, offset)) {
|
|
|
+ /* "chosen" node isn't a device itself but may contain some: */
|
|
|
+ if (!strcmp(fdt_get_name(blob, offset, NULL), "chosen")) {
|
|
|
+ pr_debug("parsing subnodes of \"chosen\"\n");
|
|
|
+
|
|
|
+ err = dm_scan_fdt_node(parent, blob, offset,
|
|
|
+ pre_reloc_only);
|
|
|
+ if (err && !ret)
|
|
|
+ ret = err;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
if (pre_reloc_only &&
|
|
|
!dm_fdt_pre_reloc(blob, offset))
|
|
|
continue;
|