summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h10
-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.c14
3 files changed, 25 insertions, 0 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h b/import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h
index 6d76f329..63ad2414 100644
--- a/import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h
+++ b/import/chips/p9/procedures/ppe_closed/cme/pk_app_cfg.h
@@ -57,6 +57,16 @@
// being enabled on all other dd levels unless this override
#define DISABLE_CME_DUAL_CAST 0
+// NDD23 Secure Memory Support: RAM URMOR
+#if NIMBUS_DD_LEVEL >= 23 || CUMULUS_DD_LEVEL >= 13
+
+ #define SMF_SUPPORT_ENABLE 1
+
+#else
+
+ #define SMF_SUPPORT_ENABLE 0
+
+#endif
#if NIMBUS_DD_LEVEL == 20 || DISABLE_CME_DUAL_CAST == 1
// NDD2: no catchup due to dual cast bug
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 dbd9efdf..b6ad553b 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
@@ -108,6 +108,7 @@
#define IMA_EVENT_MASK 0x20010AA8
#define CORE_THREAD_STATE 0x20010AB3
#define HRMOR 0x20010AB9
+#define URMOR 0x20010ABA
#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 47fda5c0..f3aef781 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
@@ -1140,6 +1140,20 @@ p9_cme_stop_exit()
// Nimbus DD2+
#else
+#if SMF_SUPPORT_ENABLE
+
+#if EPM_P9_TUNING
+
+ CME_PUTSCOM(URMOR, core, 0xA200000);
+
+#else
+
+ PK_TRACE_INF("Core Wakes Up, Write URMOR with HOMER address");
+ CME_PUTSCOM(URMOR, core, scom_data.value);
+
+#endif
+
+#endif
#if EPM_P9_TUNING
OpenPOWER on IntegriCloud