diff options
author | mbroyles <mbroyles@us.ibm.com> | 2017-05-15 16:51:19 -0500 |
---|---|---|
committer | Martha Broyles <mbroyles@us.ibm.com> | 2017-05-17 09:23:34 -0400 |
commit | 8a7df03ba3d475d51f8507a0424b63868cca7e8a (patch) | |
tree | cc599fcba941268583a4db4b9375c6944809e70f /src/occ_405/amec/amec_pcap.c | |
parent | e919c4a61d53fb909beee113f43c4d3da8b2c77a (diff) | |
download | talos-occ-8a7df03ba3d475d51f8507a0424b63868cca7e8a.tar.gz talos-occ-8a7df03ba3d475d51f8507a0424b63868cca7e8a.zip |
Initial support to handle no APSS
Change-Id: Ia14aebaf44e9a0a3d2e14a4ff3803793350986b4
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40521
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Reviewed-by: Wael El-Essawy <welessa@us.ibm.com>
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Diffstat (limited to 'src/occ_405/amec/amec_pcap.c')
-rwxr-xr-x | src/occ_405/amec/amec_pcap.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/src/occ_405/amec/amec_pcap.c b/src/occ_405/amec/amec_pcap.c index 24557d4..b5cad52 100755 --- a/src/occ_405/amec/amec_pcap.c +++ b/src/occ_405/amec/amec_pcap.c @@ -50,6 +50,7 @@ //*************************************************************************/ // Globals //*************************************************************************/ +extern bool G_apss_present; //Number of ticks to wait before dropping below nominal frequency #define PWR_SETTLED_TICKS 4 @@ -373,18 +374,28 @@ void amec_power_control(void) /* Code */ /*------------------------------------------------------------------------*/ - // Calculate the pcap for the proc, memory and the power capping limit - // for nominal cores. - amec_pcap_calc(); - - // skip processor changes until memory is un-capped - if(!g_amec->pcap.active_mem_level) + if(G_apss_present) { - // Calculate voting box input freq for staying with the current pcap - amec_pcap_controller(); - - // Calculate the performance preserving bounds voting box input freq - amec_ppb_fmax_calc(); + // Calculate the pcap for the proc, memory and the power capping limit + // for nominal cores. + amec_pcap_calc(); + + // skip processor changes until memory is un-capped + if(!g_amec->pcap.active_mem_level) + { + // Calculate voting box input freq for staying with the current pcap + amec_pcap_controller(); + + // Calculate the performance preserving bounds voting box input freq + amec_ppb_fmax_calc(); + } + } + else + { + // No system power reading for power capping set pcap frequency votes to max + g_amec->proc[0].pwr_votes.proc_pcap_nom_vote = G_proc_fmax_mhz; + g_amec->proc[0].pwr_votes.proc_pcap_vote = G_proc_fmax_mhz; + g_amec->proc[0].pwr_votes.ppb_fmax = G_proc_fmax_mhz; } } |