summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThang Q. Nguyen <thang@os.amperecomputing.com>2021-12-08 13:47:46 +0300
committerThang Q. Nguyen <thang@os.amperecomputing.com>2021-12-09 06:08:48 +0300
commit11e70600436c95cb52e211bd3f3daddd570a5325 (patch)
tree0e149bc7fb48a8c2bfdc1c32daf2bb079b2c1c09
parentc43ab61ced86d19d5698a18a81cdbfa8d43d050e (diff)
downloadopenbmc-11e70600436c95cb52e211bd3f3daddd570a5325.tar.xz
meta-ampere: mtjade: don't configure OCP GPIO when BMC rebooted
Configure OCP_AUX_PWREN and/or OCP_MAIN_PWREN GPIOs, even without changing their values, make the OCP power glitched which consequently makes the Host OS generates many calltrace message. When BMC is rebooted, the ampere-gpio-poweron@service service is triggered that reconfigure these GPIOs. This comit prevents this case by checking if the Host is currently ON to skip the reconfiguration. Tested: 1. Boot the BMC and Host CPU. 2. Reboot BMC. Ensure no call trace for OCP Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I621e025adf72baf84bffd011ea0e04229f739755
-rw-r--r--meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere-gpio-poweroff@.service4
-rw-r--r--meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere_gpio_utils.sh8
2 files changed, 7 insertions, 5 deletions
diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere-gpio-poweroff@.service b/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere-gpio-poweroff@.service
index 78862eb327..fe776a5b9f 100644
--- a/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere-gpio-poweroff@.service
+++ b/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere-gpio-poweroff@.service
@@ -1,10 +1,10 @@
[Unit]
Description=Ampere set GPIOs before power off
Requires=op-wait-power-off@%i.service
-Before=op-wait-power-off@%i.service
+After=op-wait-power-off@%i.service
Conflicts=obmc-chassis-poweron@%i.target
[Service]
Type=oneshot
ExecStart=/usr/bin/env ampere_gpio_utils.sh power off
-SyslogIdentifier=ampere_gpio_utils \ No newline at end of file
+SyslogIdentifier=ampere_gpio_utils
diff --git a/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere_gpio_utils.sh b/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere_gpio_utils.sh
index 1a098f4466..5d1a1a27a0 100644
--- a/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere_gpio_utils.sh
+++ b/meta-ampere/meta-jade/recipes-ampere/platform/mtjade-gpio-config/ampere_gpio_utils.sh
@@ -10,14 +10,16 @@ function usage() {
set_gpio_power_off() {
echo "Setting GPIO before Power off"
- gpio_configure_output "$OCP_AUX_PWREN" 1
gpio_configure_output "$OCP_MAIN_PWREN" 0
- gpio_configure_output "$SPI0_PROGRAM_SEL" 0
+ rm -f /run/openbmc/host@0-on
}
set_gpio_power_on() {
echo "Setting GPIO before Power on"
- gpio_configure_output "$OCP_AUX_PWREN" 1
+ val=$(gpio_get_val "$S0_CPU_FW_BOOT_OK")
+ if [ "$val" == 1 ]; then
+ exit
+ fi
gpio_configure_output "$OCP_MAIN_PWREN" 1
gpio_configure_output "$SPI0_PROGRAM_SEL" 1
gpio_configure_output "$SPI0_BACKUP_SEL" 0