|
|
|
@ -523,9 +523,10 @@ static const struct { |
|
|
|
|
void |
|
|
|
|
ft_cpu_setup(void *blob, bd_t *bd) |
|
|
|
|
{ |
|
|
|
|
int nodeoffset; |
|
|
|
|
int err; |
|
|
|
|
int j; |
|
|
|
|
int nodeoffset; |
|
|
|
|
int err; |
|
|
|
|
int j; |
|
|
|
|
int tmp[2]; |
|
|
|
|
|
|
|
|
|
for (j = 0; j < (sizeof(fixup_props) / sizeof(fixup_props[0])); j++) { |
|
|
|
|
nodeoffset = fdt_find_node_by_path(blob, fixup_props[j].node); |
|
|
|
@ -534,15 +535,29 @@ ft_cpu_setup(void *blob, bd_t *bd) |
|
|
|
|
fixup_props[j].prop, bd); |
|
|
|
|
if (err < 0) |
|
|
|
|
debug("Problem setting %s = %s: %s\n", |
|
|
|
|
fixup_props[j].node, |
|
|
|
|
fixup_props[j].prop, |
|
|
|
|
fdt_strerror(err)); |
|
|
|
|
fixup_props[j].node, fixup_props[j].prop, |
|
|
|
|
fdt_strerror(err)); |
|
|
|
|
} else { |
|
|
|
|
debug("Couldn't find %s: %s\n", |
|
|
|
|
fixup_props[j].node, |
|
|
|
|
fdt_strerror(nodeoffset)); |
|
|
|
|
fixup_props[j].node, fdt_strerror(nodeoffset)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* update, or add and update /memory node */ |
|
|
|
|
nodeoffset = fdt_find_node_by_path(blob, "/memory"); |
|
|
|
|
if (nodeoffset < 0) { |
|
|
|
|
nodeoffset = fdt_add_subnode(blob, 0, "memory"); |
|
|
|
|
if (nodeoffset < 0) |
|
|
|
|
debug("failed to add /memory node: %s\n", |
|
|
|
|
fdt_strerror(nodeoffset)); |
|
|
|
|
} |
|
|
|
|
if (nodeoffset >= 0) { |
|
|
|
|
fdt_setprop(blob, nodeoffset, "device_type", |
|
|
|
|
"memory", sizeof("memory")); |
|
|
|
|
tmp[0] = cpu_to_be32(bd->bi_memstart); |
|
|
|
|
tmp[1] = cpu_to_be32(bd->bi_memsize); |
|
|
|
|
fdt_setprop(blob, nodeoffset, "reg", tmp, sizeof(tmp)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#elif defined(CONFIG_OF_FLAT_TREE) |
|
|
|
|
void |
|
|
|
|