summaryrefslogtreecommitdiffstats
path: root/import/chips/p9/procedures/ppe_closed/cme
diff options
context:
space:
mode:
Diffstat (limited to 'import/chips/p9/procedures/ppe_closed/cme')
-rw-r--r--import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c b/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c
index e7b245f4..c75b6c27 100644
--- a/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c
+++ b/import/chips/p9/procedures/ppe_closed/cme/pstate_cme/p9_cme_thread_db.c
@@ -62,6 +62,7 @@ cme_pstate_db_data_t G_db_thread_data;
//Function Prototypes
//
inline void p9_cme_pstate_process_db0();
+inline void p9_cme_pstate_register();
inline void p9_cme_pstate_db0_start(cppm_cmedb0_t dbData, uint32_t cme_flags);
inline void p9_cme_pstate_db0_glb_bcast(cppm_cmedb0_t dbData, uint32_t cme_flags);
inline void p9_cme_pstate_db0_suspend(cppm_cmedb0_t dbData, uint32_t cme_flags);
@@ -279,6 +280,9 @@ void p9_cme_pstate_db_thread(void* arg)
//and won't run this thread past this point.
if (G_cme_pstate_record.qmFlag)
{
+ //Register with PGPE
+ p9_cme_pstate_register();
+
pk_semaphore_create(&G_cme_pstate_record.sem[1], 0, 1);
PK_TRACE("DB_TH: Inited\n");
@@ -344,6 +348,19 @@ inline void p9_cme_pstate_process_db0()
PK_TRACE_INF("DB_TH: Process DB0 Exit\n");
}
+
+inline void p9_cme_pstate_register()
+{
+ //Send type4(ack doorbell)
+ ppm_pig_t ppmPigData;
+ ppmPigData.value = 0;
+ ppmPigData.fields.req_intr_type = 4;
+ ppmPigData.fields.req_intr_payload = MSGID_PCB_TYPE4_QUAD_MGR_AVAILABLE;
+ send_pig_packet(ppmPigData.value, G_cme_pstate_record.cmeMaskGoodCore);
+
+ PK_TRACE_INF("DB_TH: Register Msg Sent\n");
+}
+
//
//Doorbell0 Start
//
OpenPOWER on IntegriCloud