Hi Masahiro, On 22 October 2014 03:13, Masahiro Yamada <[email protected]> wrote: > Without this commit, functions such as printf(), puts() stop working > after the console is ready (= after GD_FLG_DEVINIT is set in > console_init_r() function). > > The function serial_putc() is called to print a character before the > console is available, while serial_stub_putc() is used on the console. > > The cause of the problem is that the error handling of ops->putc > handler is missing from serial_stub_putc(); it should behave > like serial_putc(). > > Signed-off-by: Masahiro Yamada <[email protected]> > --- > > drivers/serial/serial-uclass.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c > index 6dde4ea..163308b 100644 > --- a/drivers/serial/serial-uclass.c > +++ b/drivers/serial/serial-uclass.c > @@ -127,8 +127,13 @@ void serial_stub_putc(struct stdio_dev *sdev, const char > ch) > { > struct udevice *dev = sdev->priv; > struct dm_serial_ops *ops = serial_get_ops(dev); > + int err; > > - ops->putc(dev, ch); > + do { > + err = ops->putc(cur_dev, ch); > + } while (err == -EAGAIN); > + if (ch == '\n') > + serial_putc('\r'); > } > > void serial_stub_puts(struct stdio_dev *sdev, const char *str) > -- > 1.9.1 >
Sorry for the bug, but I did fix it some weeks OK. Please see this patch: http://patchwork.ozlabs.org/patch/395725/ I recommend basing on dm/working if you are sending new patches because code there is generally on its way upstream ahead of your patch. I will see if I can start using dm/testing more, as that is really its intended purpose. Regards, Simon _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

