diff options
| author | Yue Du <daviddu@us.ibm.com> | 2017-11-03 10:25:42 -0500 |
|---|---|---|
| committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-11-17 15:09:48 -0600 |
| commit | 207c92acba159b07ec96e2806e88b1f37a5442ec (patch) | |
| tree | 381c47661c83e51b5b0d28c73526fb0c26abab78 | |
| parent | 115cbbe75795250cb1a9af8b993a880ebf513aa6 (diff) | |
| download | talos-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.h | 1 | ||||
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c | 4 |
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); |

