diff options
25 files changed, 97 insertions, 173 deletions
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling.bb b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling.bb index 2889517c43..16fde56247 100644 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling.bb +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling.bb @@ -9,38 +9,16 @@ DEPENDS += "virtual/obmc-gpio-monitor" RDEPENDS:${PN} += "virtual/obmc-gpio-monitor" RDEPENDS:${PN} += "bash" -SRC_URI += " \ - file://toggle_fault_led.sh \ - file://ampere_psu_reset_hotswap.sh \ - file://toggle_identify_led.sh \ - file://ampere_scp_failover.sh \ - " - AMPERE_MONITOR_INSTANCES = " \ - reboot_ack shutdown_ack id_button S0_scp_auth_failure \ - S0_overtemp S0_hightemp_start S0_hightemp_stop \ - S1_overtemp S1_hightemp_start S1_hightemp_stop \ - S0_fault_alert_start S0_fault_alert_stop \ - S1_fault_alert_start S1_fault_alert_stop \ - PSU1_VIN_GOOD PSU2_VIN_GOOD \ + S0_hightemp_start S0_hightemp_stop \ + S1_hightemp_start S1_hightemp_stop \ " SYSTEMD_ENVIRONMENT_FILE:${PN} +=" \ - obmc/gpio/reboot_ack \ - obmc/gpio/shutdown_ack \ - obmc/gpio/S0_scp_auth_failure \ - obmc/gpio/S0_overtemp \ obmc/gpio/S0_hightemp_start \ obmc/gpio/S0_hightemp_stop \ - obmc/gpio/S1_overtemp \ obmc/gpio/S1_hightemp_start \ obmc/gpio/S1_hightemp_stop \ - obmc/gpio/S0_fault_alert_start \ - obmc/gpio/S0_fault_alert_stop \ - obmc/gpio/S1_fault_alert_start \ - obmc/gpio/S1_fault_alert_stop \ - obmc/gpio/PSU1_VIN_GOOD \ - obmc/gpio/PSU2_VIN_GOOD \ " TMPL = "phosphor-gpio-monitor@.service" @@ -49,21 +27,8 @@ TGT = "multi-user.target" FMT = "../${TMPL}:${TGT}.requires/${INSTFMT}" SYSTEMD_SERVICE:${PN} += " \ - ampere-host-shutdown-ack@.service \ - ampere_overtemp@.service \ ampere_hightemp_start@.service \ ampere_hightemp_stop@.service \ - ampere_fault_led_start@.service \ - ampere_fault_led_stop@.service \ - psu_hotswap_reset@.service \ - ampere_scp_failover.service \ " SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT', 'AMPERE_MONITOR_INSTANCES')}" -do_install() { - install -d ${D}${sbindir} - install -m 0755 ${WORKDIR}/toggle_fault_led.sh ${D}${sbindir}/ - install -m 0755 ${WORKDIR}/toggle_identify_led.sh ${D}${sbindir}/ - install -m 0755 ${WORKDIR}/ampere_psu_reset_hotswap.sh ${D}${sbindir}/ - install -m 0755 ${WORKDIR}/ampere_scp_failover.sh ${D}${sbindir}/ -} diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_fault_led_start@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_fault_led_start@.service deleted file mode 100644 index 18ee1bee52..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_fault_led_start@.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Ampere Computing LLC fault event condition service -Wants=mapper-wait@-xyz-openbmc_project-led-groups.service -After=mapper-wait@-xyz-openbmc_project-led-groups.service -StartLimitIntervalSec=0 - -[Service] -Type=oneshot -ExecStart=/usr/bin/env toggle_fault_led.sh %i on -SyslogIdentifier=fault-led diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_fault_led_stop@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_fault_led_stop@.service deleted file mode 100644 index 83f442cef4..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_fault_led_stop@.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Ampere Computing LLC fault event condition service -Wants=mapper-wait@-xyz-openbmc_project-led-groups.service -After=mapper-wait@-xyz-openbmc_project-led-groups.service -StartLimitIntervalSec=0 - -[Service] -Type=oneshot -ExecStart=/usr/bin/env toggle_fault_led.sh %i off -SyslogIdentifier=fault-led diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_overtemp@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_overtemp@.service deleted file mode 100644 index 587cba195d..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_overtemp@.service +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -Description=Ampere Computing LLC Overtemp event - -[Service] -Restart=no -ExecStart=/usr/bin/env obmcutil chassisoff -ExecStartPost=/usr/bin/env ampere_add_redfishevent.sh OpenBMC.0.1.CPUThermalTrip.Critical %i diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/PSU1_VIN_GOOD b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/PSU1_VIN_GOOD deleted file mode 100644 index cf13085b1d..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/PSU1_VIN_GOOD +++ /dev/null @@ -1,4 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=60 -POLARITY=0 -TARGET=psu_hotswap_reset@0.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/PSU2_VIN_GOOD b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/PSU2_VIN_GOOD deleted file mode 100644 index 7588c2595c..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/PSU2_VIN_GOOD +++ /dev/null @@ -1,4 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=61 -POLARITY=0 -TARGET=psu_hotswap_reset@1.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_fault_alert_start b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_fault_alert_start deleted file mode 100644 index c13da449c7..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_fault_alert_start +++ /dev/null @@ -1,5 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=73 -POLARITY=1 -TARGET=ampere_fault_led_start@0.service -EXTRA_ARGS=--continue diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_fault_alert_stop b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_fault_alert_stop deleted file mode 100644 index 7233f881a8..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_fault_alert_stop +++ /dev/null @@ -1,5 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=73 -POLARITY=0 -TARGET=ampere_fault_led_stop@0.service -EXTRA_ARGS=--continue diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_overtemp b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_overtemp deleted file mode 100644 index e39e196805..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_overtemp +++ /dev/null @@ -1,4 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=51 -POLARITY=1 -TARGET=ampere_overtemp@0.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_scp_auth_failure b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_scp_auth_failure deleted file mode 100644 index e8e975f9f0..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S0_scp_auth_failure +++ /dev/null @@ -1,4 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=74 -POLARITY=1 -TARGET=ampere_scp_failover.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_fault_alert_start b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_fault_alert_start deleted file mode 100644 index 6fa47857bf..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_fault_alert_start +++ /dev/null @@ -1,5 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=201 -POLARITY=1 -TARGET=ampere_fault_led_start@1.service -EXTRA_ARGS=--continue diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_fault_alert_stop b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_fault_alert_stop deleted file mode 100644 index 36b29ec462..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_fault_alert_stop +++ /dev/null @@ -1,5 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=201 -POLARITY=0 -TARGET=ampere_fault_led_stop@1.service -EXTRA_ARGS=--continue diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_overtemp b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_overtemp deleted file mode 100644 index c7bb8c1bc4..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/S1_overtemp +++ /dev/null @@ -1,4 +0,0 @@ -DEVPATH=/dev/input/by-path/platform-gpio-keys-event -KEY=206 -POLARITY=1 -TARGET=ampere_overtemp@1.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/reboot_ack b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/reboot_ack deleted file mode 100644 index a8ad98ee75..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/reboot_ack +++ /dev/null @@ -1,4 +0,0 @@ -DEVPATH=/dev/input/event0 -KEY=75 -POLARITY=1 -TARGET=obmc-host-force-warm-reboot@0.target diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/shutdown_ack b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/shutdown_ack deleted file mode 100644 index 18cc87246f..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/obmc/gpio/shutdown_ack +++ /dev/null @@ -1,4 +0,0 @@ -DEVPATH=/dev/input/event0 -KEY=50 -POLARITY=1 -TARGET=ampere-host-shutdown-ack@0.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/toggle_fault_led.sh b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/toggle_fault_led.sh deleted file mode 100644 index 58aa47f8e8..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/toggle_fault_led.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# -# Toggle the state of identify LED Group - -socket=$1 -isOn=$2 - -# Create /tmp/fault* file -if [ "$isOn" == "on" ]; then - touch /tmp/fault"$socket" -else - rm /tmp/fault"$socket" -fi - -# Set Fault Led state -if [[ -f /tmp/fault0 ]] || [[ -f /tmp/fault1 ]]; then - target='true' -else - target='false' -fi - -SERVICE="xyz.openbmc_project.LED.GroupManager" -INTERFACE="xyz.openbmc_project.Led.Group" -PROPERTY="Asserted" - -# Get current state -object=$(busctl tree $SERVICE --list | grep system_fault) - -# Set target state -busctl set-property $SERVICE "$object" $INTERFACE $PROPERTY b $target diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/toggle_identify_led.sh b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/toggle_identify_led.sh deleted file mode 100755 index f6eae0e245..0000000000 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/toggle_identify_led.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# Toggle the state of identify LED Group - -SERVICE="xyz.openbmc_project.LED.GroupManager" -INTERFACE="xyz.openbmc_project.Led.Group" -PROPERTY="Asserted" - -# Get enclosure_identify state -identify_object=$(busctl tree $SERVICE --list | grep -m 1 identify) -identify_state=$(busctl get-property $SERVICE "$identify_object" $INTERFACE $PROPERTY \ - | awk '{print $NF;}') - -# Get enclosure_identify_blink state -identify_blink_object=$(busctl tree $SERVICE --list | grep identify_blink) -identify_blink_state=$(busctl get-property $SERVICE "$identify_blink_object" $INTERFACE $PROPERTY \ - | awk '{print $NF;}') - -# Set state -if [ "$identify_state" = "false" ] && [ "$identify_blink_state" = "false" ]; then - # Turn on the UID LED - busctl set-property $SERVICE "$identify_object" $INTERFACE $PROPERTY b true -elif [ "$identify_state" = "false" ] && [ "$identify_blink_state" = "true" ]; then - # Turn off the UID LED when LED is blinking state - busctl set-property $SERVICE "$identify_blink_object" $INTERFACE $PROPERTY b false -elif [ "$identify_state" = "true" ] && [ "$identify_blink_state" = "false" ]; then - # Turn off the UID LED - busctl set-property $SERVICE "$identify_object" $INTERFACE $PROPERTY b false -else - echo "Invalid case! When identify_blink_state is true, the identify_state will set to false" -fi diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere-host-shutdown-ack@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere-host-shutdown-ack@.service index 6588191aae..6588191aae 100644 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere-host-shutdown-ack@.service +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere-host-shutdown-ack@.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_overtemp@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_overtemp@.service new file mode 100644 index 0000000000..a3efc9ff99 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_overtemp@.service @@ -0,0 +1,7 @@ +[Unit] +Description=Ampere Computing LLC Overtemp event + +[Service] +Restart=no +ExecStart=/bin/sh -c "touch /tmp/fault_overtemp && obmcutil chassisoff" +ExecStartPost=/bin/sh -c "ampere_add_redfishevent.sh OpenBMC.0.1.CPUThermalTrip.Critical %i && sleep 10 && rm /tmp/fault_overtemp" diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_psu_reset_hotswap.sh b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_psu_reset_hotswap.sh index 3ff3e1fc6a..3ff3e1fc6a 100755 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_psu_reset_hotswap.sh +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_psu_reset_hotswap.sh diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_scp_failover.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_scp_failover.service index ff4dec57a3..ff4dec57a3 100644 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_scp_failover.service +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_scp_failover.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_scp_failover.sh b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_scp_failover.sh index c1c16aba5c..c1c16aba5c 100644 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/ampere_scp_failover.sh +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/ampere_scp_failover.sh diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json new file mode 100644 index 0000000000..7b89a145be --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json @@ -0,0 +1,53 @@ +[ + { + "Name": "REBOOT_ACK", + "ChipId": "0", + "GpioNum": 75, + "EventMon": "FALLING", + "Target": "obmc-host-force-warm-reboot@0.target", + "Continue": true + }, + { + "Name": "SHUTDOWN_ACK", + "ChipId": "0", + "GpioNum": 50, + "EventMon": "FALLING", + "Target": "ampere-host-shutdown-ack@0.service", + "Continue": true + }, + { + "Name": "S0_OVERTEMP", + "LineName": "S0_OVERTEMP_L", + "EventMon": "FALLING", + "Target": "ampere_overtemp@0.service", + "Continue": true + }, + { + "Name": "S1_OVERTEMP", + "LineName": "S1_OVERTEMP_L", + "EventMon": "FALLING", + "Target": "ampere_overtemp@1.service", + "Continue": true + }, + { + "Name": "S0_SCP_AUTH_FAIL", + "LineName": "S0_SCP_AUTH_FAIL_L", + "EventMon": "FALLING", + "Target": "ampere_scp_failover.service", + "Continue": true + }, + { + "Name": "PSU1_VIN_GOOD", + "LineName": "PSU1_VIN_GOOD", + "EventMon": "RISING", + "Target": "psu_hotswap_reset@0.service", + "Continue": true + }, + { + "Name": "PSU2_VIN_GOOD", + "LineName": "PSU2_VIN_GOOD", + "EventMon": "RISING", + "Target": "psu_hotswap_reset@1.service", + "Continue": true + } +] diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/psu_hotswap_reset@.service b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/psu_hotswap_reset@.service index 357cc05383..357cc05383 100644 --- a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling/psu_hotswap_reset@.service +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor/psu_hotswap_reset@.service diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend new file mode 100644 index 0000000000..f798fee835 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend @@ -0,0 +1,35 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +inherit systemd +inherit obmc-phosphor-systemd + +RDEPENDS:${PN}-monitor += "bash" +RDEPENDS:${PN} += "bash" + +SRC_URI += " \ + file://phosphor-multi-gpio-monitor.json \ + file://ampere_scp_failover.sh \ + file://ampere_psu_reset_hotswap.sh \ + " + +SYSTEMD_SERVICE:${PN}-monitor += " \ + ampere-host-shutdown-ack@.service \ + ampere_overtemp@.service \ + ampere_scp_failover.service \ + psu_hotswap_reset@.service \ + " + +FILES:${PN}-monitor += " \ + /usr/share/${PN}/phosphor-multi-gpio-monitor.json \ + /usr/sbin/ampere_scp_failover.sh \ + /usr/sbin/ampere_psu_reset_hotswap.sh \ + " + +SYSTEMD_LINK:${PN}-monitor:append = " ../phosphor-multi-gpio-monitor.service:multi-user.target.requires/phosphor-multi-gpio-monitor.service" + +do_install:append() { + install -d ${D}${sbindir} + install -m 0644 ${WORKDIR}/phosphor-multi-gpio-monitor.json ${D}${datadir}/${PN}/ + install -m 0755 ${WORKDIR}/ampere_scp_failover.sh ${D}${sbindir}/ + install -m 0755 ${WORKDIR}/ampere_psu_reset_hotswap.sh ${D}${sbindir}/ +} |