diff options
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h | 1 | ||||
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c | 25 |
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, |

