diff options
author | Rahul Batra <rbatra@us.ibm.com> | 2017-04-21 12:13:01 -0500 |
---|---|---|
committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-10-23 17:27:12 -0500 |
commit | 0d1e8b1d38892605ea4f281855aa12c537712c91 (patch) | |
tree | 57b47d365168a530e8b73d06e03650f73fa3ed0f /import | |
parent | 11ae96a208f1dc5a7f935b4f1ef0af695dfc9c86 (diff) | |
download | talos-hcode-0d1e8b1d38892605ea4f281855aa12c537712c91.tar.gz talos-hcode-0d1e8b1d38892605ea4f281855aa12c537712c91.zip |
PGPE: Standalone System Parameters Calculation Fix
Change-Id: Ia03118d9a63b76383d298d898a481199686d63bd
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39551
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Diffstat (limited to 'import')
-rw-r--r-- | import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_gppb.c | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_gppb.c b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_gppb.c index 844ade02..74df5596 100644 --- a/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_gppb.c +++ b/import/chips/p9/procedures/ppe_closed/pgpe/pstate_gpe/p9_pgpe_gppb.c @@ -28,6 +28,7 @@ //Global pointer to GlobalPstateParmBlock GlobalPstateParmBlock* G_gppb; +//VpdOperatingPoint *G_gppb->operating_points_set[NUM_VPD_PTS_SET][VPD_PV_POINTS]; uint32_t G_pstate0_dpll_value; uint32_t G_ext_vrm_inc_rate_mult_usperus; uint32_t G_ext_vrm_dec_rate_mult_usperus; @@ -90,6 +91,8 @@ void p9_pgpe_gppb_compute_vpd_pts() G_gppb->operating_points_set[VPD_PT_SET_RAW][p].ics_100ma = G_gppb->operating_points[p].ics_100ma; G_gppb->operating_points_set[VPD_PT_SET_RAW][p].frequency_mhz = G_gppb->operating_points[p].frequency_mhz; G_gppb->operating_points_set[VPD_PT_SET_RAW][p].pstate = G_gppb->operating_points[p].pstate; + PK_TRACE_INF("GP:PS=%x,Vdd=%x", G_gppb->operating_points_set[VPD_PT_SET_RAW][p].vdd_mv, + G_gppb->operating_points_set[VPD_PT_SET_RAW][p].frequency_mhz); } //SYSTEM PARAMS APPLIED POINTS @@ -98,19 +101,21 @@ void p9_pgpe_gppb_compute_vpd_pts() for (p = 0; p < VPD_PV_POINTS; p++) { G_gppb->operating_points_set[VPD_PT_SET_SYSP][p].vdd_mv = - (G_gppb->operating_points[p].vdd_mv * 1000 + - ((G_gppb->operating_points[p].idd_100ma * 100) * (G_gppb->vdd_sysparm.loadline_uohm + - G_gppb->vdd_sysparm.distloss_uohm)) + + G_gppb->operating_points[p].vdd_mv + + (((G_gppb->operating_points[p].idd_100ma * 100) * (G_gppb->vdd_sysparm.loadline_uohm + + G_gppb->vdd_sysparm.distloss_uohm)) / 1000 + (G_gppb->vdd_sysparm.distoffset_uv)) / 1000 ; G_gppb->operating_points_set[VPD_PT_SET_SYSP][p].vcs_mv = - (G_gppb->operating_points[p].vcs_mv * 1000 + - ((G_gppb->operating_points[p].ics_100ma * 100) * (G_gppb->vcs_sysparm.loadline_uohm + - G_gppb->vcs_sysparm.distloss_uohm)) + + G_gppb->operating_points[p].vcs_mv + + (((G_gppb->operating_points[p].ics_100ma * 100) * (G_gppb->vcs_sysparm.loadline_uohm + + G_gppb->vcs_sysparm.distloss_uohm)) / 1000 + (G_gppb->vcs_sysparm.distoffset_uv)) / 1000 ; G_gppb->operating_points_set[VPD_PT_SET_SYSP][p].idd_100ma = G_gppb->operating_points[p].idd_100ma; G_gppb->operating_points_set[VPD_PT_SET_SYSP][p].ics_100ma = G_gppb->operating_points[p].ics_100ma; G_gppb->operating_points_set[VPD_PT_SET_SYSP][p].frequency_mhz = G_gppb->operating_points[p].frequency_mhz; G_gppb->operating_points_set[VPD_PT_SET_SYSP][p].pstate = G_gppb->operating_points[p].pstate; + PK_TRACE_INF("SP:PS=%x,Vdd=%x", G_gppb->operating_points_set[VPD_PT_SET_SYSP][p].vdd_mv, + G_gppb->operating_points_set[VPD_PT_SET_SYSP][p].frequency_mhz); } //BIASED POINTS @@ -124,6 +129,8 @@ void p9_pgpe_gppb_compute_vpd_pts() G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].ics_100ma = G_gppb->operating_points[p].ics_100ma; G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].frequency_mhz = (G_gppb->operating_points[p].frequency_mhz * (200 + G_gppb->ext_biases[p].frequency_hp)) / 200; + PK_TRACE_INF("Bi:PS=%x,Vdd=%x", G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].vdd_mv, + G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].frequency_mhz); } for (p = 0; p < VPD_PV_POINTS; p++) @@ -141,14 +148,14 @@ void p9_pgpe_gppb_compute_vpd_pts() for (p = 0; p < VPD_PV_POINTS; p++) { G_gppb->operating_points_set[VPD_PT_SET_BIASED_SYSP][p].vdd_mv = - ((G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].vdd_mv * 1000) + - ((G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].idd_100ma * 100) * - (G_gppb->vdd_sysparm.loadline_uohm + G_gppb->vdd_sysparm.distloss_uohm)) + + (G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].vdd_mv ) + + (((G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].idd_100ma * 100) * + (G_gppb->vdd_sysparm.loadline_uohm + G_gppb->vdd_sysparm.distloss_uohm)) / 1000 + (G_gppb->vdd_sysparm.distoffset_uv)) / 1000 ; G_gppb->operating_points_set[VPD_PT_SET_BIASED_SYSP][p].vcs_mv = - ((G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].vcs_mv * 1000) + - ((G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].ics_100ma * 100) * - (G_gppb->vcs_sysparm.loadline_uohm + G_gppb->vcs_sysparm.distloss_uohm)) + + (G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].vcs_mv ) + + (((G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].ics_100ma * 100) * + (G_gppb->vcs_sysparm.loadline_uohm + G_gppb->vcs_sysparm.distloss_uohm)) / 1000 + (G_gppb->vcs_sysparm.distoffset_uv)) / 1000 ; G_gppb->operating_points_set[VPD_PT_SET_BIASED_SYSP][p].idd_100ma = G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].idd_100ma; @@ -158,6 +165,8 @@ void p9_pgpe_gppb_compute_vpd_pts() G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].frequency_mhz; G_gppb->operating_points_set[VPD_PT_SET_BIASED_SYSP][p].pstate = G_gppb->operating_points_set[VPD_PT_SET_BIASED][p].pstate; + PK_TRACE_INF("BS:PS=%x,Vdd=%x", G_gppb->operating_points_set[VPD_PT_SET_BIASED_SYSP][p].vdd_mv, + G_gppb->operating_points_set[VPD_PT_SET_BIASED_SYSP][p].frequency_mhz); } } @@ -277,6 +286,7 @@ void p9_pgpe_gppb_compute_PsV_slopes() / (uint32_t) (G_gppb->operating_points_set[VPD_PT_SET_BIASED][ULTRA].vdd_mv - G_gppb->operating_points_set[VPD_PT_SET_BIASED][TURBO].vdd_mv); G_gppb->VPsSlopes[VPD_SLOPES_BIASED][REGION_TURBO_ULTRA] = tmp; + } // |