From 11e70600436c95cb52e211bd3f3daddd570a5325 Mon Sep 17 00:00:00 2001 From: "Thang Q. Nguyen" Date: Wed, 8 Dec 2021 10:47:46 +0000 Subject: 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 Change-Id: I621e025adf72baf84bffd011ea0e04229f739755 --- .../platform/mtjade-gpio-config/ampere-gpio-poweroff@.service | 4 ++-- .../platform/mtjade-gpio-config/ampere_gpio_utils.sh | 8 +++++--- 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 -- cgit v1.2.3