{
        int off;
        int val;
+       int len;
        sys_info_t sysinfo;
 
        /* delete crypto node if not on an E-processor */
        get_sys_info(&sysinfo);
        off = fdt_node_offset_by_prop_value(blob, -1, "device_type", "cpu", 4);
        while (off != -FDT_ERR_NOTFOUND) {
-               u32 *reg = (u32 *)fdt_getprop(blob, off, "reg", 0);
-               val = cpu_to_fdt32(sysinfo.freq_processor[*reg]);
+               u32 *reg = (u32 *)fdt_getprop(blob, off, "reg", &len);
+               val = cpu_to_fdt32(sysinfo.freq_processor[(*reg) / (len / 4)]);
                fdt_setprop(blob, off, "clock-frequency", &val, 4);
                off = fdt_node_offset_by_prop_value(blob, off, "device_type",
                                                        "cpu", 4);