diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2018-08-30 12:19:21 -0500 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-09-19 09:50:03 -0500 |
commit | 4e4dbf34cd08855833bce3b3f3519761a839d6db (patch) | |
tree | 499b10ff16300a90d21b7aa7615b4b252c33b72f /src/include/usr/scom/scomreasoncodes.H | |
parent | 639b6728bfdb38ab07b0044fba9ea30d30ea381c (diff) | |
download | talos-hostboot-4e4dbf34cd08855833bce3b3f3519761a839d6db.tar.gz talos-hostboot-4e4dbf34cd08855833bce3b3f3519761a839d6db.zip |
Forcibly clear all previous wakeups when the PM Complex starts
The power management logic was designed with the assumption
that the external callers would manage the state machine such
that the order of operations is always:
load->start->reset->load->start->reset->etc. However, we
have discovered edge cases where a reset can happen before the
first load or after a previous reset. In either case we will
end up with our wakeup counter being off by one and thus never
releasing wakeup.
The solution is to add logic to the start path that will
explicitly clear the counter out completely, regardless of its
current value. This will ensure that wakeup is released once
the complex is alive.
Change-Id: Ifb436335090ff910b9ee0f083d9a550b81833287
CQ: SW442639
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/65518
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/include/usr/scom/scomreasoncodes.H')
-rw-r--r-- | src/include/usr/scom/scomreasoncodes.H | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/usr/scom/scomreasoncodes.H b/src/include/usr/scom/scomreasoncodes.H index e8d5a7e6b..5c39abdeb 100644 --- a/src/include/usr/scom/scomreasoncodes.H +++ b/src/include/usr/scom/scomreasoncodes.H @@ -79,6 +79,8 @@ namespace SCOM SCOM_SENSITIVE_REG_READ_FAIL = SCOM_COMP_ID | 0x1A, SCOM_BAD_TARGET = SCOM_COMP_ID | 0x1B, SCOM_CACHE_SEQ_ERROR = SCOM_COMP_ID | 0x1C, + SCOM_INVALID_WAKEUP_PARM = SCOM_COMP_ID | 0x1D, + SCOM_UNEXPECTED_FORCE_WAKEUP = SCOM_COMP_ID | 0x1E, }; enum UserDetailsTypes |