Hi Allen, On Thu, Oct 25, 2012 at 4:59 PM, Allen Martin <amar...@nvidia.com> wrote: > Add a new special environment variable "serial" that allows selection > of serial device when CONFIG_SERIAL_MULTI is defined. This replaces > the existing calls to serial_assign() from cmd_nvedit.c and iomux.c > that were not doing anything. > > Signed-off-by: Allen Martin <amar...@nvidia.com> > --- > common/cmd_nvedit.c | 7 ++++++- > common/iomux.c | 10 ---------- > doc/driver-model/UDM-serial.txt | 5 +++-- > 3 files changed, 9 insertions(+), 13 deletions(-) > > diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c > index 1f9c674..d1ee07d 100644 > --- a/common/cmd_nvedit.c > +++ b/common/cmd_nvedit.c > @@ -238,11 +238,16 @@ int env_check_apply(const char *name, const char > *oldval, > /* Try assigning specified device */ > if (console_assign(console, newval) < 0) > return 1; > +#endif /* CONFIG_CONSOLE_MUX */ > + } > > +#ifdef CONFIG_SERIAL_MULTI > + /* Check for serial redirection */ > + if (strcmp(name, "serial") == 0) { > if (serial_assign(newval) < 0) > return 1; > -#endif /* CONFIG_CONSOLE_MUX */ > } > +#endif /* CONFIG_SERIAL_MULTI */
Changes to this directly conflict with the environment callback series I sent out RFC (soon be be a real series). Can we hold off on this until that happens? > /* > * Some variables like "ethaddr" and "serial#" can be set only once > and > diff --git a/common/iomux.c b/common/iomux.c > index dbc2312..6a75704 100644 > --- a/common/iomux.c > +++ b/common/iomux.c > @@ -135,16 +135,6 @@ int iomux_doenv(const int console, const char *arg) > */ > if (console_assign(console, start[j]) < 0) > continue; > - /* > - * This was taken from common/cmd_nvedit.c. > - * This will never work because serial_assign() returns > - * 1 upon error, not -1. > - * This would almost always return an error anyway because > - * serial_assign() expects the name of a serial device, like > - * serial_smc, but the user generally only wants to set > serial. > - */ > - if (serial_assign(start[j]) < 0) > - continue; > cons_set[cs_idx++] = dev; > } > free(console_args); > diff --git a/doc/driver-model/UDM-serial.txt b/doc/driver-model/UDM-serial.txt > index 9feb2e5..66f3e6b 100644 > --- a/doc/driver-model/UDM-serial.txt > +++ b/doc/driver-model/UDM-serial.txt > @@ -26,8 +26,9 @@ and serial_setbrg() are often called from > platform-dependent places. > It's important to consider current implementation of CONFIG_SERIAL_MULTI > though. > This resides in common/serial.c and behaves as a multiplexer for serial > ports. > This, by calling serial_assign(), allows user to switch I/O from one serial > port > -to another. Though the environmental variables "stdin", "stdout", "stderr" > -remain set to "serial". > +to another. The environment variable "serial" is used to select which of the > +serial ports is the currently active port. The environmental variables > +"stdin", "stdout", "stderr" remain set to "serial". > > These variables are managed by the IOMUX. This resides in common/iomux.c and > manages all console input/output from U-Boot. For serial port, only one > IOMUX is > -- > 1.7.10.4 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot