From: Stefan Roese Date: Fri, 11 Sep 2009 15:07:55 +0000 (+0200) Subject: ppc4xx: Fix 405EZ uart base baud calculation X-Git-Tag: v2010.09-rc1~28^2~7^2~42^2~79 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=bda4dece03675ad30c098a00f20332010ccb5c5d;p=u-boot 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 1f751372ca..9c4bc09904 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; } /********************************************