From: Stefan Roese Date: Fri, 11 Sep 2009 15:07:55 +0000 (+0200) Subject: ppc4xx: Fix 405EZ uart base baud calculation X-Git-Tag: 20091016~1^2~79 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bda4dece03675ad30c098a00f20332010ccb5c5d;p=kernel%2Fu-boot.git ppc4xx: Fix 405EZ uart base baud calculation With this fix, Linux correctly configures the baudrate when booting with FDT passed from U-Boot to Linux. Signed-off-by: Stefan Roese --- diff --git a/cpu/ppc4xx/speed.c b/cpu/ppc4xx/speed.c index 1f75137..9c4bc09 100644 --- a/cpu/ppc4xx/speed.c +++ b/cpu/ppc4xx/speed.c @@ -914,6 +914,7 @@ void get_sys_info (PPC4xx_SYS_INFO * sysInfo) unsigned long sysClkPeriodPs = ONE_BILLION / (CONFIG_SYS_CLK_FREQ/1000); unsigned long primad_cpudv; unsigned long m; + unsigned long plloutb; /* * Read PLL Mode registers @@ -999,7 +1000,10 @@ void get_sys_info (PPC4xx_SYS_INFO * sysInfo) sysInfo->freqEBC = (CONFIG_SYS_CLK_FREQ * sysInfo->pllFbkDiv) / sysInfo->pllExtBusDiv; - sysInfo->freqUART = sysInfo->freqVCOHz; + plloutb = ((CONFIG_SYS_CLK_FREQ * ((cpr_pllc & PLLC_SRC_MASK) ? + sysInfo->pllFwdDivB : sysInfo->pllFwdDiv) * sysInfo->pllFbkDiv) / + sysInfo->pllFwdDivB); + sysInfo->freqUART = plloutb; } /********************************************