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 --- .../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 +- 8 files changed, 36 insertions(+), 149 deletions(-) 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 (limited to 'meta-ampere/meta-jade') 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 -- cgit v1.2.3