diff options
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_main.c | 3 | ||||
| -rw-r--r-- | import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_sgpe_boot_cme.c | 4 |
2 files changed, 7 insertions, 0 deletions
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)) |

