
This node should have tags indicating the size of the addresses it uses.
The existing add_root_props() function only serves to add these tags to a node. Rename it and allow passing the target-node to the function.
Use this to add nodes to the root and reserved-memory nodes.
Signed-off-by: Simon Glass sjg@chromium.org ---
boot/upl_write.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/boot/upl_write.c b/boot/upl_write.c index b2e9ae85712..60548937090 100644 --- a/boot/upl_write.c +++ b/boot/upl_write.c @@ -144,18 +144,18 @@ static int ofnode_write_value(ofnode node, const char *prop, }
/** - * add_root_props() - Add root properties to the tree + * add_addr_size_cells() - Add #address/#size-cells properties to the tree * * @node: Node to add to * Return 0 if OK, -ve on error */ -static int add_root_props(const struct upl *upl, ofnode node) +static int add_addr_size_cells(ofnode node, int addr_cells, int size_cells) { int ret;
- ret = ofnode_write_u32(node, UPLP_ADDRESS_CELLS, upl->addr_cells); + ret = ofnode_write_u32(node, UPLP_ADDRESS_CELLS, addr_cells); if (!ret) - ret = ofnode_write_u32(node, UPLP_SIZE_CELLS, upl->size_cells); + ret = ofnode_write_u32(node, UPLP_SIZE_CELLS, size_cells); if (ret) return log_msg_ret("cel", ret);
@@ -421,6 +421,9 @@ static int add_upl_memres(const struct upl *upl, ofnode root, return 0; return log_msg_ret("img", ret); } + ret = add_addr_size_cells(mem_node, upl->addr_cells, upl->size_cells); + if (ret) + return log_msg_ret("im2", ret);
for (i = 0; i < upl->memres.count; i++) { const struct upl_memres *memres = alist_get(&upl->memres, i, @@ -562,7 +565,7 @@ int upl_write_handoff(const struct upl *upl, ofnode root, bool skip_existing) ofnode options; int ret;
- ret = add_root_props(upl, root); + ret = add_addr_size_cells(root, upl->addr_cells, upl->size_cells); if (ret) return log_msg_ret("ad1", ret); ret = ofnode_add_subnode(root, UPLN_OPTIONS, &options);