summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch')
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch
new file mode 100644
index 000000000..3833d2a31
--- /dev/null
+++ b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch
@@ -0,0 +1,45 @@
+From 51ae3c80f20be3b8e010aa57041fa9c38076cc76 Mon Sep 17 00:00:00 2001
+From: Vikram Bodireddy <vikram.bodireddy@intel.com>
+Date: Wed, 18 Mar 2020 21:47:11 +0530
+Subject: [PATCH] PFR- Skip counting WDT2 event when EXTRST# is set
+
+PFR CPLD drives EXTRST# of BMC to reset it during
+firmware update and during recovery. On ast2500 the
+EXTRST# is also setting WDT2/3 flags which is counted
+as boot failures by u-boot and aborts the boot if
+boot failures are more than 3. This change will skip
+counting WDT2 flag if EXTRST# is also set in SCU3C.
+
+Tested: Verified BMC updates 4 times and checked that
+ the boot is not aborted at u-boot.
+
+Signed-off-by: Vikram Bodireddy <vikram.bodireddy@intel.com>
+---
+ board/aspeed/ast-g5/ast-g5-intel.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-intel.c
+index 575061ff88..872c7a843a 100644
+--- a/board/aspeed/ast-g5/ast-g5-intel.c
++++ b/board/aspeed/ast-g5/ast-g5-intel.c
+@@ -145,6 +145,7 @@ static const GPIOValue gpio_table[] = {
+ #define HOST_SERIAL_B_HIGH_SPEED (1 << 1)
+
+ #define WATCHDOG_RESET_BIT 0x8
++#define EXTRST_RESET_BIT 0x2
+ #define BOOT_FAILURE_LIMIT 0x3
+
+ #define BRIGHTON_CITY_BOARD_ID 0
+@@ -572,7 +573,8 @@ void ast_g5_intel_late_init(void)
+
+ boot_failures = get_boot_failures();
+
+- if (reset_reason & WATCHDOG_RESET_BIT)
++ if ((reset_reason & WATCHDOG_RESET_BIT) &&
++ !(reset_reason & EXTRST_RESET_BIT))
+ set_boot_failures(boot_failures + 1);
+ else
+ set_boot_failures(0);
+--
+2.17.1
+