From 9fca6d5c7ee4674732abea1d438e6f7d1c76792a Mon Sep 17 00:00:00 2001 From: Yue Du Date: Wed, 26 Jul 2017 11:20:08 -0500 Subject: STOP: Fix DISABLE_STOP8 broken HB in NDD1 Change-Id: I97f6e4134ba6d5fbd7f47dda1f5dd4061e12c234 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43648 Tested-by: Jenkins Server Reviewed-by: Brian T. Vanderpool Reviewed-by: BRIAN D. VICTOR Reviewed-by: Gregory S. Still --- import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h | 1 - .../p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c | 8 -------- .../p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_entry.c | 8 +++++++- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h b/import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h index b83b89ee..d29a8de2 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h +++ b/import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h @@ -40,7 +40,6 @@ // Function disablement -#define DISABLE_STOP8 1 #define DISABLE_CME_DUAL_CAST 0 // -------------------- 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 30c4b1b5..735d6f7d 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 @@ -372,15 +372,7 @@ p9_cme_stop_entry() G_cme_stop_record.req_level[core_index] = STOP_LEVEL_8; } -#if DISABLE_STOP8 - - if (1 && - -#else - if ((pCmeImgHdr->g_cme_mode_flags & CME_STOP_8_TO_5_BIT_POS) && - -#endif (G_cme_stop_record.req_level[core_index] >= STOP_LEVEL_8 && G_cme_stop_record.req_level[core_index] < STOP_LEVEL_11)) { 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 1ae17f43..be9c42ce 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 @@ -125,7 +125,13 @@ p9_sgpe_stop_entry() #if DISABLE_STOP8 - G_sgpe_stop_record.group.ex01[qloop] |= BOTH_EXES_IN_QUAD; + ocb_qssr_t qssr = {0}; + qssr.value = in32(OCB_QSSR); + + // check qssr for already stopped ex + G_sgpe_stop_record.group.ex01[qloop] = + (((~qssr.value) & BITS32((qloop << 1), 2)) >> + SHIFT32(((qloop << 1) + 1))); #endif -- cgit v1.2.3