From 330bde2507ccae78973ea670f696fa2c99b28617 Mon Sep 17 00:00:00 2001 From: Yue Du Date: Mon, 20 Feb 2017 11:38:24 -0600 Subject: IPL/Stop: Assert ABIST_SRAM_MODE_DC to support ABIST Recovery Change-Id: I4465535c32e3cde8e8e2f0f3a13bb1d66d1f7614 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36728 Tested-by: Hostboot CI Tested-by: Jenkins Server Reviewed-by: Joachim Fenkes Tested-by: PPE CI Reviewed-by: ASHISH A. MORE Reviewed-by: Jennifer A. Stofer --- .../chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_entry.c | 5 +++++ .../p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c | 5 +++++ 2 files changed, 10 insertions(+) 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 fa7a3b0b..109e929d 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 @@ -370,6 +370,11 @@ p9_cme_stop_entry() PK_TRACE("Assert skew sense to skewadjust fence via NET_CTRL0[22]"); CME_PUTSCOM(CPPM_NC0INDIR_OR, core, BIT64(22)); + PK_TRACE("Drop ABIST_SRAM_MODE_DC to support ABIST Recovery via BIST[1]"); + CME_GETSCOM(C_BIST, core, CME_SCOM_AND, scom_data.value); + scom_data.words.upper &= ~BIT32(1); + CME_PUTSCOM(C_BIST, core, scom_data.value); + PK_TRACE("Assert vital fence via CPLT_CTRL1[3]"); CME_PUTSCOM(C_CPLT_CTRL1_OR, core, BIT64(3)); diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c index 3ef16035..a44f81c0 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c @@ -68,6 +68,11 @@ p9_hcd_core_startclocks(uint32_t core) MARK_TRAP(SX_STARTCLOCKS_ALIGN) + PK_TRACE("Assert ABIST_SRAM_MODE_DC to support ABIST Recovery via BIST[1]"); + CME_GETSCOM(C_BIST, core, CME_SCOM_AND, scom_data.value); + scom_data.words.upper |= BIT32(1); + CME_PUTSCOM(C_BIST, core, scom_data.value); + PK_TRACE("Reset abstclk & syncclk muxsel(io_clk_sel) via CPLT_CTRL0[0:1]"); CME_PUTSCOM(C_CPLT_CTRL0_CLEAR, core, BITS64(0, 2)); -- cgit v1.2.3