summaryrefslogtreecommitdiffstats
path: root/meta-openpower/common/recipes-phosphor/host/hostboot-settings/hb_settings
diff options
context:
space:
mode:
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_settings110
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 000000000..d75d4b74d
--- /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
OpenPOWER on IntegriCloud