diff options
| author | Yue Du <daviddu@us.ibm.com> | 2018-02-06 21:40:06 -0600 |
|---|---|---|
| committer | hostboot <hostboot@us.ibm.com> | 2018-03-22 14:04:51 -0500 |
| commit | 20835d260cdf35d6edae75be7151433d565b2416 (patch) | |
| tree | f265686325db1fa9bdaf7532912427f2fee194de | |
| parent | cb682804b3d9ccf10a8b05b6485091f88538faf3 (diff) | |
| download | talos-hcode-20835d260cdf35d6edae75be7151433d565b2416.tar.gz talos-hcode-20835d260cdf35d6edae75be7151433d565b2416.zip | |
STOP: Block Wakeup Mode Fixes for Phyp
1) fix L3 Purge Abort in Block Wakeup mode put quad in undefined state
2) fix stop11 wakeup being converted to stop5 wakeup during Block Wakeup
3) fix some bugs between Special Wakeup and Block Wakeup mode.
4) fix racing decrementor wakeup being serviced in Block Wakeup mode
Key_Cronus_Test=PM_REGRESS
Change-Id: I05a9f21a908ef7b32e8e79543b1dd40ca45b8272
Original-Change-Id: I391e6f820c0e9842fc737a1aa5e2ece8e94105bc
CQ: SW416538
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53514
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Reviewed-by: YUE DU <daviddu@us.ibm.com>
Reviewed-by: Brian T. Vanderpool <vanderp@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c index 68a6842b..c1139b05 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c @@ -551,7 +551,8 @@ p9_cme_stop_exit() spwu_stop = (wakeup >> 2) & G_cme_record.core_enabled & (~G_cme_stop_record.core_in_spwu); spwu_wake = spwu_stop & G_cme_stop_record.core_running; - spwu_stop = spwu_stop & (~G_cme_stop_record.core_running); + spwu_stop = spwu_stop & (~G_cme_stop_record.core_running) & + (~G_cme_stop_record.core_blockwu); if (spwu_wake) { |

