
Hi Stefan,
Even defining CONFIG_SYS_EXT_SERIAL_CLOCK will bring up an error - the 405EP does not support external UART clock. So this special macro should not be used. On our board (PLU405) there is no reason to touch the external UARTs from U-Boot. So I think the best way would be to leave their fdt description untouched. And the correct clock comes from the device tree.
OK, makes sense to me.
So the very best way would be to let U-Boot detect internal UARTs. We could do that by adding an additional compatible value to the internal UART nodes:
UART0: serial@ef600300 { device_type = "serial"; compatible = "ns16550", "ibm,uart"; ...
That could be done as well. Perhaps it's the "better" solution. You might want to ask on the linuxppc-dev list if such a patch is welcome. If yes, then we should go this way.
Changing U-Boot to check for something different than ns16550 will break all board that have ns16550 in their dt.
The Linux kernel only checks for ns16550 compatible nodes under specific parents (see arch/powerpc/kernel/legacy_serial.c). For 4xx this is only "opb" and not even opb/ebc.
So I think we should do it also this way. In this case we could keep the modification in U-Boots' cpu/ppc4xx/fdt.c.
When you are with me I will try to prepare a patch.
Matthias
Thanks.
Best regards, Stefan