diff options
| author | Rahul Batra <rbatra@us.ibm.com> | 2018-01-16 10:53:41 -0600 |
|---|---|---|
| committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2018-02-01 16:20:23 -0600 |
| commit | dab30d1e806523225cdc166ff7d52405fed21122 (patch) | |
| tree | 230c5b8edac379bfe5bf767bf58daa591f9c3e07 | |
| parent | f3f430d6403b89e0ceb4c230896d53b4a48e4062 (diff) | |
| download | talos-hcode-dab30d1e806523225cdc166ff7d52405fed21122.tar.gz talos-hcode-dab30d1e806523225cdc166ff7d52405fed21122.zip | |
PGPE: Intermittent Local Pstate Rollback Fix
Key_Cronus_Test=PM_REGRESS
Change-Id: I0911e4a73cbbed3b8d16c6d0dbfc91dbf2f76ba5
Original-Change-Id: I4b49f1254328b8286754ad0140a5d22e920751a5
CQ: SW414108
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52005
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Reviewed-by: YUE DU <daviddu@us.ibm.com>
Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com>
Dev-Ready: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c index 11425f6e..58e68a78 100644 --- a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c +++ b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c @@ -1458,14 +1458,7 @@ void p9_pgpe_pstate_do_step() { if(G_pgpe_pstate_record.activeQuads & QUAD_MASK(q)) { - if (G_pgpe_pstate_record.quadPSTarget[q] > G_pgpe_pstate_record.globalPSNext) //Keep localPS under GlobalPS - { - G_pgpe_pstate_record.quadPSNext[q] = G_pgpe_pstate_record.globalPSNext; - } - else - { - G_pgpe_pstate_record.quadPSNext[q] = G_pgpe_pstate_record.quadPSTarget[q]; - } + G_pgpe_pstate_record.quadPSNext[q] = G_pgpe_pstate_record.quadPSTarget[q]; } } @@ -1665,6 +1658,18 @@ void p9_pgpe_pstate_freq_updt() db0.fields.quad4_ps = G_pgpe_pstate_record.quadPSNext[4]; db0.fields.quad5_ps = G_pgpe_pstate_record.quadPSNext[5]; + //Ensure quadPS is not lower numbered(higher freq/volt) than globalPS + if ((G_pgpe_pstate_record.quadPSNext[0] < G_pgpe_pstate_record.globalPSNext) || + (G_pgpe_pstate_record.quadPSNext[1] < G_pgpe_pstate_record.globalPSNext) || + (G_pgpe_pstate_record.quadPSNext[2] < G_pgpe_pstate_record.globalPSNext) || + (G_pgpe_pstate_record.quadPSNext[3] < G_pgpe_pstate_record.globalPSNext) || + (G_pgpe_pstate_record.quadPSNext[4] < G_pgpe_pstate_record.globalPSNext) || + (G_pgpe_pstate_record.quadPSNext[5] < G_pgpe_pstate_record.globalPSNext)) + { + PK_TRACE_ERR("FREQ: Invalid Freq Updt. quadPS < globalPS"); + PGPE_PANIC_AND_TRACE(PGPE_INVALID_FREQ_UPDT); + } + p9_pgpe_optrace(ACTL_BROADCAST); p9_pgpe_send_db0(db0.value, G_pgpe_pstate_record.activeDB, |

