diff options
| -rw-r--r-- | board/ads5121/ads5121.c | 8 | ||||
| -rw-r--r-- | cpu/mpc512x/cpu.c | 21 | ||||
| -rw-r--r-- | include/asm-ppc/u-boot.h | 3 | ||||
| -rw-r--r-- | include/configs/ads5121.h | 8 | ||||
| -rw-r--r-- | lib_ppc/board.c | 3 | 
5 files changed, 43 insertions, 0 deletions
diff --git a/board/ads5121/ads5121.c b/board/ads5121/ads5121.c index f275ce7de..46be6a516 100644 --- a/board/ads5121/ads5121.c +++ b/board/ads5121/ads5121.c @@ -184,3 +184,11 @@ int checkboard (void)  		brd_rev, cpld_rev);  	return 0;  } + +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) +void ft_board_setup(void *blob, bd_t *bd) +{ +	ft_cpu_setup(blob, bd); +	fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize); +} +#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */ diff --git a/cpu/mpc512x/cpu.c b/cpu/mpc512x/cpu.c index accae6e06..6421a511e 100644 --- a/cpu/mpc512x/cpu.c +++ b/cpu/mpc512x/cpu.c @@ -32,6 +32,10 @@  #include <mpc512x.h>  #include <asm/processor.h> +#if defined(CONFIG_OF_LIBFDT) +#include <fdt_support.h> +#endif +  DECLARE_GLOBAL_DATA_PTR;  int checkcpu (void) @@ -125,3 +129,20 @@ void watchdog_reset (void)  		enable_interrupts ();  }  #endif + +#ifdef CONFIG_OF_LIBFDT +void ft_cpu_setup(void *blob, bd_t *bd) +{ +	char * cpu_path = "/cpus/" OF_CPU; +	char * eth_path = "/" OF_SOC "/ethernet@2800"; + +	do_fixup_by_path_u32(blob, cpu_path, "timebase-frequency", OF_TBCLK, 1); +	do_fixup_by_path_u32(blob, cpu_path, "bus-frequency", bd->bi_busfreq, 1); +	do_fixup_by_path_u32(blob, cpu_path, "ref-frequency", CFG_MPC512X_CLKIN, 1); +	do_fixup_by_path_u32(blob, cpu_path, "clock-frequency", bd->bi_intfreq, 1); +	do_fixup_by_path_u32(blob, "/" OF_SOC, "bus-frequency", bd->bi_ipsfreq, 1); +	do_fixup_by_path_u32(blob, "/" OF_SOC, "ref-frequency", CFG_MPC512X_CLKIN, 1); +	do_fixup_by_path(blob, eth_path, "address", bd->bi_enetaddr, 6, 0); +	do_fixup_by_path(blob, eth_path, "local-mac-address", bd->bi_enetaddr, 6, 0); +} +#endif diff --git a/include/asm-ppc/u-boot.h b/include/asm-ppc/u-boot.h index bd9b6f70d..2b31814b6 100644 --- a/include/asm-ppc/u-boot.h +++ b/include/asm-ppc/u-boot.h @@ -74,6 +74,9 @@ typedef struct bd_info {  	unsigned long	bi_sccfreq;	/* SCC_CLK Freq, in MHz */  	unsigned long	bi_vco;		/* VCO Out from PLL, in MHz */  #endif +#if defined(CONFIG_MPC512X) +	unsigned long	bi_ipsfreq;	/* IPS Bus Freq, in MHz */ +#endif /* CONFIG_MPC512X */  #if defined(CONFIG_MPC5xxx)  	unsigned long	bi_ipbfreq;	/* IPB Bus Freq, in MHz */  	unsigned long	bi_pcifreq;	/* PCI Bus Freq, in MHz */ diff --git a/include/configs/ads5121.h b/include/configs/ads5121.h index 58060a8c8..11e7e4431 100644 --- a/include/configs/ads5121.h +++ b/include/configs/ads5121.h @@ -407,4 +407,12 @@  #define CONFIG_BOOTCOMMAND	"run flash_self" +#define CONFIG_OF_LIBFDT	1 +#define CONFIG_OF_BOARD_SETUP	1 + +#define OF_CPU			"PowerPC,5121@0" +#define OF_SOC			"soc5121@80000000" +#define OF_TBCLK		(bd->bi_busfreq / 4) +#define OF_STDOUT_PATH		"/soc5121@80000000/serial@11300" +  #endif	/* __CONFIG_H */ diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 071974506..635091860 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -555,6 +555,9 @@ void board_init_f (ulong bootflag)  	bd->bi_sccfreq = gd->scc_clk;  	bd->bi_vco     = gd->vco_out;  #endif /* CONFIG_CPM2 */ +#if defined(CONFIG_MPC512X) +	bd->bi_ipsfreq = gd->ipb_clk; +#endif /* CONFIG_MPC512X */  #if defined(CONFIG_MPC5xxx)  	bd->bi_ipbfreq = gd->ipb_clk;  	bd->bi_pcifreq = gd->pci_clk;  |