summaryrefslogtreecommitdiffstats
path: root/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c')
-rwxr-xr-ximport/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c90
1 files changed, 11 insertions, 79 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
index 70ed76c6..15d45bd5 100755
--- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2015,2019 */
+/* COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -50,7 +50,6 @@
extern CmeStopRecord G_cme_stop_record;
extern CmeRecord G_cme_record;
-extern uint64_t G_spattn_mask;
#if NIMBUS_DD_LEVEL != 10
@@ -243,10 +242,6 @@ p9_cme_stop_entry()
uint32_t core_mask = 0;
uint32_t core_raw = 0;
uint32_t core = 0;
-#if SMF_SUPPORT_ENABLE
- uint32_t core_spattn = 0;
- uint32_t self_save_core = 0;
-#endif
uint32_t thread = 0;
uint32_t pscrs = 0;
uint32_t no_state_loss = 0;
@@ -585,67 +580,6 @@ p9_cme_stop_entry()
#endif
-#if SMF_SUPPORT_ENABLE
-
- if (G_cme_stop_record.req_level[0] >= STOP_LEVEL_4)
- {
- self_save_core |= CME_MASK_C0;
- }
-
- if (G_cme_stop_record.req_level[1] >= STOP_LEVEL_4)
- {
- self_save_core |= CME_MASK_C1;
- }
-
- self_save_core = self_save_core & core;
-
- if ( self_save_core )
- {
-
- p9_cme_stop_self_execute(self_save_core, SPR_SELF_SAVE);
-
- PK_TRACE("Poll for core stop again(pm_active=1)");
-
- while((~(in32(G_CME_LCL_EINR))) & (self_save_core << SHIFT32(21)))
- {
- core_spattn = (in32_sh(CME_LCL_SISR) >> SHIFT64SH(33)) & self_save_core;
-
- if (core_spattn)
- {
- PK_TRACE_ERR("ERROR: Core[%d] Special Attention Detected. Gard Core!", core_spattn);
- CME_STOP_CORE_ERROR_HANDLER(self_save_core, core_spattn, CME_STOP_EXIT_SELF_RES_SPATTN);
-
- PK_TRACE("Release PCB Mux back on Core via SICR[10/11]");
- out32(G_CME_LCL_SICR_CLR, core_spattn << SHIFT32(11));
-
- while((core_spattn & ~(in32(G_CME_LCL_SISR) >> SHIFT32(11))) != core_spattn);
-
- PK_TRACE("PCB Mux Released on Core[%d]", core_spattn);
- }
-
- if (!self_save_core)
- {
-
-#if NIMBUS_DD_LEVEL == 20 || DISABLE_CME_DUAL_CAST == 1
-
- continue;
-
-#else
-
- return;
-
-#endif
-
- }
- }
-
- PK_TRACE("SF.RS: Self Save Completed, Core Stopped Again(pm_exit=0/pm_active=1)");
-
- p9_cme_stop_self_cleanup(self_save_core);
-
- }// if self_save_core
-
-#endif
// ---------------------------------
// Permanent workaround for HW407385
@@ -1325,20 +1259,18 @@ p9_cme_stop_entry()
MARK_TRAP(SE_IS0_BEGIN)
//===========================
- /*** DISABLE STOP4 to STOP2 abort due to UV mode incorrectly reached on such case ***
- #if !SKIP_ABORT
+#if !SKIP_ABORT
- core_wakeup = core & (~G_cme_stop_record.core_blockwu);
- out32(G_CME_LCL_EIMR_CLR, (core_wakeup << SHIFT32(13)) |
- (core_wakeup << SHIFT32(15)) |
- (core_wakeup << SHIFT32(17)));
- sync();
- wrteei(0);
- out32(G_CME_LCL_EIMR_OR, BITS32(10, 12));
- wrteei(1);
+ core_wakeup = core & (~G_cme_stop_record.core_blockwu);
+ out32(G_CME_LCL_EIMR_CLR, (core_wakeup << SHIFT32(13)) |
+ (core_wakeup << SHIFT32(15)) |
+ (core_wakeup << SHIFT32(17)));
+ sync();
+ wrteei(0);
+ out32(G_CME_LCL_EIMR_OR, BITS32(10, 12));
+ wrteei(1);
- #endif
- */
+#endif
//===================
MARK_TRAP(SE_IS0_END)
OpenPOWER on IntegriCloud