kboot: Make dt_get_or_add_reserved_mem mutate existing nodes

This means we can use it with pre-created nodes in the DT.

Signed-off-by: Hector Martin <marcan@marcan.st>
This commit is contained in:
Hector Martin 2023-09-08 00:39:16 +09:00
parent 4ae23577cc
commit 5a632bad87

View file

@ -1264,21 +1264,20 @@ static int dt_get_or_add_reserved_mem(const char *node_name, const char *compat,
bail("FDT: '/reserved-memory' not found\n"); bail("FDT: '/reserved-memory' not found\n");
int node = fdt_subnode_offset(dt, resv_node, node_name); int node = fdt_subnode_offset(dt, resv_node, node_name);
if (node >= 0) if (node < 0) {
return node; node = fdt_add_subnode(dt, resv_node, node_name);
if (node < 0)
bail("FDT: failed to add node '%s' to '/reserved-memory'\n", node_name);
node = fdt_add_subnode(dt, resv_node, node_name); uint32_t phandle;
if (node < 0) ret = fdt_generate_phandle(dt, &phandle);
bail("FDT: failed to add node '%s' to '/reserved-memory'\n", node_name); if (ret)
bail("FDT: failed to generate phandle: %d\n", ret);
uint32_t phandle; ret = fdt_setprop_u32(dt, node, "phandle", phandle);
ret = fdt_generate_phandle(dt, &phandle); if (ret != 0)
if (ret) bail("FDT: couldn't set '%s.phandle' property: %d\n", node_name, ret);
bail("FDT: failed to generate phandle: %d\n", ret); }
ret = fdt_setprop_u32(dt, node, "phandle", phandle);
if (ret != 0)
bail("FDT: couldn't set '%s.phandle' property: %d\n", node_name, ret);
u64 reg[2] = {cpu_to_fdt64(paddr), cpu_to_fdt64(size)}; u64 reg[2] = {cpu_to_fdt64(paddr), cpu_to_fdt64(size)};
ret = fdt_setprop(dt, node, "reg", reg, sizeof(reg)); ret = fdt_setprop(dt, node, "reg", reg, sizeof(reg));