diff options
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | msl/Makefile.am | 1 | ||||
-rw-r--r-- | msl/max31785-msl | 75 |
4 files changed, 78 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am index 1ac9033..359db2e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,4 +24,4 @@ libhwmon_la_SOURCES = \ env.cpp \ fan_speed.cpp -SUBDIRS = . test +SUBDIRS = . test msl diff --git a/configure.ac b/configure.ac index f08030e..540491e 100644 --- a/configure.ac +++ b/configure.ac @@ -58,5 +58,5 @@ AC_DEFINE_UNQUOTED([BUSNAME_PREFIX], ["$BUSNAME_PREFIX"], [The DBus busname pref AC_DEFINE_UNQUOTED([SENSOR_ROOT], ["$SENSOR_ROOT"], [The DBus sensors namespace root.]) # Create configured output -AC_CONFIG_FILES([Makefile test/Makefile]) +AC_CONFIG_FILES([Makefile test/Makefile msl/Makefile]) AC_OUTPUT diff --git a/msl/Makefile.am b/msl/Makefile.am new file mode 100644 index 0000000..fff55d6 --- /dev/null +++ b/msl/Makefile.am @@ -0,0 +1 @@ +dist_bin_SCRIPTS = max31785-msl diff --git a/msl/max31785-msl b/msl/max31785-msl new file mode 100644 index 0000000..b3673e6 --- /dev/null +++ b/msl/max31785-msl @@ -0,0 +1,75 @@ +#!/bin/sh +# +# Copyright © 2017 IBM Corporation +# +# 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. +# + +# Check a max31785 firmware revision and set the MSL property +# on the specified inventory items. + +set -e + +main() +{ + usage="Usage: $(basename $0) -p PATH... -b BUS_NUMBER -r REVISION" + while getopts p:b:r:h key; do + case $key in + p) + paths=$OPTARG + ;; + b) + bus=$OPTARG + ;; + r) + revision=$OPTARG + ;; + h) + echo "$usage" >&2 + exit + ;; + \?) + echo -e \\n"Unrecognized option" + echo "$usage" >&2 + exit 1 + ;; + esac + done + + if [ -z "$paths" ] || [ -z "$bus" ] || [ -z "$revision" ]; then + echo "Missing option" >&2 + echo "$usage" >&2 + exit 1 + fi + + local state="false" + local actual + local dbus + + dbus=$(mapper get-service /xyz/openbmc_project/inventory) + actual=$(i2cget -f -y $bus 0x52 0x9b w) + + if (( actual >= revision )); then + state="true" + fi + + for path in $paths; do + busctl call $dbus /xyz/openbmc_project/inventory \ + xyz.openbmc_project.Inventory.Manager Notify 'a{oa{sa{sv}}}' 1 \ + $path 1 \ + xyz.openbmc_project.Inventory.Decorator.MeetsMinimumShipLevel \ + 1 MeetsMinimumShipLevel b $state + done +} + +main "$@" |