From b6eaef491c2e3475ca42d41caae585d7eeda55ee Mon Sep 17 00:00:00 2001 From: Chau Ly Date: Wed, 18 Oct 2023 14:02:04 +0000 Subject: meta-ampere: console: refactor configuration Refactor console configuration for Mt.Jade and Mt.Mitchell to avoid duplication and make the configuration files simpler. Tested: 1. IPMI sol on Mt.Jade and Mt.Mitchell works 2. SOL SSH on Mt.Jade and Mt.Mitchell work for all console ports Change-Id: I68d1a3c6be530ca93f8adc1dd61906ba8b206dc5 Signed-off-by: Chau Ly --- .../console/obmc-console/ampere_uartmux_ctrl.sh | 50 ++++++++++++++++ .../console/obmc-console/obmc-console@.service | 10 ++++ .../console/obmc-console_%.bbappend | 27 +++++++++ .../platform/ampere-platform-init.bb | 4 -- .../ampere-platform-init/ampere_platform_init.sh | 5 -- .../ampere_uart_console_setup.sh | 57 ------------------ .../ampere-platform-init/ampere_uartmux_ctrl.sh | 69 ---------------------- .../mtjade_platform_gpios_init.sh | 3 - .../obmc-console/ampere_uart_console_setup.sh | 30 ++++++++++ .../console/obmc-console_%.bbappend | 15 ++--- .../hostlogger/phosphor-hostlogger/ttyS0.conf | 2 +- .../platform/ampere-platform-init.bb | 4 -- .../ampere-platform-init/ampere_platform_init.sh | 5 -- .../ampere_uart_console_setup.sh | 47 --------------- .../ampere-platform-init/ampere_uartmux_ctrl.sh | 44 -------------- .../obmc-console/ampere_uart_console_setup.sh | 40 +++++++++++++ .../console/obmc-console_%.bbappend | 15 ++--- .../hostlogger/phosphor-hostlogger/ttyS0.conf | 2 +- 18 files changed, 169 insertions(+), 260 deletions(-) create mode 100644 meta-ampere/meta-common/recipes-phosphor/console/obmc-console/ampere_uartmux_ctrl.sh create mode 100644 meta-ampere/meta-common/recipes-phosphor/console/obmc-console/obmc-console@.service create mode 100644 meta-ampere/meta-common/recipes-phosphor/console/obmc-console_%.bbappend delete mode 100644 meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh delete mode 100755 meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uartmux_ctrl.sh create mode 100644 meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/ampere_uart_console_setup.sh delete mode 100644 meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh delete mode 100644 meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_uartmux_ctrl.sh create mode 100644 meta-ampere/meta-mitchell/recipes-phosphor/console/obmc-console/ampere_uart_console_setup.sh diff --git a/meta-ampere/meta-common/recipes-phosphor/console/obmc-console/ampere_uartmux_ctrl.sh b/meta-ampere/meta-common/recipes-phosphor/console/obmc-console/ampere_uartmux_ctrl.sh new file mode 100644 index 0000000000..6976263aa5 --- /dev/null +++ b/meta-ampere/meta-common/recipes-phosphor/console/obmc-console/ampere_uartmux_ctrl.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# +# Ampere Computing LLC: UART MUX/DEMUX for CPU0 UART0,1,4 and CPU1 UART1 +# Usage: ampere_uartmux_ctrl.sh +# of 1 sets CPU To HDR_CONN +# of 2 sets BMC to CPU (eg dropbear ssh server on port 2200) +# +# This can be called to set uart mux manually + +# shellcheck disable=SC2046 + +if [ $# -lt 2 ]; then + exit 1 +fi + +case "$1" in + 1) GPIO_UARTx_MODE0="uart1-mode0" + GPIO_UARTx_MODE1="uart1-mode1" + ;; + 2) GPIO_UARTx_MODE0="uart2-mode0" + GPIO_UARTx_MODE1="uart2-mode1" + ;; + 3) GPIO_UARTx_MODE0="uart3-mode0" + GPIO_UARTx_MODE1="uart3-mode1" + ;; + 4) GPIO_UARTx_MODE0="uart4-mode0" + GPIO_UARTx_MODE1="uart4-mode1" + ;; + *) echo "Invalid UART port selection" + exit 1 + ;; +esac + +echo "Ampere UART MUX CTRL UART port $1 to mode $2" + +case "$2" in + # To HDR + 1) gpioset $(gpiofind "$GPIO_UARTx_MODE0")=1 + gpioset $(gpiofind "$GPIO_UARTx_MODE1")=0 + exit 0 + ;; + # To BMC + 2) gpioset $(gpiofind "$GPIO_UARTx_MODE0")=0 + gpioset $(gpiofind "$GPIO_UARTx_MODE1")=1 + exit 0 + ;; + *) echo "Invalid UART mode selection" + exit 1 + ;; +esac diff --git a/meta-ampere/meta-common/recipes-phosphor/console/obmc-console/obmc-console@.service b/meta-ampere/meta-common/recipes-phosphor/console/obmc-console/obmc-console@.service new file mode 100644 index 0000000000..64d443ff7d --- /dev/null +++ b/meta-ampere/meta-common/recipes-phosphor/console/obmc-console/obmc-console@.service @@ -0,0 +1,10 @@ +[Unit] +Description=%i Console Server +ConditionPathExists=/etc/obmc-console/server.%i.conf + +[Service] +# Instance ID is the VUART basename +ExecStartPre=/usr/sbin/ampere_uart_console_setup.sh %i +ExecStart=/usr/sbin/obmc-console-server --config /etc/obmc-console/server.%i.conf %i +SyslogIdentifier=%i-console-server +Restart=always diff --git a/meta-ampere/meta-common/recipes-phosphor/console/obmc-console_%.bbappend b/meta-ampere/meta-common/recipes-phosphor/console/obmc-console_%.bbappend new file mode 100644 index 0000000000..dd857f2fbe --- /dev/null +++ b/meta-ampere/meta-common/recipes-phosphor/console/obmc-console_%.bbappend @@ -0,0 +1,27 @@ +FILESEXTRAPATHS:append := "${THISDIR}/${PN}:" +RDEPENDS:${PN} += "bash" + +CONSOLE_CLIENT_SERVICE_FMT = "obmc-console-ssh@{0}.service" +CONSOLE_SERVER_CONF_FMT = "file://server.{0}.conf" +CONSOLE_CLIENT_CONF_FMT = "file://client.{0}.conf" + +SRC_URI += " \ + file://ampere_uartmux_ctrl.sh \ + file://obmc-console@.service \ + " + +SYSTEMD_SERVICE:${PN}:remove = "obmc-console-ssh.socket" + +FILES:${PN}:remove = "${systemd_system_unitdir}/obmc-console-ssh@.service.d/use-socket.conf" + +PACKAGECONFIG:append = " concurrent-servers" + +do_install:append() { + # Script to switch host's uart muxes by GPIOs + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/ampere_uartmux_ctrl.sh ${D}/${sbindir} + + # Overriding service to call ampere_uart_console_setup.sh at ExecStartPre + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/obmc-console@.service ${D}${systemd_system_unitdir} +} diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init.bb b/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init.bb index ad6dd1f6a7..ca1065add0 100644 --- a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init.bb +++ b/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init.bb @@ -14,9 +14,7 @@ RDEPENDS:${PN} += "bash" SRC_URI = " \ file://ampere_platform_init.sh \ - file://ampere_uart_console_setup.sh \ file://mtjade_platform_gpios_init.sh \ - file://ampere_uartmux_ctrl.sh \ file://ampere-platform-init.service \ " @@ -26,8 +24,6 @@ SYSTEMD_SERVICE:${PN} = "ampere-platform-init.service" do_install () { install -d ${D}${sbindir} install -m 0755 ${WORKDIR}/ampere_platform_init.sh ${D}${sbindir}/ - install -m 0755 ${WORKDIR}/ampere_uart_console_setup.sh ${D}${sbindir}/ - install -m 0755 ${WORKDIR}/ampere_uartmux_ctrl.sh ${D}/${sbindir}/ install -d ${D}${systemd_unitdir}/system/ install -m 0644 ${WORKDIR}/ampere-platform-init.service ${D}${systemd_unitdir}/system install -m 0755 ${WORKDIR}/mtjade_platform_gpios_init.sh ${D}${sbindir}/platform_gpios_init.sh diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_platform_init.sh b/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_platform_init.sh index 7e33776947..98f4ffc0b3 100644 --- a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_platform_init.sh +++ b/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_platform_init.sh @@ -3,7 +3,6 @@ # shellcheck disable=SC2046 # shellcheck source=meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/mtjade_platform_gpios_init.sh source /usr/sbin/platform_gpios_init.sh -source /usr/sbin/ampere_uart_console_setup.sh #pre platform init function. implemented in platform_gpios_init.sh pre-platform-init @@ -41,10 +40,6 @@ for gpioName in "${input_gpios_in_bmc_reboot[@]}"; do gpioget $(gpiofind "$gpioName") done -# ======================================================= -# Setting uart muxes to BMC as default -uart_console_setup - #post platform init function. implemented in platform_gpios_init.sh post-platform-init diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh b/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh deleted file mode 100644 index fe8d20318a..0000000000 --- a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -e -# -# Copyright (c) 2020 Ampere Computing LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# shellcheck disable=SC2039 -# shellcheck disable=SC2112 -# shellcheck disable=SC3010 -# shellcheck disable=SC3030 -# shellcheck disable=SC3054 - -export obmc_console_tty=("ttyS0" "ttyS1" "ttyS2" "ttyS3") - -function get_uart_port() -{ - tty=$1 - case "${tty}" in - "ttyS0") uart=1 - ;; - "ttyS1") uart=2 - ;; - "ttyS2") uart=3 - ;; - "ttyS3") uart=4 - ;; - *) echo "Invalid tty passed to $0. Exiting!" - exit 1; - ;; - esac - echo $uart -} - -function uart_console_setup() -{ - # Default the host routing through the mux to use the BMC (2) - # This allows the SoL console in webui, and the ssh port 2200, to work - # upon startup. If UART transcievers are installed on the header and required, - # this value should be set to 1 - for tty in "${obmc_console_tty[@]}"; do - uart=$(get_uart_port "$tty") - if [ "${uart}" -ne 0 ] - then - /usr/sbin/ampere_uartmux_ctrl.sh "${uart}" 2 - fi - done -} diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uartmux_ctrl.sh b/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uartmux_ctrl.sh deleted file mode 100755 index c659e56991..0000000000 --- a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uartmux_ctrl.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2021 Ampere Computing LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Ampere Computing LLC: UART MUX/DEMUX for CPU0 UART0,1,4 and CPU1 UART1 -# Usage: ampere_uartmux_ctrl.sh -# of 1 sets CPU To HDR_CONN -# of 2 sets BMC to CPU (eg dropbear ssh server on port 2200) -# shellcheck disable=SC2046 - -if [ $# -lt 2 ]; then - exit 1 -fi - -case "$1" in - 1) GPIO_UARTx_MODE0="uart1-mode0" - GPIO_UARTx_MODE1="uart1-mode1" - ;; - 2) GPIO_UARTx_MODE0="uart2-mode0" - GPIO_UARTx_MODE1="uart2-mode1" - ;; - 3) GPIO_UARTx_MODE0="uart3-mode0" - GPIO_UARTx_MODE1="uart3-mode1" - ;; - 4) GPIO_UARTx_MODE0="uart4-mode0" - GPIO_UARTx_MODE1="uart4-mode1" - ;; - *) echo "Invalid UART port selection" - exit 1 - ;; -esac - -echo "Ampere UART MUX CTRL UART port $1 to mode $2" - -case "$2" in - 1) - if gpiofind "$GPIO_UARTx_MODE0"; then - gpioset $(gpiofind "$GPIO_UARTx_MODE0")=1 - fi - if gpiofind "$GPIO_UARTx_MODE1"; then - gpioset $(gpiofind "$GPIO_UARTx_MODE1")=0 - fi - exit 0 - ;; - 2) - if gpiofind "$GPIO_UARTx_MODE0"; then - gpioset $(gpiofind "$GPIO_UARTx_MODE0")=0 - fi - if gpiofind "$GPIO_UARTx_MODE1"; then - gpioset $(gpiofind "$GPIO_UARTx_MODE1")=1 - fi - exit 0 - ;; - *) echo "Invalid UART mode selection" - exit 1 - ;; -esac diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/mtjade_platform_gpios_init.sh b/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/mtjade_platform_gpios_init.sh index d7bb3d3c07..76e460086c 100644 --- a/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/mtjade_platform_gpios_init.sh +++ b/meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/mtjade_platform_gpios_init.sh @@ -1,8 +1,5 @@ #!/bin/bash -# shellcheck source=meta-ampere/meta-jade/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh -source /usr/sbin/ampere_uart_console_setup.sh - function pre-platform-init() { echo "Do pre platform init" } diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/ampere_uart_console_setup.sh b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/ampere_uart_console_setup.sh new file mode 100644 index 0000000000..5a48d49ea5 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console/ampere_uart_console_setup.sh @@ -0,0 +1,30 @@ +#!/bin/sh -e +# +# Platform can add tty ports for console server to OBMC_CONSOLE_TTYS in their +# bbappend. The target tty devices exposed by kernel will then start their +# corresponding obmc-console-server instance and the +# obmc-console@.service will execute this script to direct the uart +# port of the to BMC + +tty="$1" +uart=0 + +case "${tty}" in + "ttyS0") uart=1 + ;; + "ttyS1") uart=2 + ;; + "ttyS2") uart=3 + ;; + "ttyS3") uart=4 + ;; + *) echo "Invalid tty passed to $0. Exiting!" + exit 0; + ;; +esac + +# Default the host routing through the mux to use the BMC (2) +# This allows the SoL console in webui, and the ssh port 2200, to work +# upon startup. If UART transcievers are installed on the header and required, +# this value should be set to 1 +/usr/sbin/ampere_uartmux_ctrl.sh ${uart} 2 diff --git a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console_%.bbappend b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console_%.bbappend index 26a356dc81..bd75de6292 100644 --- a/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console_%.bbappend +++ b/meta-ampere/meta-jade/recipes-phosphor/console/obmc-console_%.bbappend @@ -5,25 +5,20 @@ RDEPENDS:${PN} += "bash" OBMC_CONSOLE_TTYS = "ttyS0 ttyS1 ttyS2 ttyS3" CONSOLE_CLIENT = "2200 2201 2202 2203" -CONSOLE_SERVER_CONF_FMT = "file://server.{0}.conf" -CONSOLE_CLIENT_CONF_FMT = "file://client.{0}.conf" -CONSOLE_CLIENT_SERVICE_FMT = "obmc-console-ssh@{0}.service" - SRC_URI += " \ ${@compose_list(d, 'CONSOLE_SERVER_CONF_FMT', 'OBMC_CONSOLE_TTYS')} \ ${@compose_list(d, 'CONSOLE_CLIENT_CONF_FMT', 'CONSOLE_CLIENT')} \ + file://ampere_uart_console_setup.sh \ " SYSTEMD_SERVICE:${PN}:append = " \ ${@compose_list(d, 'CONSOLE_CLIENT_SERVICE_FMT', 'CONSOLE_CLIENT')} \ " -SYSTEMD_SERVICE:${PN}:remove = "obmc-console-ssh.socket" - -FILES:${PN}:remove = "${systemd_system_unitdir}/obmc-console-ssh@.service.d/use-socket.conf" - -PACKAGECONFIG:append = " concurrent-servers" do_install:append() { + # Script to set host's uart muxes to BMC + install -m 0755 ${WORKDIR}/ampere_uart_console_setup.sh ${D}${sbindir} + # Install the console client configurations - install -m 0644 ${WORKDIR}/client.*.conf ${D}${sysconfdir}/${BPN}/ + install -m 0644 ${WORKDIR}/client.*.conf ${D}${sysconfdir}/${BPN} } diff --git a/meta-ampere/meta-jade/recipes-phosphor/hostlogger/phosphor-hostlogger/ttyS0.conf b/meta-ampere/meta-jade/recipes-phosphor/hostlogger/phosphor-hostlogger/ttyS0.conf index d3a1eb604b..e2d5396efb 100644 --- a/meta-ampere/meta-jade/recipes-phosphor/hostlogger/phosphor-hostlogger/ttyS0.conf +++ b/meta-ampere/meta-jade/recipes-phosphor/hostlogger/phosphor-hostlogger/ttyS0.conf @@ -1,3 +1,3 @@ -SOCKET_ID=default +#SOCKET_ID defaults to "default" MODE=stream STREAM_DST=/run/rsyslog/console/cpu diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init.bb b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init.bb index 362b4c8e59..3a1eb2c6ef 100644 --- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init.bb +++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init.bb @@ -19,8 +19,6 @@ SRC_URI = " \ file://ampere_bmc_heartbeat.sh \ file://mtmitchell_platform_gpios_init.sh \ file://gpio-lib.sh \ - file://ampere_uart_console_setup.sh \ - file://ampere_uartmux_ctrl.sh \ " SYSTEMD_PACKAGES = "${PN}" SYSTEMD_SERVICE:${PN} = "ampere-platform-init.service ampere-bmc-heartbeat.service" @@ -31,8 +29,6 @@ do_install () { install -m 0755 ${WORKDIR}/ampere_platform_init.sh ${D}${sbindir}/ install -m 0755 ${WORKDIR}/ampere_bmc_heartbeat.sh ${D}${sbindir}/ install -m 0755 ${WORKDIR}/mtmitchell_platform_gpios_init.sh ${D}${sbindir}/platform_gpios_init.sh - install -m 0755 ${WORKDIR}/ampere_uart_console_setup.sh ${D}${sbindir}/ - install -m 0755 ${WORKDIR}/ampere_uartmux_ctrl.sh ${D}/${sbindir}/ install -d ${D}${systemd_unitdir}/system/ install -m 0644 ${WORKDIR}/ampere-platform-init.service ${D}${systemd_unitdir}/system } diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_platform_init.sh b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_platform_init.sh index 4d737a75a1..a5ec8e7608 100644 --- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_platform_init.sh +++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_platform_init.sh @@ -3,7 +3,6 @@ # shellcheck disable=SC2046 # shellcheck source=meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/mtmitchell_platform_gpios_init.sh source /usr/sbin/platform_gpios_init.sh -source /usr/sbin/ampere_uart_console_setup.sh #pre platform init function. implemented in platform_gpios_init.sh pre-platform-init @@ -41,10 +40,6 @@ for gpioName in "${input_gpios_in_bmc_reboot[@]}"; do gpioget $(gpiofind "$gpioName") done -# ======================================================= -# Setting uart muxes to BMC as default -uart_console_setup - #post platform init function. implemented in platform_gpios_init.sh post-platform-init diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh deleted file mode 100644 index 10a1981137..0000000000 --- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_uart_console_setup.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -e - -# shellcheck disable=SC2039 -# shellcheck disable=SC2112 -# shellcheck disable=SC3010 -# shellcheck disable=SC3030 -# shellcheck disable=SC3054 - -export obmc_console_tty=("ttyS0" "ttyS1" "ttyS2" "ttyS3" "ttyS7" "ttyS8") - -function get_uart_port() -{ - tty=$1 - case "${tty}" in - "ttyS0") uart=1 - ;; - "ttyS1") uart=2 - ;; - "ttyS2") uart=3 - ;; - "ttyS3") uart=4 - ;; - "ttyS7") uart=0 - ;; - "ttyS8") uart=0 - ;; - *) echo "Invalid tty passed to $0. Exiting!" - exit 1; - ;; - esac - echo $uart -} - -function uart_console_setup() -{ - # Default the host routing through the mux to use the BMC (2) - # This allows the SoL console in webui, and the ssh port 2200, to work - # upon startup. If UART transcievers are installed on the header and required, - # this value should be set to 1 - for tty in "${obmc_console_tty[@]}"; do - uart=$(get_uart_port "$tty") - if [ "${uart}" -ne 0 ] - then - /usr/sbin/ampere_uartmux_ctrl.sh "${uart}" 2 - fi - done -} diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_uartmux_ctrl.sh b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_uartmux_ctrl.sh deleted file mode 100644 index 3148b61cc8..0000000000 --- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere_uartmux_ctrl.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# -# shellcheck disable=SC2046 -# This can be called to set uart mux manually - -if [ $# -lt 2 ]; then - exit 1 -fi - -case "$1" in - 1) GPIO_UARTx_MODE0="uart1-mode0" - GPIO_UARTx_MODE1="uart1-mode1" - ;; - 2) GPIO_UARTx_MODE0="uart2-mode0" - GPIO_UARTx_MODE1="uart2-mode1" - ;; - 3) GPIO_UARTx_MODE0="uart3-mode0" - GPIO_UARTx_MODE1="uart3-mode1" - ;; - 4) GPIO_UARTx_MODE0="uart4-mode0" - GPIO_UARTx_MODE1="uart4-mode1" - ;; - *) echo "Invalid UART port selection" - exit 1 - ;; -esac - -echo "Ampere UART MUX CTRL UART port $1 to mode $2" - -case "$2" in - # To HDR - 1) gpioset $(gpiofind "$GPIO_UARTx_MODE0")=1 - gpioset $(gpiofind "$GPIO_UARTx_MODE1")=0 - exit 0 - ;; - # To BMC - 2) gpioset $(gpiofind "$GPIO_UARTx_MODE0")=0 - gpioset $(gpiofind "$GPIO_UARTx_MODE1")=1 - exit 0 - ;; - *) echo "Invalid UART mode selection" - exit 1 - ;; -esac diff --git a/meta-ampere/meta-mitchell/recipes-phosphor/console/obmc-console/ampere_uart_console_setup.sh b/meta-ampere/meta-mitchell/recipes-phosphor/console/obmc-console/ampere_uart_console_setup.sh new file mode 100644 index 0000000000..fa8d5e9fc2 --- /dev/null +++ b/meta-ampere/meta-mitchell/recipes-phosphor/console/obmc-console/ampere_uart_console_setup.sh @@ -0,0 +1,40 @@ +#!/bin/sh -e +# +# Platform can add tty ports for console server to OBMC_CONSOLE_TTYS in their +# bbappend. The target tty devices exposed by kernel will then start their +# corresponding obmc-console-server instance and the +# obmc-console@.service will execute this script to direct the uart +# port of the to BMC + +tty="$1" +uart=0 + +case "${tty}" in + "ttyS0") uart=1 + ;; + "ttyS1") uart=2 + ;; + "ttyS2") uart=3 + ;; + "ttyS3") uart=4 + ;; + "ttyS7") + # Socket 1 UART 1 connects directly to BMC UART 8 + echo "Ampere UART MUX CTRL UART port 8 to mode 2" + exit 0 + ;; + "ttyS8") + # Socket 1 UART 4 connects directly to BMC UART 9 + echo "Ampere UART MUX CTRL UART port 9 to mode 2" + exit 0 + ;; + *) echo "Invalid tty passed to $0. Exiting!" + exit 1; + ;; +esac + +# Default the host routing through the mux to use the BMC (2) +# This allows the SoL console in webui, and the ssh port 2200, to work +# upon startup. If UART transcievers are installed on the header and required, +# this value should be set to 1 +/usr/sbin/ampere_uartmux_ctrl.sh ${uart} 2 diff --git a/meta-ampere/meta-mitchell/recipes-phosphor/console/obmc-console_%.bbappend b/meta-ampere/meta-mitchell/recipes-phosphor/console/obmc-console_%.bbappend index 605c9e1a0b..c45db95042 100644 --- a/meta-ampere/meta-mitchell/recipes-phosphor/console/obmc-console_%.bbappend +++ b/meta-ampere/meta-mitchell/recipes-phosphor/console/obmc-console_%.bbappend @@ -5,25 +5,20 @@ RDEPENDS:${PN} += "bash" OBMC_CONSOLE_TTYS = "ttyS0 ttyS1 ttyS2 ttyS3 ttyS7 ttyS8" CONSOLE_CLIENT = "2200 2201 2202 2203 2204 2205" -CONSOLE_SERVER_CONF_FMT = "file://server.{0}.conf" -CONSOLE_CLIENT_CONF_FMT = "file://client.{0}.conf" -CONSOLE_CLIENT_SERVICE_FMT = "obmc-console-ssh@{0}.service" - SRC_URI += " \ ${@compose_list(d, 'CONSOLE_SERVER_CONF_FMT', 'OBMC_CONSOLE_TTYS')} \ ${@compose_list(d, 'CONSOLE_CLIENT_CONF_FMT', 'CONSOLE_CLIENT')} \ + file://ampere_uart_console_setup.sh \ " SYSTEMD_SERVICE:${PN}:append = " \ ${@compose_list(d, 'CONSOLE_CLIENT_SERVICE_FMT', 'CONSOLE_CLIENT')} \ " -SYSTEMD_SERVICE:${PN}:remove = "obmc-console-ssh.socket" - -FILES:${PN}:remove = "${systemd_system_unitdir}/obmc-console-ssh@.service.d/use-socket.conf" - -PACKAGECONFIG:append = " concurrent-servers" do_install:append() { + # Script to set host's uart muxes to BMC + install -m 0755 ${WORKDIR}/ampere_uart_console_setup.sh ${D}${sbindir} + # Install the console client configurations - install -m 0644 ${WORKDIR}/client.*.conf ${D}${sysconfdir}/${BPN}/ + install -m 0644 ${WORKDIR}/client.*.conf ${D}${sysconfdir}/${BPN} } diff --git a/meta-ampere/meta-mitchell/recipes-phosphor/hostlogger/phosphor-hostlogger/ttyS0.conf b/meta-ampere/meta-mitchell/recipes-phosphor/hostlogger/phosphor-hostlogger/ttyS0.conf index d3a1eb604b..e2d5396efb 100644 --- a/meta-ampere/meta-mitchell/recipes-phosphor/hostlogger/phosphor-hostlogger/ttyS0.conf +++ b/meta-ampere/meta-mitchell/recipes-phosphor/hostlogger/phosphor-hostlogger/ttyS0.conf @@ -1,3 +1,3 @@ -SOCKET_ID=default +#SOCKET_ID defaults to "default" MODE=stream STREAM_DST=/run/rsyslog/console/cpu -- cgit v1.2.3