[U-Boot-Users] cpu/mpc85xx/fdt.c forcing incorrect UART clock into fdt.

Paul Gortmaker paul.gortmaker at windriver.com
Tue Jul 8 23:42:31 CEST 2008


I was updating a sbc8560 from u-boot v1.2.0 to git-current, and found
that I'd loose the kernel serial console when the 8250 driver took over
from udbg0 when using u-boot 1.3.x  (booting via tftp'ing the dtb and
the uImage separately)

I eventually tracked it down to mpc85xx/fdt.c stomping on the contents
of the UART clockrate in the dtb.  Since the sbc8560 is sort of
different -- in that it has external UARTs (instead of SOC/CPM), I'm
guessing few other boards see this problem, because bi_busfreq is
really their correct UART clk.

I fixed it with this simple patch, but I was wondering whether it would
be better to alternatively just check if the dtb value is zero, and 
then only insert a value; otherwise leave it alone...

Paul.


diff --git a/cpu/mpc85xx/fdt.c b/cpu/mpc85xx/fdt.c
index 92952e6..bd43073 100644
--- a/cpu/mpc85xx/fdt.c
+++ b/cpu/mpc85xx/fdt.c
@@ -224,7 +224,7 @@ void ft_cpu_setup(void *blob, bd_t *bd)
 
 #ifdef CFG_NS16550
 	do_fixup_by_compat_u32(blob, "ns16550",
-		"clock-frequency", bd->bi_busfreq, 1);
+		"clock-frequency", CFG_NS16550_CLK, 1);
 #endif
 
 #ifdef CONFIG_CPM2




More information about the U-Boot mailing list