meta-witherspoon: rainier: Enable concurrent console servers

The Rainier design makes use of both virtual UARTs provided by the
AST2600. Expose them both to the network via obmc-console.

Change-Id: Ied55479e6950d835d118056858bdb2b5249e30a0
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
diff --git a/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/client.2201.conf b/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/client.2201.conf
new file mode 100644
index 0000000..7264e82
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/client.2201.conf
@@ -0,0 +1 @@
+socket-id = guests
diff --git a/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/server.ttyVUART0.conf b/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/server.ttyVUART0.conf
new file mode 100644
index 0000000..638ae7e
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/server.ttyVUART0.conf
@@ -0,0 +1,5 @@
+lpc-address = 0x3f8
+sirq = 4
+local-tty = ttyS0
+local-tty-baud = 115200
+logsize = 256k
diff --git a/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/server.ttyVUART1.conf b/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/server.ttyVUART1.conf
new file mode 100644
index 0000000..e98587f
--- /dev/null
+++ b/meta-witherspoon/recipes-phosphor/console/obmc-console/rainier/server.ttyVUART1.conf
@@ -0,0 +1,3 @@
+lpc-address = 0x2f8
+sirq = 3
+socket-id = guests
diff --git a/meta-witherspoon/recipes-phosphor/console/obmc-console_%.bbappend b/meta-witherspoon/recipes-phosphor/console/obmc-console_%.bbappend
index b121be7..75ec2e0 100644
--- a/meta-witherspoon/recipes-phosphor/console/obmc-console_%.bbappend
+++ b/meta-witherspoon/recipes-phosphor/console/obmc-console_%.bbappend
@@ -2,3 +2,45 @@
 
 SRC_URI_remove = "file://${BPN}.conf"
 SRC_URI += "file://server.ttyVUART0.conf"
+
+install_concurrent_console_config() {
+        # Install configuration for the servers and clients. Keep commandline
+        # compatibility with previous configurations by defaulting to not
+        # specifying a socket-id for VUART0/2200
+        install -m 0755 -d ${D}${sysconfdir}/${BPN}
+
+        # Remove the default client configuration as we don't to define a
+        # socket-id for the 2200 console
+        rm -f ${D}${sysconfdir}/${BPN}/client.2200.conf
+
+        # However, now link to /dev/null as a way of not specifying a
+        # socket-id while having a configuration file present. We need to
+        # provide a configuration path to meet the requirements of the packaged
+        # unit file.
+        ln -sr ${D}/dev/null ${D}${sysconfdir}/${BPN}/client.2200.conf
+
+        # We need to populate socket-id for remaining consoles
+        install -m 0644 ${WORKDIR}/client.2201.conf ${D}${sysconfdir}/${BPN}/
+
+        # Install configuration for remaining servers - the base recipe
+        # installs the configuration for the first.
+        install -m 0644 ${WORKDIR}/server.ttyVUART1.conf ${D}${sysconfdir}/${BPN}/
+}
+
+SRC_URI_append_rainier = " file://client.2201.conf"
+SRC_URI_append_rainier = " file://server.ttyVUART1.conf"
+
+REGISTERED_SERVICES_${PN}_append_rainier = " obmc_console_guests:tcp:2201:"
+
+SYSTEMD_SERVICE_${PN}_append_rainier = " obmc-console-ssh@2200.service \
+		obmc-console-ssh@2201.service \
+                "
+SYSTEMD_SERVICE_${PN}_remove_rainier = "obmc-console-ssh.socket"
+
+FILES_${PN}_remove_rainier = "/lib/systemd/system/obmc-console-ssh@.service.d/use-socket.conf"
+
+EXTRA_OECONF_append_rainier = " --enable-concurrent-servers"
+
+do_install_append_rainier() {
+        install_concurrent_console_config
+}