[U-Boot] [PATCH 2/2] serial: Make nulldev a serial device

Marek Vasut marex at denx.de
Tue Nov 6 01:47:33 CET 2012


Dear Joe Hershberger,

> Hi Marek.
> 
> On Mon, Nov 5, 2012 at 5:10 PM, Marek Vasut <marex at denx.de> wrote:
> > Dear Joe Hershberger,
> > 
> >> Hi Marek,
> >> 
> >> On Fri, Nov 2, 2012 at 8:37 PM, Marek Vasut <marex at denx.de> wrote:
> >> > Dear Joe Hershberger,
> >> > 
> >> >> This allows the default console to be specified as the nulldev.  This
> >> >> is specifically helpful when the real serial console's init() cannot
> >> >> run early in the boot process.  When the init can be run, then the
> >> >> console can be switched to the real device using the std* env vars.
> >> >> 
> >> >> Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
> >> > 
> >> > Isn't it actually better to have null stdio device? Some systems might
> >> > not even use serial port (and so null serial will be useless on these
> >> > systems)!
> >> 
> >> As I described in my commit log, this is for the case where the serial
> >> and console init must not touch the hardware, (since it doesn't exist
> >> yet if it's in an FPGA or on a PCI or USB connection).  Making the
> >> default serial port be the nulldev avoids this issue.
> > 
> > So add nulldev serial device for this stupid case. Even though fixing
> > iomux such that it'd not send anything to serial port at all if nulldev
> > is selected would be even better idea.
> 
> It's not a problem of something being sent to the serial port.  It's
> the call to serial_init() in arch/*/lib/board.c that kills it.  That
> call needs to be no-op-able.

Why?

What about fixing serial_init like this:

struct serial_device *dev = get_current();
int ret = 0;
if (dev)
  ret = dev->start();

return ret;

Best regards,
Marek Vasut


More information about the U-Boot mailing list