public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] serial: add environment control for SERIAL_MULTI
@ 2012-10-25 21:59 Allen Martin
  2012-10-25 22:29 ` Marek Vasut
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Allen Martin @ 2012-10-25 21:59 UTC (permalink / raw)
  To: u-boot

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 <amartin@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 */
 
 	/*
 	 * 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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2012-10-26 10:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-25 21:59 [U-Boot] [PATCH] serial: add environment control for SERIAL_MULTI Allen Martin
2012-10-25 22:29 ` Marek Vasut
2012-10-25 22:36 ` Tom Rini
2012-10-25 22:36 ` Joe Hershberger
2012-10-25 22:45   ` Stephen Warren
2012-10-25 22:47     ` Joe Hershberger
2012-10-25 22:53       ` Allen Martin
2012-10-25 23:18         ` Joe Hershberger
2012-10-25 23:21           ` Allen Martin
2012-10-25 22:43 ` Stephen Warren
2012-10-25 22:46   ` Joe Hershberger
2012-10-25 22:50     ` Allen Martin
2012-10-25 23:17       ` Joe Hershberger
2012-10-26 10:27         ` Marek Vasut

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox