summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYue Du <daviddu@us.ibm.com>2016-11-17 21:00:10 -0600
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2017-10-23 16:55:50 -0500
commite86a2bc722c755f5d04dcd6c7258f5ceb41ba6e2 (patch)
treeb9294780d1352565e15e98accf8688b2211886d6
parentd6ab1af3663b21708e5b15ea0166aecd63e5724a (diff)
downloadtalos-hcode-e86a2bc722c755f5d04dcd6c7258f5ceb41ba6e2.tar.gz
talos-hcode-e86a2bc722c755f5d04dcd6c7258f5ceb41ba6e2.zip
STOP: DD2 - scom hrmor instead of RAM
Change-Id: I5243f4940ef98952752171a3411f3bd4360a7cbb Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32798 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: AMIT KUMAR <akumar3@us.ibm.com> Reviewed-by: ADAM S. HALE <ashale@us.ibm.com> Dev-Ready: ADAM S. HALE <ashale@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
-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