diff options
author | mbroyles <mbroyles@us.ibm.com> | 2016-09-19 11:54:55 -0500 |
---|---|---|
committer | Martha Broyles <mbroyles@us.ibm.com> | 2016-09-29 11:28:53 -0400 |
commit | a57f623c26bdf3889703ed63334745c966c6096d (patch) | |
tree | b2f81389aa3bf5a420c6a115d8c10ae787375ede /src/occ_405/amec/amec_data.c | |
parent | d137bd848a05d5afd8a9ee5c9803f421ebd0a922 (diff) | |
download | talos-occ-a57f623c26bdf3889703ed63334745c966c6096d.tar.gz talos-occ-a57f623c26bdf3889703ed63334745c966c6096d.zip |
Enable power capping and oversubscription. RTC:137621 RTC:133156
Change-Id: I98b745ccb56d89d066508d4195250b1bf446dbc6
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29898
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@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/amec/amec_data.c')
-rwxr-xr-x | src/occ_405/amec/amec_data.c | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/occ_405/amec/amec_data.c b/src/occ_405/amec/amec_data.c index a658f63..c5bde89 100755 --- a/src/occ_405/amec/amec_data.c +++ b/src/occ_405/amec/amec_data.c @@ -1,11 +1,11 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/occ/amec/amec_data.c $ */ +/* $Source: src/occ_405/amec/amec_data.c $ */ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2015 */ +/* Contributors Listed Below - COPYRIGHT 2011,2016 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -110,9 +110,10 @@ errlHndl_t AMEC_data_write_fcurr(const OCC_MODE i_mode) } } - // If we are in OpenPower environment, load this new range into DVFS - // min/max for AMEC component - if(G_occ_interrupt_type != FSP_SUPPORTED_OCC) + // If we are in OpenPower environment with OPAL, load this new range into DVFS + // min/max for AMEC component. PowerVM on BMC and FSP the min/max is set above + // in amec_set_freq_range() based on mode + if((G_occ_interrupt_type != FSP_SUPPORTED_OCC) && (G_sysConfigData.system_type.kvm)) { g_amec->sys.fmax = G_proc_fmax; g_amec->sys.fmin = G_proc_fmin; // = G_sysConfigData.sys_mode_freq.table[OCC_MODE_MIN_FREQUENCY] @@ -131,8 +132,7 @@ errlHndl_t AMEC_data_write_fcurr(const OCC_MODE i_mode) // // Description: This function loads data from the Thermal Control Threshold // data packet (format 0x13) into g_amec structure. This function should be -// called when OCC goes active or changes modes or goes in/out of Acoustic -// mode (ITE-only mode). +// called when OCC goes active or changes modes // // Thread: RealTime Loop // @@ -166,8 +166,6 @@ errlHndl_t AMEC_data_write_thrm_thresholds(const OCC_MODE i_mode) l_frudata = l_data->data; - // TODO: Need to check if acoustic mode has been enabled (ITE-only mode) - // Store the processor thermal data if(i_mode == OCC_MODE_NOMINAL) { @@ -346,6 +344,11 @@ errlHndl_t AMEC_data_change(const uint32_t i_data_mask) if(i_data_mask & DATA_MASK_FREQ_PRESENT) { l_err = AMEC_data_write_fcurr(l_cur_mode); + + if(l_err) + { + TRAC_ERR("AMEC_data_change: Error writing frequency range!"); + } } else if(i_data_mask & DATA_MASK_THRM_THRESHOLDS) { @@ -405,13 +408,6 @@ void amec_data_write_pcap(void) memcpy(&(G_sysConfigData.pcap),&(G_dcom_slv_inbox_doorbell_rx.pcap), sizeof(pcap_config_data_t)); - //Affects ITE ONLY: Check if it's ok (1) to exit the oversubscribed state - if(1 == G_sysConfigData.pcap.unthrottle) - { - //Clear throttle flag - g_amec->oversub_status.cmeThrottleLatchAmec = 0; - } - //Check node power cap requested by customer/system. // 0 means there is no pcap for that parameter. if(0 == G_sysConfigData.pcap.current_pcap) |