1 bc58decdSAnton D. Kachalov#!/bin/bash 2 7b587377SBrad Bishop# 3 7b587377SBrad Bishop# Copyright © 2017 IBM Corporation 4 7b587377SBrad Bishop# 5 7b587377SBrad Bishop# Licensed under the Apache License, Version 2.0 (the "License"); 6 7b587377SBrad Bishop# you may not use this file except in compliance with the License. 7 7b587377SBrad Bishop# You may obtain a copy of the License at 8 7b587377SBrad Bishop# 9 7b587377SBrad Bishop# http://www.apache.org/licenses/LICENSE-2.0 10 7b587377SBrad Bishop# 11 7b587377SBrad Bishop# Unless required by applicable law or agreed to in writing, software 12 7b587377SBrad Bishop# distributed under the License is distributed on an "AS IS" BASIS, 13 7b587377SBrad Bishop# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 7b587377SBrad Bishop# See the License for the specific language governing permissions and 15 7b587377SBrad Bishop# limitations under the License. 16 7b587377SBrad Bishop# 17 7b587377SBrad Bishop 18 7b587377SBrad Bishop# Check a max31785 firmware revision and set the MSL property 19 7b587377SBrad Bishop# on the specified inventory items. 20 7b587377SBrad Bishop 21 7b587377SBrad Bishopset -e 22 7b587377SBrad Bishop 23 *c4f67be6SPatrick Williamsfunction main() 24 7b587377SBrad Bishop{ 25 bc58decdSAnton D. Kachalov usage="Usage: $(basename "$0") -p PATH... -b BUS_NUMBER -r REVISION" 26 7b587377SBrad Bishop while getopts p:b:r:h key; do 27 7b587377SBrad Bishop case $key in 28 7b587377SBrad Bishop p) 29 7b587377SBrad Bishop paths=$OPTARG 30 7b587377SBrad Bishop ;; 31 7b587377SBrad Bishop b) 32 7b587377SBrad Bishop bus=$OPTARG 33 7b587377SBrad Bishop ;; 34 7b587377SBrad Bishop r) 35 7b587377SBrad Bishop revision=$OPTARG 36 7b587377SBrad Bishop ;; 37 7b587377SBrad Bishop h) 38 7b587377SBrad Bishop echo "$usage" >&2 39 7b587377SBrad Bishop exit 40 7b587377SBrad Bishop ;; 41 7b587377SBrad Bishop \?) 42 bc58decdSAnton D. Kachalov printf "\nUnrecognized option\n" 43 7b587377SBrad Bishop echo "$usage" >&2 44 7b587377SBrad Bishop exit 1 45 7b587377SBrad Bishop ;; 46 7b587377SBrad Bishop esac 47 7b587377SBrad Bishop done 48 7b587377SBrad Bishop 49 7b587377SBrad Bishop if [ -z "$paths" ] || [ -z "$bus" ] || [ -z "$revision" ]; then 50 7b587377SBrad Bishop echo "Missing option" >&2 51 7b587377SBrad Bishop echo "$usage" >&2 52 7b587377SBrad Bishop exit 1 53 7b587377SBrad Bishop fi 54 7b587377SBrad Bishop 55 7b587377SBrad Bishop local state="false" 56 7b587377SBrad Bishop local actual 57 7b587377SBrad Bishop local dbus 58 7b587377SBrad Bishop 59 7b587377SBrad Bishop dbus=$(mapper get-service /xyz/openbmc_project/inventory) 60 bc58decdSAnton D. Kachalov actual=$(i2cget -f -y "$bus" 0x52 0x9b w) 61 7b587377SBrad Bishop 62 7b587377SBrad Bishop if (( actual >= revision )); then 63 7b587377SBrad Bishop state="true" 64 7b587377SBrad Bishop fi 65 7b587377SBrad Bishop 66 7b587377SBrad Bishop for path in $paths; do 67 bc58decdSAnton D. Kachalov busctl call "$dbus" /xyz/openbmc_project/inventory \ 68 7b587377SBrad Bishop xyz.openbmc_project.Inventory.Manager Notify 'a{oa{sa{sv}}}' 1 \ 69 bc58decdSAnton D. Kachalov "$path" 1 \ 70 7b587377SBrad Bishop xyz.openbmc_project.Inventory.Decorator.MeetsMinimumShipLevel \ 71 bc58decdSAnton D. Kachalov 1 MeetsMinimumShipLevel b "$state" 72 7b587377SBrad Bishop done 73 7b587377SBrad Bishop} 74 7b587377SBrad Bishop 75 7b587377SBrad Bishopmain "$@" 76