summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h1
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c25
2 files changed, 22 insertions, 4 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h
index 74f20016..12e7e9d9 100644
--- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h
+++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h
@@ -81,6 +81,7 @@
#define SCRACTH1 0x20010A87
#define THREAD_INFO 0x20010A9B
#define DIRECT_CONTROLS 0x20010A9C
+#define HRMOR 0x20010AB9
#define C_SYNC_CONFIG 0x20030000
#define C_OPCG_ALIGN 0x20030001
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c
index 022779ac..8ca64670 100644
--- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c
@@ -636,10 +636,14 @@ p9_cme_stop_exit()
while((in32(CME_LCL_EINR)) & (core << SHIFT32(21)));
- PK_TRACE_INF("SX4.O: Core Wakes Up, Ramming HRMOR with HOMER address");
+ cmeHeader_t* pCmeImgHdr = (cmeHeader_t*)(CME_SRAM_BASE + CME_HEADER_IMAGE_OFFSET);
+ scom_data.value = pCmeImgHdr->g_cme_cpmr_PhyAddr & BITS64(13, 30); //HRMOR[13:42]
+#if NIMBUS_DD_LEVEL == 1
#if !SKIP_RAM_HRMOR
+ PK_TRACE_INF("SX4.O: Core Wakes Up, Ramming HRMOR with HOMER address");
+
PK_TRACE("Activate thread0 for RAM via THREAD_INFO[18]");
CME_PUTSCOM(THREAD_INFO, core, BIT64(18));
@@ -649,9 +653,6 @@ p9_cme_stop_exit()
PK_TRACE("Set SPR mode to LT0-7 via SPR_MODE[20-27]");
CME_PUTSCOM(SPR_MODE, core, BITS64(20, 8));
- cmeHeader_t* pCmeImgHdr = (cmeHeader_t*)(CME_SRAM_BASE + CME_HEADER_IMAGE_OFFSET);
- scom_data.value = pCmeImgHdr->g_cme_cpmr_PhyAddr & BITS64(13, 30); //HRMOR[13:42]
-
if (core & CME_MASK_C0)
{
PK_TRACE("Set SPRC to scratch0 for core0 via SCOM_SPRC");
@@ -703,6 +704,22 @@ p9_cme_stop_exit()
CME_PUTSCOM(RAM_MODEREG, core, 0);
#endif
+// Nimbus DD2+
+#else
+
+ PK_TRACE_INF("SX4.O: Core Wakes Up, Write HRMOR with HOMER address");
+
+#if EPM_P9_TUNING
+
+ CME_PUTSCOM(HRMOR, core, 0x200000);
+
+#else
+
+ CME_PUTSCOM(HRMOR, core, scom_data.value);
+
+#endif
+
+#endif
PK_TRACE_INF("SX4.P: S-Reset All Core Threads to Run Self Restore Image");
CME_PUTSCOM(DIRECT_CONTROLS, core,
OpenPOWER on IntegriCloud