summaryrefslogtreecommitdiffstats
path: root/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c
diff options
context:
space:
mode:
authorRahul Batra <rbatra@us.ibm.com>2017-08-22 19:24:51 -0500
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2017-10-23 19:02:51 -0500
commitd486113d5b5e63a39ddffaac355fa20211e1ca69 (patch)
treed5daf805a14ab25829fd532fe44d6bf54f7dc2d9 /import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_pstate.c
parentdb517d94db674f2b83d7edc477afc1aa82a336db (diff)
downloadtalos-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.c21
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);
OpenPOWER on IntegriCloud