
Back to the problem: How about moving the watchdog_reset call to serial_puts() in common/serial.c? Or do you have another (better) idea in mind?
Are you really sure this is the right place, i. e. this is where the problem happens?
I doubt that.
lwmon5 which has this nasty 100 ms watchdog (actually 80 ms including allowable tolerances, IIRC) is running at 115bps.
In theory, it would take a string of more than 900 characters for puts() to exceeding this delay, but all strings ever printed in U-Boot are way shorter.
Just my 2 cents: I don't know if that system has hardware handshake, and if that's enable. But a missing CTS could stop output indefinitely. Or a receiving terminal program might use CTS to halt output when its somewhat busy.
Just a thought for a possible scenario...
Best Regards, Reinhard