summaryrefslogtreecommitdiff
path: root/power
diff options
context:
space:
mode:
authorZhuohao Lee <zhuohao@chromium.org>2022-04-11 18:06:40 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-04-21 09:51:18 +0000
commitbf6f0c21d951f00574d24e34040351e94d4545a0 (patch)
treea2c9a153242a40b65d9db894857b16d8b8ced149 /power
parent5efd8eea4be5dd1417e8e98b4f8fb5e9444cc169 (diff)
downloadchrome-ec-bf6f0c21d951f00574d24e34040351e94d4545a0.tar.gz
power/intel_x86: block RSMRST until the system is in S5
When we set the EN_S5_RAILS to enable the 3.3v/5v power for the ap spi flash programming via the C2D2, the power sequence ic will deassert the SEQ_EC_RSMRST_ODL in the G3 state. In order to avoid the ap being powered on during the C2D2 programming, we need to bypass the RSMRST before the system enters the S5. As a result, we add CONFIG_CHIPSET_X86_RSMRST_AFTER_S5 to block the RSMRST until the system goes to S5. Since the APL/GLK already applied the same approach, we enable the CONFIG_CHIPSET_X86_RSMRST_AFTER_S5 for the APL/GLK by default in the config.h. BUG=b:223084533 BRANCH=None TEST=cros ap flash -b brya -i ${IMAGE} Change-Id: I14039b405adc62e91436759eddacf6f9dc141eff Signed-off-by: Zhuohao Lee <zhuohao@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3583905 Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: caveh jalali <caveh@chromium.org>
Diffstat (limited to 'power')
-rw-r--r--power/intel_x86.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/power/intel_x86.c b/power/intel_x86.c
index 25778b3f78..35c0482831 100644
--- a/power/intel_x86.c
+++ b/power/intel_x86.c
@@ -571,18 +571,16 @@ void common_intel_x86_handle_rsmrst(enum power_state state)
board_before_rsmrst(rsmrst_in);
-#ifdef CONFIG_CHIPSET_APL_GLK
/* Only passthrough RSMRST_L de-assertion on power up */
- if (rsmrst_in && !power_s5_up)
+ if (IS_ENABLED(CONFIG_CHIPSET_X86_RSMRST_AFTER_S5) &&
+ rsmrst_in && !power_s5_up)
return;
-#elif defined(CONFIG_CHIPSET_X86_RSMRST_DELAY)
/*
* Wait at least 10ms between power signals going high
* and deasserting RSMRST to PCH.
*/
- if (rsmrst_in)
+ if (IS_ENABLED(CONFIG_CHIPSET_X86_RSMRST_DELAY) && rsmrst_in)
msleep(10);
-#endif
gpio_set_level(GPIO_PCH_RSMRST_L, rsmrst_in);