diff options
| author | York Sun <yorksun@freescale.com> | 2012-10-08 07:44:31 +0000 | 
|---|---|---|
| committer | Andy Fleming <afleming@freescale.com> | 2012-10-22 14:31:33 -0500 | 
| commit | 98ffa19053f2d10578a227de4e441698226fde0a (patch) | |
| tree | 36010ca075f6ce2e62902c4b6321eff04f8cd5b4 | |
| parent | ffd06e0231ac3fd0c5810f39f6e23527948df1c7 (diff) | |
| download | olio-uboot-2014.01-98ffa19053f2d10578a227de4e441698226fde0a.tar.xz olio-uboot-2014.01-98ffa19053f2d10578a227de4e441698226fde0a.zip | |
powerpc/mpc85xx: Add CONFIG_DDR_CLK_FREQ for corenet platform
New corenet platforms with chassis2 have separated DDR clock inputs. Use
CONFIG_DDR_CLK_FREQ for DDR clock. This patch also cleans up the logic of
detecting and displaying synchronous vs asynchronous mode.
Signed-off-by: York Sun <yorksun@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/cpu.c | 26 | ||||
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/speed.c | 4 | 
2 files changed, 20 insertions, 10 deletions
| diff --git a/arch/powerpc/cpu/mpc85xx/cpu.c b/arch/powerpc/cpu/mpc85xx/cpu.c index f493483c1..892bfa4c6 100644 --- a/arch/powerpc/cpu/mpc85xx/cpu.c +++ b/arch/powerpc/cpu/mpc85xx/cpu.c @@ -60,26 +60,32 @@ int checkcpu (void)  	uint major, minor;  	struct cpu_type *cpu;  	char buf1[32], buf2[32]; -#if defined(CONFIG_DDR_CLK_FREQ) || \ -	(defined(CONFIG_FSL_CORENET) && !defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2)) +#if (defined(CONFIG_DDR_CLK_FREQ) || \ +	defined(CONFIG_FSL_CORENET)) && !defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2)  	volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);  #endif /* CONFIG_FSL_CORENET */ -#ifdef CONFIG_DDR_CLK_FREQ -	u32 ddr_ratio = ((gur->porpllsr) & MPC85xx_PORPLLSR_DDR_RATIO) -		>> MPC85xx_PORPLLSR_DDR_RATIO_SHIFT; -#else + +	/* +	 * Cornet platforms use ddr sync bit in RCW to indicate sync vs async +	 * mode. Previous platform use ddr ratio to do the same. This +	 * information is only for display here. +	 */  #ifdef CONFIG_FSL_CORENET -	u32 ddr_sync ;  #ifdef CONFIG_SYS_FSL_QORIQ_CHASSIS2 -	ddr_sync = 0;	/* only async mode is supported */ +	u32 ddr_sync = 0;	/* only async mode is supported */  #else -	ddr_sync = ((gur->rcwsr[5]) & FSL_CORENET_RCWSR5_DDR_SYNC) +	u32 ddr_sync = ((gur->rcwsr[5]) & FSL_CORENET_RCWSR5_DDR_SYNC)  		>> FSL_CORENET_RCWSR5_DDR_SYNC_SHIFT;  #endif /* CONFIG_SYS_FSL_QORIQ_CHASSIS2 */ +#else	/* CONFIG_FSL_CORENET */ +#ifdef CONFIG_DDR_CLK_FREQ +	u32 ddr_ratio = ((gur->porpllsr) & MPC85xx_PORPLLSR_DDR_RATIO) +		>> MPC85xx_PORPLLSR_DDR_RATIO_SHIFT;  #else  	u32 ddr_ratio = 0; -#endif /* CONFIG_FSL_CORENET */  #endif /* CONFIG_DDR_CLK_FREQ */ +#endif /* CONFIG_FSL_CORENET */ +  	unsigned int i, core, nr_cores = cpu_numcores();  	u32 mask = cpu_mask(); diff --git a/arch/powerpc/cpu/mpc85xx/speed.c b/arch/powerpc/cpu/mpc85xx/speed.c index f07a28b46..8a8f317f8 100644 --- a/arch/powerpc/cpu/mpc85xx/speed.c +++ b/arch/powerpc/cpu/mpc85xx/speed.c @@ -82,7 +82,11 @@ void get_sys_info (sys_info_t * sysInfo)  	uint mem_pll_rat;  	sysInfo->freqSystemBus = sysclk; +#ifdef CONFIG_DDR_CLK_FREQ +	sysInfo->freqDDRBus = CONFIG_DDR_CLK_FREQ; +#else  	sysInfo->freqDDRBus = sysclk; +#endif  	sysInfo->freqSystemBus *= (in_be32(&gur->rcwsr[0]) >> 25) & 0x1f;  	mem_pll_rat = (in_be32(&gur->rcwsr[0]) >> |