diff options
author | Stefan Roese <sr@denx.de> | 2009-09-11 17:07:55 +0200 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2009-09-17 14:05:52 +0200 |
commit | 95a4a593b577b6e2f1da2d4b0f5ec86975c33413 (patch) | |
tree | 4b9908b43798194ffc487ad37439cbb493cdfc7d /cpu | |
parent | 15fba3279b56333bdb65ead366f82c945ed320d1 (diff) | |
download | u-boot-95a4a593b577b6e2f1da2d4b0f5ec86975c33413.zip u-boot-95a4a593b577b6e2f1da2d4b0f5ec86975c33413.tar.gz u-boot-95a4a593b577b6e2f1da2d4b0f5ec86975c33413.tar.bz2 |
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 <sr@denx.de>
Diffstat (limited to 'cpu')
-rw-r--r-- | cpu/ppc4xx/speed.c | 6 |
1 files changed, 5 insertions, 1 deletions
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; } /******************************************** |