From: Kumar Gala Date: Wed, 11 Jan 2006 22:48:10 +0000 (-0600) Subject: Add helper function for generic flat device tree fixups for mpc83xx X-Git-Tag: LABEL_2006_04_18_1106~7^2~22^2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=62ec6418d417b1fc887f979441c15fbd6602edc9;p=oweals%2Fu-boot.git Add helper function for generic flat device tree fixups for mpc83xx Patch by Kumar Gala 11 Jan 2006 --- diff --git a/CHANGELOG b/CHANGELOG index 9b64a02485..1ad9bd36ce 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,9 @@ Changes since U-Boot 1.1.4: ====================================================================== +* Add helper function for generic flat device tree fixups for mpc83xx + Patch by Kumar Gala 11 Jan 2006 + * Add support for passing initrd information via flat device tree Patch by Kumar Gala 11 Jan 2006 diff --git a/cpu/mpc83xx/cpu.c b/cpu/mpc83xx/cpu.c index 8c9b515fa5..e49e4fe0ee 100644 --- a/cpu/mpc83xx/cpu.c +++ b/cpu/mpc83xx/cpu.c @@ -35,6 +35,7 @@ #include #include #include +#include #include @@ -151,3 +152,40 @@ void watchdog_reset (void) hang(); /* FIXME: implement watchdog_reset()? */ } #endif /* CONFIG_WATCHDOG */ + +#if defined(CONFIG_OF_FLAT_TREE) +void +ft_cpu_setup(void *blob, bd_t *bd) +{ + u32 *p; + int len; + ulong clock; + + clock = bd->bi_busfreq; + p = ft_get_prop(blob, "/cpus/" OF_CPU "/bus-frequency", &len); + if (p != NULL) + *p = cpu_to_be32(clock); + + p = ft_get_prop(blob, "/" OF_SOC "/bus-frequency", &len); + if (p != NULL) + *p = cpu_to_be32(clock); + + p = ft_get_prop(blob, "/" OF_SOC "/serial@4500/clock-frequency", &len); + if (p != NULL) + *p = cpu_to_be32(clock); + + p = ft_get_prop(blob, "/" OF_SOC "/serial@4600/clock-frequency", &len); + if (p != NULL) + *p = cpu_to_be32(clock); + +#ifdef CONFIG_MPC83XX_TSEC1 + p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/address", &len); + memcpy(p, bd->bi_enetaddr, 6); +#endif + +#ifdef CONFIG_MPC83XX_TSEC2 + p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/address", &len); + memcpy(p, bd->bi_enet1addr, 6); +#endif +} +#endif