diff options
| author | Greg Still <stillgs@us.ibm.com> | 2018-06-11 10:00:25 -0500 |
|---|---|---|
| committer | hostboot <hostboot@us.ibm.com> | 2018-08-22 17:55:51 -0500 |
| commit | 1dcc359d6da60cf309bababe0ac0ea6232f26146 (patch) | |
| tree | 74509a93b312b33cd49dd0550b72383f03fbcc2a | |
| parent | 0b555c46d817fe7cde4b4258826e66a9f239c1a1 (diff) | |
| download | talos-hcode-1dcc359d6da60cf309bababe0ac0ea6232f26146.tar.gz talos-hcode-1dcc359d6da60cf309bababe0ac0ea6232f26146.zip | |
PM: clear Hcode error injection bits upon injection and malf alert
- Also deals with PM callout order issue with the malf alert assertion
Key_Cronus_Test=PM_REGRESS
Change-Id: I1c2da3210aaeaff115a67dd8a17d09b39467bbf7
Original-Change-Id: I78b41c59d09369c60891beb41ff9debc986e59b4
CQ: SW434547
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/60316
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
3 files changed, 5 insertions, 0 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c index 281c35fa..db55ec4d 100755 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c @@ -1377,6 +1377,8 @@ p9_cme_stop_entry() if( BIT64(CPPM_CSAR_STOP_HCODE_ERROR_INJECT) & scom_data.value ) { + // Clear the injection so things are not permenently stuck + CME_PUTSCOM(CPPM_CSAR_CLR, core, BIT64(CPPM_CSAR_STOP_HCODE_ERROR_INJECT)); PK_TRACE_DBG("CME STOP ENTRY ERROR INJECT TRAP"); PK_PANIC(CME_STOP_ENTRY_TRAP_INJECT); } diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h index d4ef5dff..6365b932 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h @@ -80,6 +80,7 @@ extern uint32_t G_OCB_OCCFLG; extern uint32_t G_OCB_OCCFLG_CLR; extern uint32_t G_OCB_OCCFLG_OR; extern uint32_t G_OCB_OCCFLG2; +extern uint32_t G_OCB_OCCFLG2_CLR; extern uint32_t G_OCB_OCCS2; extern uint32_t G_OCB_OISR0_CLR; extern uint32_t G_OCB_OISR1; diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c index 2c92bdb4..10ddfb34 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c @@ -71,6 +71,8 @@ p9_sgpe_stop_entry() if( in32(G_OCB_OCCFLG2) & BIT32(OCCFLG2_SGPE_HCODE_STOP_REQ_ERR_INJ)) { + // Clear the injection so things are not permenently stuck + out32(G_OCB_OCCFLG2_CLR, BIT32(OCCFLG2_SGPE_HCODE_STOP_REQ_ERR_INJ)); PK_TRACE_ERR("SGPE STOP ENTRY ERROR INJECT TRAP"); PK_PANIC(SGPE_STOP_ENTRY_TRAP_INJECT); } |

