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

Reply via email to