From ca23decaa3e9f2385bdf5486338dacd8b9031597 Mon Sep 17 00:00:00 2001 From: Yue Du Date: Wed, 18 Oct 2017 16:22:44 -0500 Subject: STOP: Clear OCC LFIR and CME LFIR halted bits on PPE boots Change-Id: Ic59752c6896ef88857cdbb912e2d368845c11f89 Original-Change-Id: I60649b9d924414038c3575ee65985cb93e0c060c CQ: SW406206 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48596 Reviewed-by: Michael S. Floyd Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: Gregory S. Still Reviewed-by: Jennifer A. Stofer --- import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_main.c | 3 +++ .../p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_sgpe_boot_cme.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_main.c b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_main.c index aa016191..38f5b010 100644 --- a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_main.c +++ b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_main.c @@ -190,6 +190,9 @@ main(int argc, char** argv) asm volatile ("trap"); } + // Clear OCC LFIR[24] (gpe2_halted) bit upon PGPE boot + GPE_PUTSCOM(OCB_OCCLFIR_AND, ~BIT64(24)); + // Initialize the thread control block for G_p9_pgpe_thread_process_requests pk_thread_create(&G_p9_pgpe_thread_process_requests, (PkThreadRoutine)p9_pgpe_thread_process_requests, diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_sgpe_boot_cme.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_sgpe_boot_cme.c index 5303636c..5e2df674 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_sgpe_boot_cme.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_sgpe_boot_cme.c @@ -385,6 +385,10 @@ BootErrorCode_t boot_cme( uint16_t i_bootCme ) continue; } + // Clear CME LFIR[5] (ppe_halted) upon respective CME boot + GPE_PUTSCOM(GPE_SCOM_ADDR_CME(CME_SCOM_LFIR_AND, + (l_cmeIndex >> 1), (l_cmeIndex % 2)), ~BIT64(5)); + #if (NIMBUS_DD_LEVEL < 21 || CUMULUS_DD_LEVEL == 10) || DISABLE_STOP8 == 1 if(l_dataReg & BIT64(CME_FLAGS_RCLK_OPERABLE)) -- cgit v1.2.3