add ft_cpu_setup(..) on mpc8260
PATCH 1/1 add ft_cpu_setup(..) on mpc8260
add ft_cpu_setup(..)-function to adapt it for using with flattened device tree based on code from mpc5xxx
Sigend-off-by Sergej Stepanov <[email protected]>
---
cpu/mpc8260/cpu.c +37 -0
@@ -38,6 +38,9 @@* * added HiP7 (824x/827x/8280) processors support by * Yuli Barcohen <[email protected]> +* +* added ft_cpu_setup(..) for using with CONFIG_OF_LIBFDT +* Sergej Stepanov <[email protected]> */ #include <common.h>
@@ -47,6 +50,11 @@#include <asm/processor.h> #include <asm/cpm_8260.h> +#if defined(CONFIG_OF_LIBFDT ) +#include <libfdt.h> +#include <libfdt_env.h> +#endif +DECLARE_GLOBAL_DATA_PTR ;#if defined(CONFIG_GET_CPU_STR_F )
@@ -294,3 +302,32 @@ void watchdog_reset (void)#endif /* CONFIG_WATCHDOG */ /* ------------------------------------------------------------------------- */ +#if defined(CONFIG_OF_LIBFDT ) +static void do_fixup (void *fdt,const char *node,const char *prop, +const void *val,int len,int create) +{ +int rc =fdt_find_and_setprop (fdt, node, prop, val, len, create); +if (rc) +printf ("Unable to update property %s:%s, err=%s\n" , + node, prop,fdt_strerror (rc)); +} + +static void do_fixup_u32 (void *fdt,const char *node,const char *prop, +u32 val,int create) +{ + val =cpu_to_fdt32 (val); +do_fixup (fdt, node, prop, &val,sizeof (val), create); +} + +void ft_cpu_setup (void *blob,bd_t *bd) +{ +u32 *p; +ulong clock; +int len; +char * cpu_path ="/cpus/" OF_CPU ; + +do_fixup_u32 (blob, cpu_path,"bus-frequency" , bd->bi_busfreq,1 ); +do_fixup_u32 (blob, cpu_path,"timebase-frequency" ,OF_TBCLK ,1 ); +do_fixup_u32 (blob, cpu_path,"clock-frequency" , bd->bi_intfreq,1 ); +} +#endif /* CONFIG_OF_LIBFDT */