summaryrefslogtreecommitdiffstats
path: root/import
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2017-11-01 15:23:31 -0500
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2018-02-01 15:39:25 -0600
commitbd96030e124b5237790f28426a36f8a79b689b0d (patch)
tree645b619da3c56439665beb3257390eb06b4a9a9a /import
parent44213388a5890a4762620da353cc1c28b9ff3d49 (diff)
downloadtalos-hcode-bd96030e124b5237790f28426a36f8a79b689b0d.tar.gz
talos-hcode-bd96030e124b5237790f28426a36f8a79b689b0d.zip
STOP: Fix IOTA open new CME Interrupt window conditions
Key_Cronus_Test=PM_REGRESS Change-Id: I50c512c794bd25846539daeecd33638c5f7f70ef CQ: SW408384 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49110 Dev-Ready: YUE DU <daviddu@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Cronus HW CI <cronushw-ci+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')
-rw-r--r--import/chips/p9/procedures/ppe/iota/iota.c3
-rw-r--r--import/chips/p9/procedures/ppe/iota/iota.h6
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c3
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_pmcr.c7
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_irq_handlers.c6
5 files changed, 14 insertions, 11 deletions
diff --git a/import/chips/p9/procedures/ppe/iota/iota.c b/import/chips/p9/procedures/ppe/iota/iota.c
index d8faf176..947c19ff 100644
--- a/import/chips/p9/procedures/ppe/iota/iota.c
+++ b/import/chips/p9/procedures/ppe/iota/iota.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2017 */
+/* COPYRIGHT 2017,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -99,6 +99,7 @@ void _iota_boot()
void iota_run()
{
mtmsr(IOTA_DEFAULT_MSR);
+ wrteei(1);
while(1)
{
diff --git a/import/chips/p9/procedures/ppe/iota/iota.h b/import/chips/p9/procedures/ppe/iota/iota.h
index 8d88c548..f9a237b9 100644
--- a/import/chips/p9/procedures/ppe/iota/iota.h
+++ b/import/chips/p9/procedures/ppe/iota/iota.h
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2017 */
+/* COPYRIGHT 2017,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -76,8 +76,8 @@ void iota_set_idle_task_state(uint32_t state, uint32_t idle_task_idx);
#endif
#if !defined(IOTA_DEFAULT_MSR)
-#define IOTA_DEFAULT_MSR (MSR_UIE | MSR_EE | MSR_ME | MSR_IS0 | \
- MSR_IS1 | MSR_IS2 | MSR_IPE | MSR_SEM6)
+#define IOTA_DEFAULT_MSR (MSR_UIE | MSR_ME | MSR_IS0 | \
+ MSR_IS1 | MSR_IS2 | MSR_IPE)
#endif
///
diff --git a/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c b/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c
index 22681fc9..d0786c08 100644
--- a/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2016,2017 */
+/* COPYRIGHT 2016,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -82,6 +82,7 @@ void p9_cme_pstate_db_handler(void* arg, PkIrqId irq)
{
PK_TRACE_INF("DB_HDL: Entered\n");
#if defined(__IOTA__)
+ wrteei(1);
p9_cme_pstate_process_db0();
#else
pk_semaphore_post((PkSemaphore*)arg);
diff --git a/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_pmcr.c b/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_pmcr.c
index aecc8739..3b5aca35 100644
--- a/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_pmcr.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_pmcr.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2016,2017 */
+/* COPYRIGHT 2016,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -53,10 +53,6 @@ uint32_t G_pmcr_cme_flags;
void cme_pstate_pmcr_action()
{
- // In IOTA, any task function is executed with EE=1
-#if !defined(__IOTA__)
- wrteei(1);
-#endif
PkMachineContext ctx __attribute__((unused));
uint64_t pmcr;
ppm_pig_t ppmPigData;
@@ -115,6 +111,7 @@ void cme_pstate_pmcr_action()
void p9_cme_pstate_pmcr_handler(void* arg, PkIrqId irq)
{
#if defined(__IOTA__)
+ wrteei(1);
cme_pstate_pmcr_action();
#else
pk_semaphore_post((PkSemaphore*)arg);
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_irq_handlers.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_irq_handlers.c
index 874e9892..9115142b 100644
--- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_irq_handlers.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_irq_handlers.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2015,2017 */
+/* COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -83,6 +83,7 @@ p9_cme_stop_pcwu_handler(void* arg, PkIrqId irq)
{
out32(CME_LCL_EIMR_OR, BITS32(12, 10));
#if defined(__IOTA__)
+ wrteei(1);
p9_cme_stop_exit();
// re-evaluate g_eimr_override then restore eimr
p9_cme_stop_eval_eimr_override();
@@ -180,6 +181,7 @@ p9_cme_stop_spwu_handler(void* arg, PkIrqId irq)
out32(CME_LCL_EIMR_OR, BITS32(12, 10));
PK_TRACE_INF("Launching exit thread");
#if defined(__IOTA__)
+ wrteei(1);
p9_cme_stop_exit();
// re-evaluate g_eimr_override then restore eimr
p9_cme_stop_eval_eimr_override();
@@ -202,6 +204,7 @@ p9_cme_stop_rgwu_handler(void* arg, PkIrqId irq)
PK_TRACE_INF("RGWU Handler Trigger %d", irq);
out32(CME_LCL_EIMR_OR, BITS32(12, 10));
#if defined(__IOTA__)
+ wrteei(1);
p9_cme_stop_exit();
// re-evaluate g_eimr_override then restore eimr
p9_cme_stop_eval_eimr_override();
@@ -219,6 +222,7 @@ p9_cme_stop_enter_handler(void* arg, PkIrqId irq)
PK_TRACE_INF("PM_ACTIVE Handler Trigger %d", irq);
out32(CME_LCL_EIMR_OR, BITS32(12, 10));
#if defined(__IOTA__)
+ wrteei(1);
// The actual entry sequence
p9_cme_stop_entry();
// re-evaluate g_eimr_override then restore eimr
OpenPOWER on IntegriCloud