summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh24
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh3
2 files changed, 26 insertions, 1 deletions
diff --git a/meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh b/meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh
index 905c7f23a..511c1217e 100644
--- a/meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh
+++ b/meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh
@@ -4,7 +4,7 @@ source /usr/sbin/kudo-lib.sh
# Usage of this utility
function usage() {
- echo "usage: power-util mb [on|off|graceful_shutdown|force_reset|shutdown_ack|hotswap]";
+ echo "usage: power-util mb [on|off|graceful_shutdown|force_reset|shutdown_ack|hotswap|power_button]";
}
hotswap() {
@@ -91,6 +91,26 @@ shutdown_ack() {
fi
}
+power_button() {
+ echo "Power button trigger event."
+ current_time="$(timestamp)"
+ if [ -f "/run/openbmc/power-button" ]; then
+ echo "Power button released"
+ press_time="$(cat /run/openbmc/power-button)"
+ if [[ "$current_time" -le "(($press_time + 1))" ]]; then
+ power_on
+ elif [[ "$current_time" -ge "(($press_time + 5))" ]]; then
+ power_off
+ else
+ echo "Button press did not match interval.
+ fi
+ rm "/run/openbmc/power-button"
+ else
+ echo "Power button pressed"
+ echo "$(timestamp)" > "/run/openbmc/power-button"
+ fi
+}
+
if [ $# -lt 2 ]; then
echo "Total number of parameter=$#"
echo "Insufficient parameter"
@@ -125,6 +145,8 @@ elif [ $2 == "force_reset" ]; then
force_reset
elif [ $2 == "shutdown_ack" ]; then
shutdown_ack
+elif [ $2 == "power_button" ]; then
+ power_button
else
echo "Invalid parameter2=$2"
usage;
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh
index b87f12d0a..55661df80 100644
--- a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh
@@ -64,3 +64,6 @@ if [[ $CPU1_STATUS_N == 1 ]]; then
i2cset -y -a -f 16 0x6a 11 1 0x01 i
i2cset -y -a -f 17 0x67 1 2 0x3f 0x0c i
fi
+
+# Create /run/openbmc for system power files
+mkdir "/run/openbmc"