Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | string='' |
| 4 | pmbus_read() { |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 5 | data=$(i2cget -f -y "$1" "$2" "$3" i "$4") |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 6 | |
| 7 | if [[ -z "$data" ]]; then |
| 8 | echo "i2c$1 device $2 command $3 error" >&2 |
| 9 | exit 1 |
| 10 | fi |
| 11 | |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 12 | arry=$(echo "${data}" | sed -e "s/$4\: //" | sed -e "s/\0x00//g" | sed -e "s/\0xff//g" | sed -e "s/\0x7f//g" | sed -e "s/\0x0f//g" | sed -e "s/\0x14//g") |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 13 | |
| 14 | string='' |
| 15 | for d in ${arry} |
| 16 | do |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 17 | hex=${d/0x} |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 18 | string+=$(echo -e "\x${hex}"); |
| 19 | done |
| 20 | } |
| 21 | |
| 22 | update_inventory() { |
| 23 | INVENTORY_SERVICE='xyz.openbmc_project.Inventory.Manager' |
| 24 | INVENTORY_OBJECT='/xyz/openbmc_project/inventory' |
| 25 | INVENTORY_PATH='xyz.openbmc_project.Inventory.Manager' |
| 26 | OBJECT_PATH="/system/chassis/motherboard/powersupply$1" |
| 27 | busctl call \ |
| 28 | ${INVENTORY_SERVICE} \ |
| 29 | ${INVENTORY_OBJECT} \ |
| 30 | ${INVENTORY_PATH} \ |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 31 | Notify "a{oa{sa{sv}}}" 1 \ |
| 32 | "${OBJECT_PATH}" 1 "$2" "$3" \ |
| 33 | "$4" "$5" "$6" |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 34 | } |
| 35 | |
| 36 | if [ $# -eq 0 ]; then |
| 37 | echo 'No PSU device is given' >&2 |
| 38 | exit 1 |
| 39 | fi |
| 40 | |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 41 | IFS=" " read -ra arr <<< "${1//- /}" |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 42 | |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 43 | pmbus_read "${arr[1]}" "${arr[2]}" 0x99 11 |
| 44 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Decorator.Asset" 1 "Manufacturer" "s" "$string" |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 45 | |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 46 | pmbus_read "${arr[1]}" "${arr[2]}" 0x9a 11 |
| 47 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Decorator.Asset" 1 "Model" "s" "$string" |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 48 | |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 49 | pmbus_read "${arr[1]}" "${arr[2]}" 0xad 21 |
| 50 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Decorator.Asset" 1 "PartNumber" "s" "$string" |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 51 | |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 52 | pmbus_read "${arr[1]}" "${arr[2]}" 0x9e 18 |
| 53 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Decorator.Asset" 1 "SerialNumber" "s" "$string" |
Tim Lee | f7fc57b | 2020-06-18 09:28:26 +0800 | [diff] [blame] | 54 | |
Patrick Williams | 8c22623 | 2023-04-15 20:05:21 -0500 | [diff] [blame] | 55 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Decorator.Cacheable" 1 "Cached" "b" "true" |
| 56 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Decorator.Replaceable" 1 "FieldReplaceable" "b" "true" |
| 57 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Item" 1 "Present" "b" "true" |
| 58 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Item" 1 "PrettyName" "s" "powersupply${arr[0]}" |
| 59 | update_inventory "${arr[0]}" "xyz.openbmc_project.Inventory.Item.PowerSupply" 0 |