If the chosen node does not exist, of_add_initrd fails to pass the initrd to the kernel. Instead it should create the chosen node, just like of_fixup_bootargs does. Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> --- drivers/of/base.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/of/base.c b/drivers/of/base.c index 767d4e1..0c20fcd 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -2019,9 +2019,9 @@ int of_add_initrd(struct device_node *root, resource_size_t start, struct device_node *chosen; __be32 buf[2]; - chosen = of_find_node_by_path_from(root, "/chosen"); + chosen = of_create_node(root, "/chosen"); if (!chosen) - return -EINVAL; + return -ENOMEM; if (end) { of_write_number(buf, start, 2); -- 2.10.2 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox