Lines Matching +full:mux +full:- +full:gpios

1 # Mux Support
3 In some hardware designs, multiple UARTS may be available behind a Mux, which
4 requires obmc-console to select one at a time.
7 a mux. GPIO `UART-MUX-CTL` can be used to select one. This scenario is shown in
8 the [Example Diagram](#example-diagram)
10 Then there will be one obmc-console-server process, and 2 consoles will be
13 The obmc-console-server will receive configuration for both consoles detailing
14 the gpios to be used to control the mux and the values they should have when
18 [design document](https://github.com/openbmc/docs/blob/master/designs/uart-mux-support.md)
22 The kernel will not be aware of this mux and the support can be implemented in
27 virtual uart should notify a process that the mux state has changed.
34 The configuration is similar to i2c-mux-gpio in the linux kernel.
36 The order of GPIOs listed in 'mux-gpios' forms the LSB-first bit representation
37 of an N-bit number that is taken from 'mux-index'.
40 the same as the console-id. All of the section names need to be unique.
44 mux-gpios = MUX_CTL
47 mux-index = 0
48 logfile = /var/log/console-host1.log
51 mux-index = 1
52 logfile = /var/log/console-host2.log
55 Now the server can be started. See the [Dbus Interface](#dbus-interface-example)
56 and [Example Diagram](#example-diagram)
59 obmc-console-server --config server.conf /dev/ttyS0
62 ## Mux Control
64 Mux Control happens implicitly via connections. When a client connects to a
65 console, the new connection is accepted and the console-server switches the mux
68 ### Mux Control - Example
71 $ obmc-console-client -i host2 &
73 $ obmc-console-client -i host1
80 [Mux Control Log](#mux-control-log)
84 1. switch the mux using the gpios
86 see [Mux Control Log](#mux-control-log)
89 ## Mux Control Log
91 Whenever the mux is switched, there should be a way for people reading the log
95 So obmc-console-server will print one of these messages to all clients:
98 [obmc-console] %Y-%m-%d %H:%M:%S UTC CONNECTED
102 [obmc-console] %Y-%m-%d %H:%M:%S UTC DISCONNECTED
105 ### Mux Control Log Disclaimer
118 xyz.openbmc_project.Console.host1 926 obmc-console-server root ...
119 xyz.openbmc_project.Console.host2 926 obmc-console-server root ...
142 org.freedesktop.DBus.Introspectable interface - - -
143 .Introspect method - s -
144 org.freedesktop.DBus.Peer interface - - -
145 .GetMachineId method - s -
146 .Ping method - - -
147 org.freedesktop.DBus.Properties interface - - -
148 .Get method ss v -
149 .GetAll method s a{sv} -
150 .Set method ssv - -
151 .PropertiesChanged signal sa{sv}as - -
152 xyz.openbmc_project.Console.Access interface - - -
153 .Connect method - h -
159 +--------------------+
161 +--------------------+
166 … +----+----+ +-----+ +-------+
168 … | | +-------+ +-------+ | +-----+ UART1 |
169 +-----------------------------------+ | | | | | | | | |…
170 | xyz.openbmc_project.Console.host1 +-----+ +-----+ ttyS0 +-----+ UART0 +-----+ | +
171 +-----------------------------------+ | | | | | | | |
172 | obmc | +-------+ +-------+ | |
173 | console | | MUX |
174 | server | +-------+ | |
175 +-----------------------------------+ | | | | | |
176 | xyz.openbmc_project.Console.host2 +-----+ +-------------------+ GPIO +-----+ | +
177 +-----------------------------------+ | | | | | | |…
178 … | | +-------+ | +-----+ UART2 |
180 … +----+----+ +-----+ +-------+