summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2017-11-03 10:25:42 -0500
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2017-11-17 15:09:48 -0600
commit207c92acba159b07ec96e2806e88b1f37a5442ec (patch)
tree381c47661c83e51b5b0d28c73526fb0c26abab78
parent115cbbe75795250cb1a9af8b993a880ebf513aa6 (diff)
downloadtalos-hcode-207c92acba159b07ec96e2806e88b1f37a5442ec.tar.gz
talos-hcode-207c92acba159b07ec96e2806e88b1f37a5442ec.zip
STOP: Fix SGPE UIH Messed up EIMR book keeping Error
Key_Cronus_Test=PM_REGRESS Change-Id: Ic7a13488f61f302dd200059008c7e4ed1cee3148 Original-Change-Id: Ie1611b009e95192a0dad3a47af14ef8a36dd454b CQ: SW407045 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49234 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: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h1
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c4
2 files changed, 3 insertions, 2 deletions
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 dfad53d7..dcc7355c 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
@@ -308,6 +308,7 @@ typedef struct
typedef struct
{
uint32_t starve_counter;
+ uint8_t entry_pending;
} sgpe_fit_t;
/// SGPE Stop Score Board Structure
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c
index 87b64191..b13c35cb 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c
@@ -44,8 +44,7 @@ p9_sgpe_stop_exit_thread(void* arg)
// The actual exit sequence
p9_sgpe_stop_exit();
- if ((!G_sgpe_stop_record.group.core[VECTOR_ENTRY]) &&
- (!G_sgpe_stop_record.group.qswu[VECTOR_ENTRY]))
+ if (!G_sgpe_stop_record.fit.entry_pending)
{
#if !SKIP_IPC
@@ -115,6 +114,7 @@ p9_sgpe_stop_enter_thread(void* arg)
p9_sgpe_ack_pgpe_ctrl_stop_updates();
}
+ G_sgpe_stop_record.fit.entry_pending = 0;
PK_TRACE_INF("Setup: Entry done. Enable Type2/3/5/6 Interrupt");
g_oimr_override &= ~(BITS64(47, 2) | BITS64(50, 2));
pk_irq_vec_restore(&ctx);
OpenPOWER on IntegriCloud