diff options
author | Yue Du <daviddu@us.ibm.com> | 2018-01-09 01:43:54 -0600 |
---|---|---|
committer | hostboot <hostboot@us.ibm.com> | 2018-03-22 14:05:59 -0500 |
commit | b20ca2b33f13ad31aca6c29eda186dfb9393a617 (patch) | |
tree | 1c970248b405f862b576fa0b3620b9383882fa3c /import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c | |
parent | d6f049a7f729a619747356f46b076429c6504b01 (diff) | |
download | talos-hcode-b20ca2b33f13ad31aca6c29eda186dfb9393a617.tar.gz talos-hcode-b20ca2b33f13ad31aca6c29eda186dfb9393a617.zip |
STOP: Fix SGPE stop servicing wakeups
Key_Cronus_Test=PM_REGRESS
Change-Id: I09b37a6edbec10e5701998c7f4cf506b87cf0e5f
Original-Change-Id: Icb6b9fcf030a9389bf4571c5b9b3c44d72a8cb3f
CQ: SW413317
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51662
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Diffstat (limited to 'import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c')
-rw-r--r-- | import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c index b36a1036..875bcc12 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c @@ -592,7 +592,7 @@ p9_sgpe_pig_cpayload_parser(const uint32_t type) #if DISABLE_STOP8 // if having ongoing stop11 in resclk disable phase, hold on to all exits - if (G_sgpe_stop_record.group.quad[VECTOR_RCLKE] & BIT32(qloop)) + if (G_sgpe_stop_record.group.quad[VECTOR_RCLKE] & BIT32((qloop + RCLK_DIS_REQ_OFFSET))) { if ((type == PIG_TYPE5) && (cpayload == TYPE5_PAYLOAD_EXIT_RCLK)) { @@ -699,8 +699,8 @@ p9_sgpe_pig_cpayload_parser(const uint32_t type) if ((type == PIG_TYPE5) && (cpayload == (TYPE5_PAYLOAD_ENTRY_RCLK | STOP_LEVEL_11))) { - G_sgpe_stop_record.group.quad[VECTOR_RCLKE] &= ~BIT32(qloop); - G_sgpe_stop_record.group.quad[VECTOR_RCLKE] |= BIT32((qloop + 16)); + G_sgpe_stop_record.group.quad[VECTOR_RCLKE] &= ~BIT32((qloop + RCLK_DIS_REQ_OFFSET)); + G_sgpe_stop_record.group.quad[VECTOR_RCLKE] |= BIT32((qloop + RCLK_DIS_DONE_OFFSET)); } else { @@ -714,8 +714,8 @@ p9_sgpe_pig_cpayload_parser(const uint32_t type) (cpayload == (TYPE5_PAYLOAD_ENTRY_RCLK | STOP_LEVEL_11))) { PK_TRACE_INF("Core Request Entry Allowed as Resonant Clock Disable is Completed"); - G_sgpe_stop_record.group.quad[VECTOR_RCLKE] &= ~BIT32(qloop); - G_sgpe_stop_record.group.quad[VECTOR_RCLKE] |= BIT32((qloop + 16)); + G_sgpe_stop_record.group.quad[VECTOR_RCLKE] &= ~BIT32((qloop + RCLK_DIS_REQ_OFFSET)); + G_sgpe_stop_record.group.quad[VECTOR_RCLKE] |= BIT32((qloop + RCLK_DIS_DONE_OFFSET)); } #else @@ -849,7 +849,7 @@ p9_sgpe_pig_thread_lanucher() // Taking Stop8/11 Actions if any if (G_sgpe_stop_record.group.core[VECTOR_PIGX] || G_sgpe_stop_record.group.core[VECTOR_PIGE] || - (G_sgpe_stop_record.group.quad[VECTOR_RCLKE] & BITS32(16, 6))) + (G_sgpe_stop_record.group.quad[VECTOR_RCLKE] & BITS32(RCLK_DIS_DONE_OFFSET, 6))) { // block both type3 and type5, 6 // so another doesnt interrupt until next round @@ -865,7 +865,7 @@ p9_sgpe_pig_thread_lanucher() } if ((G_sgpe_stop_record.group.core[VECTOR_PIGE]) || - (G_sgpe_stop_record.group.quad[VECTOR_RCLKE] & BITS32(16, 6) & + (G_sgpe_stop_record.group.quad[VECTOR_RCLKE] & BITS32(RCLK_DIS_DONE_OFFSET, 6) & (~(G_sgpe_stop_record.group.quad[VECTOR_BLOCKE] >> 16)))) { PK_TRACE_INF("Unblock Entry Thread"); |