System and method for managing a UART multiplexer connected to multiple hosts
A computing system including two or more controllers, a universal asynchronous receiver-transmitter (UART) multiplexer, and a combinational logic circuit is provided. The two of more controllers include a first controller and a second controller. The first controller is configured to provide a first status signal and a first select control signal, and the second controller is configured to provide a second status signal and a second select control signal. The UART multiplexer is configured to provide UART output from at least a first UART input and a second UART input based on a UART select signal. The combinational logic circuit is configured to determine the UART select signal is one of the first select control signal or the second select control signal based at least in part on the first status signal and the second status signal.
1 . A computing system comprising:
two or more controllers, a first controller of the two or more controllers configured to provide a first status signal and a first select control signal, a second controller of the two or more controllers configured to provide a second status signal and a second select control signal;
a universal asynchronous receiver-transmitter (UART) multiplexer configured to provide a UART output from at least one of a first UART input coupled to a first device or a second UART input coupled to a second device based on a UART input select signal to the UART multiplexer to select one of the first or second UART inputs; and
a combinational logic circuit configured to select one of the first controller to provide the first select control signal as the UART input select signal or the second controller to provide the second select control signal as the UART input select signal, the selection determined based at least in part on the first status signal and the second status signal.
2 . The computing system of claim 1 , wherein
the combinational logic circuit is further configured to determine that the UART select signal is the first select control signal based at least in part on the first status signal indicating that the first controller is available.
3 . The computing system of claim 1 , wherein
the combinational logic circuit is further configured to determine that the UART select signal is the second select control signal based at least in part on the first status signal indicating that the first controller is unavailable and the second status signal indicating that the second controller is available.
4 . The computing system of claim 1 , wherein the combinational logic circuit is further configured to determine a change in state of the first controller from unavailable to available, the combinational logic being further configured to determine that the UART select signal is the first select control signal.
5 . The computing system of claim 1 , wherein the two or more controllers include one or more baseband management controllers (BMCs), one or more storage controllers, one or more bridge integrated circuits, or any combination thereof.
6 . The computing system of claim 1 , further comprising a plurality of server nodes including a first server node and a second server node, wherein the first controller is a controller on the first server node and the second controller is a controller on the second server node.
7 . The computing system of claim 6 , wherein the first controller is a first baseband management controllers (BMC) and the second controller is a second BMC.
8 . The computing system of claim 6 , wherein the first BMC is provided on a first data center-ready secure control module (DC-SCM) and the second BMC is provided on a second DC-SCM.
9 . The computing system of claim 6 , wherein the combinational logic circuit is further configured to determine the UART select signal as one of a plurality of control signals including at least the first select control signal and the second select control signal, and wherein the UART select signal is determined based at least in part on one of a plurality of control signals including the first status signal and the second status signal.
10 . The computing system of claim 6 , wherein a third controller of the two or more controllers is a first storage controller on the first server node, the UART select signal being determined based on the first status signal, the second status signal, and a third status signal provided by the third controller.
11 . A computing system comprising:
two or more controllers, a first controller of the two or more controllers configured to provide a first status signal and a first select control signal, a second controller of the two or more controllers configured to provide a second status signal and a second select control signal;
a universal asynchronous receiver-transmitter (UART) multiplexer configured to provide UART output from at least one of a first UART input coupled to a first device or and a second UART input coupled to a second device based on a UART input select signal; and
a combinational logic circuit is configured to: determine that the two or more controllers are organized in a priority in which the first controller is of a higher priority than the second controller, wherein the priority is determined based on at least one of: (i) a preference of BMCs controlling the UART multiplexer; (ii) a preference of having controllers of a same node controlling the UART multiplexer; or (iii) a preference of minimizing physical distances between the UART multiplexer and the different controllers; and
determine one of the first controller to provide the UART select signal as the first select control signal or the second controller to provide the second select control signal as the UART input select signal, the determination determined based at least in part on the priority, and the first status signal and the second status signal.
12 . A computer-implemented method, comprising:
receiving, by a combinational logic circuit, a plurality of status signals generated by two or more controllers, each controller generating a corresponding status signal;
receiving, by the combinational logic circuit, a plurality of select control signals generated by the two or more controllers, each controller generating a corresponding select control signal;
selecting, by the combinational logic circuit, one of the plurality of the select control signals as a universal asynchronous receiver-transmitter (UART) select signal for controlling a UART multiplexer based at least in part on the plurality of status signals; and
providing, by the UART multiplexer, a UART output from at least one of a first UART input coupled to a first device or and a second UART input coupled to a second device based at least in part on the selected UART select signal.
13 . The computer-implemented method according to claim 12 , further comprising determining the UART select signal as a first select control signal based at least in part on a first status signal indicating that a first controller of the two or more controllers is available.
14 . The computer-implemented method according to claim 12 , further comprising determining the UART select signal as a second select control signal based at least in part on (i) a second status signal of the plurality of status signals indicating that a second controller of the two or more controllers is available and (ii) a first status signal of the plurality of status signals indicating that a first controller of the two or more controllers is unavailable.
15 . The computer-implemented method according to claim 14 , further comprising:
determining, by the combinational logic circuit, that the first status signal indicates a change in status of the first controller from unavailable to available; and
determining, by the combinational logic circuit, that the UART select signal is the first select control signal.
16 . The computer-implemented method according to claim 12 , wherein the two or more controllers include one or more baseband management controllers (BMCs), one or more storage controllers, one or more bridge integrated circuits, or any combination thereof.
17 . The computer-implemented method according to claim 12 , wherein a first controller of the two or more controllers is located on a first server node and a second controller of the two or more controllers is located on a second server node.
18 . A multi-node server comprising:
a plurality of server nodes including:
a first server node having a universal asynchronous receiver-transmitter (UART) multiplexer and a first plurality of controllers, each of the first plurality of controllers configured to generate a corresponding status signal and a corresponding select signal, and
a second server node having a second plurality of controllers, each of the second plurality of controllers configured to generate a corresponding status signal and a corresponding select signal; and
a combinational logic circuit configured to select a UART select signal for managing the UART multiplexer from one of a plurality of select signals generated from the first or second plurality of controllers, the selection based at least in part on (i) one or more status signals generated by the first plurality of controllers, (ii) one or more status signals generated by the second plurality of controllers, or (iii) both (i) and (ii),
wherein the UART multiplexer is configured to provide an UART output based at least in part on the selected UART select signal.
19 . The multi-node server of claim 18 , wherein the combinational logic circuit is further configured to determine the UART select signal based at least in part on assigned priority between controllers of the first plurality of controllers, the second plurality of controllers, or both.
20 . The multi-node server of claim 19 , wherein the first server node further includes a first baseband management controller (BMC) and the second server node further includes a second BMC, the first BMC having a higher assigned priority than the second BMC, and the combinational logic circuit further configured to determine that the UART select signal is (i) a select control signal generated by the first BMC when a status of the first BMC is available, (ii) a select control signal generated by the second BMC when the status of the first BMC is unavailable and a status of the second BMC is available.