diff options
author | Yue Du <daviddu@us.ibm.com> | 2016-07-14 01:18:16 -0500 |
---|---|---|
committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-10-23 16:17:54 -0500 |
commit | a0e1f09e9f5b3333931c7bcb7afa84c519caafcb (patch) | |
tree | a57949d591dcc98f86c7628e85ca5df6a3641da4 /import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c | |
parent | dc9c5e7d3b22825d2a00045c6e59e7875d7bd953 (diff) | |
download | talos-hcode-a0e1f09e9f5b3333931c7bcb7afa84c519caafcb.tar.gz talos-hcode-a0e1f09e9f5b3333931c7bcb7afa84c519caafcb.zip |
CME/SGPE: STOP Images functional bug fix collection
Change-Id: I3858a93ade6f21c006c980a497f58d6dafd9b628
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/27000
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@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 | 23 |
1 files changed, 15 insertions, 8 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 85ddd82b..a1472174 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 @@ -246,16 +246,23 @@ p9_sgpe_stop_pig_handler(void* arg, PkIrqId irq) G_sgpe_stop_record.group.core[VECTOR_ENTRY], G_sgpe_stop_record.group.core[VECTOR_EXIT]); - if (G_sgpe_stop_record.group.core[VECTOR_EXIT]) + if ((!G_sgpe_stop_record.group.core[VECTOR_EXIT]) && + (!G_sgpe_stop_record.group.core[VECTOR_ENTRY])) { - PK_TRACE("unblock exit"); - pk_semaphore_post(&(G_sgpe_stop_record.sem[1])); + out32(OCB_OIMR1_CLR, (BITS32(15, 2) | BIT32(19))); } - - if (G_sgpe_stop_record.group.core[VECTOR_ENTRY]) + else { - PK_TRACE("unblock entry"); - pk_semaphore_post(&(G_sgpe_stop_record.sem[0])); - } + if (G_sgpe_stop_record.group.core[VECTOR_EXIT]) + { + PK_TRACE("unblock exit"); + pk_semaphore_post(&(G_sgpe_stop_record.sem[1])); + } + if (G_sgpe_stop_record.group.core[VECTOR_ENTRY]) + { + PK_TRACE("unblock entry"); + pk_semaphore_post(&(G_sgpe_stop_record.sem[0])); + } + } } |