diff options
author | Rahul Batra <rbatra@us.ibm.com> | 2017-08-22 19:24:51 -0500 |
---|---|---|
committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-10-23 19:02:51 -0500 |
commit | d486113d5b5e63a39ddffaac355fa20211e1ca69 (patch) | |
tree | d5daf805a14ab25829fd532fe44d6bf54f7dc2d9 /import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c | |
parent | db517d94db674f2b83d7edc477afc1aa82a336db (diff) | |
download | talos-hcode-d486113d5b5e63a39ddffaac355fa20211e1ca69.tar.gz talos-hcode-d486113d5b5e63a39ddffaac355fa20211e1ca69.zip |
PGPE: Moved VDMCFG Multicast to direct SCOMs
Change-Id: Iacfc5e682f3854dc3add720f4af0218819fc79ab
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45015
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Reviewed-by: Juan R. Medina <jrmedina@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Diffstat (limited to 'import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c')
-rw-r--r-- | import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c index e54595bc..9ec2c5d6 100644 --- a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c +++ b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c @@ -1301,7 +1301,7 @@ void p9_pgpe_pstate_do_step() void p9_pgpe_pstate_updt_ext_volt(uint32_t tgtEVid) { qppm_vdmcfgr_t vdmcfg; - uint32_t cmeInterppmVdataEnableSet[MAX_QUADS], q; + uint32_t cmeInterppmVdataEnableSet, q; qppm_qpmmr_t qpmmr; #if !EPM_P9_TUNING @@ -1345,29 +1345,24 @@ void p9_pgpe_pstate_updt_ext_volt(uint32_t tgtEVid) //If VDM is disabled, update VDMCFG register for every quad if (!(G_pgpe_header_data->g_pgpe_qm_flags & BIT16( PGPE_HEADER_FLAGS_VDM_ENABLE))) { + vdmcfg.value = 0; + vdmcfg.fields.vdm_vid_compare = (G_pgpe_pstate_record.eVidCurr - 512) >> 2; + for (q = 0; q < MAX_QUADS; q++) { if (G_pgpe_pstate_record.activeQuads & QUAD_MASK(q)) { //Take away CME control by writing to QPMMR GPE_GETSCOM(GPE_SCOM_ADDR_QUAD(QPPM_QPMMR, q), qpmmr.value); - cmeInterppmVdataEnableSet[q] = qpmmr.fields.cme_interppm_vdata_enable; + cmeInterppmVdataEnableSet = qpmmr.fields.cme_interppm_vdata_enable; qpmmr.value = BIT64(24); GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(QPPM_QPMMR_CLR, q), qpmmr.value); - } - } - //Update 0:7 of VDMCFG - vdmcfg.value = 0; - vdmcfg.fields.vdm_vid_compare = (G_pgpe_pstate_record.eVidCurr - 512) >> 2; - GPE_PUTSCOM(PCB_MULTICAST_GRP4 | 0xf01b6, vdmcfg.value); + //Update 0:7 of VDMCFG + GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(QPPM_VDMCFGR, q), vdmcfg.value); - for (q = 0; q < MAX_QUADS; q++) - { - if (G_pgpe_pstate_record.activeQuads & QUAD_MASK(q)) - { //Restore QPMMR - if (cmeInterppmVdataEnableSet[q] == 1) + if (cmeInterppmVdataEnableSet == 1) { qpmmr.value = BIT64(24); GPE_PUTSCOM(GPE_SCOM_ADDR_QUAD(QPPM_QPMMR_OR, q), qpmmr.value); |