diff options
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 |

