diff options
Diffstat (limited to 'meta-openpower/common/recipes-phosphor/host/hostboot-settings/hb_settings')
-rw-r--r-- | meta-openpower/common/recipes-phosphor/host/hostboot-settings/hb_settings | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/meta-openpower/common/recipes-phosphor/host/hostboot-settings/hb_settings b/meta-openpower/common/recipes-phosphor/host/hostboot-settings/hb_settings new file mode 100644 index 0000000000..d75d4b74d1 --- /dev/null +++ b/meta-openpower/common/recipes-phosphor/host/hostboot-settings/hb_settings @@ -0,0 +1,110 @@ +#!/bin/sh +# Copyright 2018 IBM Corp +# SPDX-License-Identifier: Apache-2.0 +# Authored May 2018, Joel Stanley <joel@jms.id.au> +# +# This script sets the SIO scratch registers 0x2D in order to configure +# hostboot. It supports boot flags v1 as defined in hostboot source: +# src/usr/initservice/bootconfig/bootconfig_ast2400.C +# src/usr/console/ast2400.C +# +# BOOT_FLAGS_VERSION_REG = 0x28, +# Serial config reg: 0x2d +# Serial config mask: 0xc0 +# +# NONE = 0x00, // No output selected +# SELECT_SUART = 0x40, // SIO Uart +# SELECT_VUART = 0x80, // SOL virtual uart +# RESERVED = 0xc0, // Reserved + + +SYSFS_SIO=/sys/devices/platform/ahb/ahb:apb/1e789000.lpc/1e789080.lpc-host/1e789080.lpc-host:regs +SYSFS_SIO28=$SYSFS_SIO/sio_28 +SYSFS_SIO2D=$SYSFS_SIO/sio_2d + +FLAGS_VERSION1=$((0x42)) + +usage() +{ + echo "usage: hb_settings [[-u|--uart vuart|suart|none] | [-s|--show] | [-h]]" +} + +show_regs() +{ + SIO28=$(cat $SYSFS_SIO28) + SIO2D=$(cat $SYSFS_SIO2D) + + case $SIO28 in + $FLAGS_VERSION1) + echo "Boot flags version 1" + ;; + * ) + echo "Unknown boot flags version" + ;; + esac + + case $(($SIO2D >> 6)) in + 0) + echo "Hostboot serial output disabled" + ;; + 1) + echo "Hostboot serial output on SUART" + ;; + 2) + echo "Hostboot serial output on VUART" + ;; + 3) + echo "Reserved value" + ;; + * ) + echo "Invalid uart value" + ;; + esac +} + +set_regs() +{ + case $uart in + suart) + echo "Hostboot serial output on SUART" + VAL=0x40 + ;; + vuart) + echo "Hostboot serial output on VUART" + VAL=0x80 + ;; + none) + echo "Hostboot serial output disabled" + VAL=0x00 + ;; + * ) + echo "Invalid uart value" + usage + exit 1 + esac + + echo $FLAGS_VERSION1 > $SYSFS_SIO28 + echo $VAL > $SYSFS_SIO2D +} + +while [ "$1" != "" ]; do + case $1 in + -u | --uart) shift + uart=$1 + set_regs + exit + ;; + -s | --show ) show_regs + exit + ;; + -h | --help ) usage + exit + ;; + * ) usage + exit 1 + esac + shift +done + +usage +exit 0 |