- int offset;
- int i;
- int tmp[2];
-
- get_sys_info (&sys_info);
-
- do_fixup_u32(blob, cpu_path, "timebase-frequency", bd->bi_intfreq, 1);
- do_fixup_u32(blob, cpu_path, "clock-frequency", bd->bi_intfreq, 1);
- do_fixup_u32(blob, "/plb", "clock-frequency", sys_info.freqPLB, 1);
- do_fixup_u32(blob, "/plb/opb", "clock-frequency", sys_info.freqOPB, 1);
- do_fixup_u32(blob, "/plb/opb/ebc", "clock-frequency", sys_info.freqEBC, 1);
-
- /* update, or add and update /memory node */
- offset = fdt_find_node_by_path(blob, "/memory");
- if (offset < 0) {
- offset = fdt_add_subnode(blob, 0, "memory");
- if (offset < 0)
- debug("failed to add /memory node: %s\n",
- fdt_strerror(offset));
- }
- if (offset >= 0) {
- fdt_setprop(blob, offset, "device_type",
- "memory", sizeof("memory"));
- tmp[0] = cpu_to_fdt32(bd->bi_memstart);
- tmp[1] = cpu_to_fdt32(bd->bi_memsize);
- fdt_setprop(blob, offset, "reg", tmp, sizeof(tmp));
- debug("Updating /memory node to %d:%d\n",
- bd->bi_memstart, bd->bi_memsize);
- }
+ int off, ndepth = 0;
+
+ get_sys_info(&sys_info);
+
+ do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, "timebase-frequency",
+ bd->bi_intfreq, 1);
+ do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, "clock-frequency",
+ bd->bi_intfreq, 1);
+ do_fixup_by_path_u32(blob, "/plb", "clock-frequency", sys_info.freqPLB, 1);
+ do_fixup_by_path_u32(blob, "/plb/opb", "clock-frequency", sys_info.freqOPB, 1);
+
+ if (fdt_path_offset(blob, "/plb/opb/ebc") >= 0)
+ do_fixup_by_path_u32(blob, "/plb/opb/ebc", "clock-frequency",
+ sys_info.freqEBC, 1);
+ else
+ do_fixup_by_path_u32(blob, "/plb/ebc", "clock-frequency",
+ sys_info.freqEBC, 1);
+
+ fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize);