import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_pmcr.c
//
// Run this when all inits are done
//
Run this when all inits are done
Run this when all inits are done
void p9_cme_init_done()
{
    PK_TRACE_INF("CME INIT DONE: Enter");
    uint32_t msg;
    if(G_cme_pstate_record.qmFlag)
    {
        if(G_cme_pstate_record.siblingCMEFlag)
        {
            intercme_msg_send(0, IMT_SYNC_SIBLING);
        }
    }
    else
    {
        intercme_msg_recv(&msg, IMT_SYNC_SIBLING);
        out32(G_CME_LCL_EIMR_CLR, BIT32(29));
    }
    out32(G_CME_LCL_FLAGS_OR, BIT32(CME_FLAGS_PMCR_READY));
    PK_TRACE_INF("CME INIT DONE: Exit");
}
void p9_cme_init_done ( ) { PK_TRACE_INF ( " " ) ; uint32_t msg ; if ( G_cme_pstate_record . qmFlag ) { if ( G_cme_pstate_record . siblingCMEFlag ) { intercme_msg_send ( 0 , IMT_SYNC_SIBLING ) ; } } else { intercme_msg_recv ( & msg , IMT_SYNC_SIBLING ) ; out32 ( G_CME_LCL_EIMR_CLR , BIT32 ( 29 ) ) ; } out32 ( G_CME_LCL_FLAGS_OR , BIT32 ( CME_FLAGS_PMCR_READY ) ) ; PK_TRACE_INF ( " " ) ; }
Run this when all inits are done
Run this when all inits are done
// Synchronization between QM and Sibling // @todo RTC173279 move into CME init function // Synchronize QACCR setting w/ sibling CME // Unmask the COMM_RECVD interrupt for the intercme msg handler // This is the current barrier for SGPE booting the CMEs, any and all // initialization must be completed prior!