diff options
author | Wolfgang Denk <wd@denx.de> | 2009-01-24 02:17:02 +0100 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2009-01-24 02:17:02 +0100 |
commit | 8f86a3636ef88427f880610638e80991adc41896 (patch) | |
tree | 2f6a28872ab9f5de9fec7ac878b8801f5f536eec /cpu/mpc85xx/fdt.c | |
parent | 1ea0823786eb3bbb604da88279eca3ba31ef205f (diff) | |
parent | 18af1c5f0f7402dc0d6a71b012c68025dd97cf72 (diff) | |
download | u-boot-imx-8f86a3636ef88427f880610638e80991adc41896.zip u-boot-imx-8f86a3636ef88427f880610638e80991adc41896.tar.gz u-boot-imx-8f86a3636ef88427f880610638e80991adc41896.tar.bz2 |
Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx
Diffstat (limited to 'cpu/mpc85xx/fdt.c')
-rw-r--r-- | cpu/mpc85xx/fdt.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/cpu/mpc85xx/fdt.c b/cpu/mpc85xx/fdt.c index 69fab99..1fae47c 100644 --- a/cpu/mpc85xx/fdt.c +++ b/cpu/mpc85xx/fdt.c @@ -213,6 +213,10 @@ void fdt_add_enet_stashing(void *fdt) void ft_cpu_setup(void *blob, bd_t *bd) { + int off; + int val; + sys_info_t sysinfo; + /* delete crypto node if not on an E-processor */ if (!IS_E_PROCESSOR(get_svr())) fdt_fixup_crypto_node(blob, 0); @@ -228,8 +232,15 @@ void ft_cpu_setup(void *blob, bd_t *bd) "timebase-frequency", bd->bi_busfreq / 8, 1); do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, "bus-frequency", bd->bi_busfreq, 1); - do_fixup_by_prop_u32(blob, "device_type", "cpu", 4, - "clock-frequency", bd->bi_intfreq, 1); + 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.freqProcessor[*reg]); + fdt_setprop(blob, off, "clock-frequency", &val, 4); + off = fdt_node_offset_by_prop_value(blob, off, "device_type", + "cpu", 4); + } do_fixup_by_prop_u32(blob, "device_type", "soc", 4, "bus-frequency", bd->bi_busfreq, 1); |