meta-yadro: vegman: setup obmc-console

Add obmc-console configuration for Yadro VEGMAN machines

Signed-off-by: Andrei Kartashev <a.kartashev@yadro.com>
Change-Id: I392a6621f1588833d3aaf6187bc277ea661d416f
diff --git a/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/obmc-console.conf b/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/obmc-console.conf
new file mode 100644
index 0000000..8491f53
--- /dev/null
+++ b/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/obmc-console.conf
@@ -0,0 +1,3 @@
+baud = 115200
+local-tty = ttyS3
+local-tty-baud = 115200
diff --git a/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/obmc-console@.service b/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/obmc-console@.service
new file mode 100644
index 0000000..209d321
--- /dev/null
+++ b/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/obmc-console@.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Phosphor Console Muxer listening on device /dev/%I
+BindsTo=dev-%i.device
+After=dev-%i.device
+
+[Service]
+ExecStartPre=/usr/sbin/uart-remapping.sh init
+ExecStart=obmc-console-server --config {sysconfdir}/obmc-console.conf %i
+ExecStopPost=/usr/sbin/uart-remapping.sh reset
+SyslogIdentifier=obmc-console-server
+Restart=always
+
+[Install]
+WantedBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/uart-remapping.sh b/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/uart-remapping.sh
new file mode 100644
index 0000000..28fad30
--- /dev/null
+++ b/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console/uart-remapping.sh
@@ -0,0 +1,33 @@
+#!/bin/bash -eu
+
+function usage()
+{
+    echo "Usage: $(basename "$0") init|reset"
+}
+
+if [ "$#" -ne "1" ] ; then
+    usage
+    exit 1;
+fi
+
+cmd="${1}"
+UART_ROUTING_PATH="/sys/bus/platform/drivers/aspeed-uart-routing/1e78909c.uart-routing"
+
+case "${cmd}" in
+    init)
+        echo -n "uart3" > ${UART_ROUTING_PATH}/uart1
+        echo -n "uart1" > ${UART_ROUTING_PATH}/uart3
+        echo -n "io1"   > ${UART_ROUTING_PATH}/uart4
+        echo -n "uart4" > ${UART_ROUTING_PATH}/io1
+    ;;
+    reset)
+        echo -n "io1"   > ${UART_ROUTING_PATH}/uart1
+        echo -n "io3"   > ${UART_ROUTING_PATH}/uart3
+        echo -n "io4"   > ${UART_ROUTING_PATH}/uart4
+        echo -n "uart1" > ${UART_ROUTING_PATH}/io1
+    ;;
+    *)
+        usage
+        exit 1;
+    ;;
+esac
diff --git a/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console_%.bbappend b/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console_%.bbappend
new file mode 100644
index 0000000..22161aa
--- /dev/null
+++ b/meta-yadro/meta-vegman/recipes-phosphor/console/obmc-console_%.bbappend
@@ -0,0 +1,19 @@
+FILESEXTRAPATHS:append := ":${THISDIR}/${PN}"
+RDEPENDS:${PN} += "bash"
+
+OBMC_CONSOLE_HOST_TTY = "ttyS2"
+SRC_URI += " \
+        file://obmc-console@.service \
+        file://uart-remapping.sh \
+"
+inherit obmc-phosphor-systemd
+
+SYSTEMD_SERVICE:${PN} += " \
+        ${PN}@${OBMC_CONSOLE_HOST_TTY}.service \
+"
+
+do_install:append() {
+        rm -rf ${D}${nonarch_base_libdir}/udev/rules.d/80-obmc-console-uart.rules
+        install -m 0644 ${WORKDIR}/${PN}@.service -D -t ${D}${systemd_system_unitdir}
+        install -m 0755 ${WORKDIR}/uart-remapping.sh -D -t ${D}${sbindir}
+}