diff options
author | Andres Lugo-Reyes <aalugore@us.ibm.com> | 2017-01-17 17:22:51 -0600 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2017-03-01 16:30:53 -0500 |
commit | a9a7cdf2c5bf06d84a2012bbea51b38ea7f48089 (patch) | |
tree | f0a4419365bd7ab8110880b39d6066107ed87e77 /src/occ_405/cmdh | |
parent | 525318b3a87d45d1158b720264cbce84095809d4 (diff) | |
download | talos-occ-a9a7cdf2c5bf06d84a2012bbea51b38ea7f48089.tar.gz talos-occ-a9a7cdf2c5bf06d84a2012bbea51b38ea7f48089.zip |
WOF: Function to calculate core voltage and leakage
Change-Id: Ica95c4030c81c959e834797ef998af7d025cf250
RTC:130216
Depends-on: I33bce916dc2dffef6a6d616633a5f1266d7baa7e
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35759
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/cmdh')
-rwxr-xr-x | src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c index 2c7e90b..8afaf67 100755 --- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c +++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2016 */ +/* Contributors Listed Below - COPYRIGHT 2011,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -44,6 +44,7 @@ #include "memory.h" #include <avsbus.h> #include "p9_pstates_occ.h" +#include <wof.h> #define FREQ_FORMAT_PWR_MODE_NUM 6 #define FREQ_FORMAT_BASE_DATA_SZ (sizeof(cmdh_store_mode_freqs_t) - sizeof(cmdh_fsp_cmd_header_t)) @@ -1094,14 +1095,21 @@ errlHndl_t data_store_avsbus_config(const cmdh_fsp_cmd_t * i_cmd_ptr, l_invalid_data = TRUE; } - if (l_invalid_data) + if (l_invalid_data || !G_avsbus_vdd_monitoring || !G_avsbus_vdn_monitoring) { cmdh_build_errl_rsp(i_cmd_ptr, o_rsp_ptr, ERRL_RC_INVALID_DATA, &l_err); G_avsbus_vdd_monitoring = FALSE; G_avsbus_vdn_monitoring = FALSE; + + // If cannot use vdd/vdn, cannot run wof algorithm. + g_amec->wof.wof_disabled |= WOF_RC_NO_VDD_VDN_READ_MASK; + } else { + // We can use vdd/vdn. Clear NO_VDD_VDN_READ mask + g_amec->wof.wof_disabled &= ~WOF_RC_NO_VDD_VDN_READ_MASK; + avsbus_init(); } |