summaryrefslogtreecommitdiffstats
path: root/src/occ_405/cmdh/cmdh_fsp_cmds.c
diff options
context:
space:
mode:
authormbroyles <mbroyles@us.ibm.com>2017-10-18 11:16:43 -0500
committerMartha Broyles <mbroyles@us.ibm.com>2017-10-26 10:34:24 -0400
commit0d7b82e82f98a9b9df97781372e50a68752d1059 (patch)
tree1e383dd5c0e344414f051977316fd78bc819c6b6 /src/occ_405/cmdh/cmdh_fsp_cmds.c
parent7449acdc8bfe422483bf9de7d9a9723156e4dd51 (diff)
downloadtalos-occ-0d7b82e82f98a9b9df97781372e50a68752d1059.tar.gz
talos-occ-0d7b82e82f98a9b9df97781372e50a68752d1059.zip
VRM Vdd Thermal Control Loop
Change-Id: Ie5771b33c13cd57822a8b6f1406a92c4516088c0 RTC: 180397 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48563 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com> Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com> Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Diffstat (limited to 'src/occ_405/cmdh/cmdh_fsp_cmds.c')
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds.c b/src/occ_405/cmdh/cmdh_fsp_cmds.c
index 86ee360..5f27ba8 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds.c
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds.c
@@ -60,6 +60,7 @@ extern bool G_vrm_vdd_temp_expired;
#include <gpe_export.h>
extern gpe_shared_data_t G_shared_gpe_data;
+extern opal_proc_voting_reason_t G_amec_opal_proc_throt_reason;
// This table contains tunable parameter information that can be exposed to
// customers (only Master OCC should access/control this table)
@@ -170,12 +171,29 @@ ERRL_RC cmdh_poll_v20(cmdh_fsp_rsp_t * o_rsp_ptr)
uint32_t l_freq_reason = g_amec->proc[0].core[k].f_reason;
if ( l_freq_reason & (AMEC_VOTING_REASON_PROC_THRM | AMEC_VOTING_REASON_VRHOT_THRM) )
{
- l_poll_rsp->ext_status.dvfs_due_to_ot = 1;
+ // only set DVFS bit if throttling below frequency to report throttling
+ if(G_amec_opal_proc_throt_reason == CPU_OVERTEMP)
+ {
+ l_poll_rsp->ext_status.dvfs_due_to_ot = 1;
+ }
+ }
+
+ if ( l_freq_reason & AMEC_VOTING_REASON_VDD_THRM )
+ {
+ // only set DVFS bit if throttling below frequency to report throttling
+ if(G_amec_opal_proc_throt_reason == VDD_OVERTEMP)
+ {
+ l_poll_rsp->ext_status.dvfs_due_to_vdd_ot = 1;
+ }
}
if ( l_freq_reason & (AMEC_VOTING_REASON_PPB | AMEC_VOTING_REASON_PMAX | AMEC_VOTING_REASON_PWR) )
{
- l_poll_rsp->ext_status.dvfs_due_to_pwr = 1;
+ // only set DVFS bit if throttling below frequency to report throttling
+ if(G_amec_opal_proc_throt_reason == POWERCAP)
+ {
+ l_poll_rsp->ext_status.dvfs_due_to_pwr = 1;
+ }
}
}
OpenPOWER on IntegriCloud