From 1dcc359d6da60cf309bababe0ac0ea6232f26146 Mon Sep 17 00:00:00 2001 From: Greg Still Date: Mon, 11 Jun 2018 10:00:25 -0500 Subject: 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 Reviewed-by: AMIT J. TENDOLKAR Reviewed-by: Gregory S. Still Reviewed-by: Jennifer A. Stofer --- import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c | 2 ++ import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h | 1 + .../chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c | 2 ++ 3 files changed, 5 insertions(+) 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); } -- cgit v1.2.3