diff options
author | mbroyles <mbroyles@us.ibm.com> | 2018-01-19 15:13:51 -0600 |
---|---|---|
committer | Martha Broyles <mbroyles@us.ibm.com> | 2018-01-22 11:54:15 -0500 |
commit | 577915f28604090d3b9a16e7a5a109d3afff87f9 (patch) | |
tree | fc08af9fd4b904e07a30a89f12c89faa22a2f741 /src/occ_405/dcom | |
parent | c04d58bd549c17bece70aff18e6cb01af26feb26 (diff) | |
download | talos-occ-577915f28604090d3b9a16e7a5a109d3afff87f9.tar.gz talos-occ-577915f28604090d3b9a16e7a5a109d3afff87f9.zip |
Add WOF disable param for ASM
RTC: 130217
CQ: SW414505
Change-Id: I9a91b4d3796a672bbdb3ba01c8080174da9d5733
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52281
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@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/dcom')
-rwxr-xr-x | src/occ_405/dcom/dcom.c | 21 | ||||
-rwxr-xr-x | src/occ_405/dcom/dcom.h | 6 | ||||
-rw-r--r-- | src/occ_405/dcom/dcomMasterTx.c | 4 |
3 files changed, 27 insertions, 4 deletions
diff --git a/src/occ_405/dcom/dcom.c b/src/occ_405/dcom/dcom.c index 26565fb..8db1337 100755 --- a/src/occ_405/dcom/dcom.c +++ b/src/occ_405/dcom/dcom.c @@ -595,12 +595,31 @@ void task_dcom_parse_occfwmsg(task_t *i_self) if(G_dcom_slv_inbox_rx.tunable_param_overwrite == 1) { + // parameter(s) overwritten by user g_amec->slv_dps_param_overwrite = TRUE; } - else + else // ==2 use defaults for all parameters { g_amec->slv_dps_param_overwrite = FALSE; } + + // check if user has WOF enabled + if(G_dcom_slv_inbox_rx.wof_enable) + { + if(g_amec->wof.wof_disabled & WOF_RC_USER_DISABLED_WOF) + { + set_clear_wof_disabled( CLEAR, WOF_RC_USER_DISABLED_WOF ); + TRAC_INFO("User enabled WOF! wof_disabled = 0x%08X", g_amec->wof.wof_disabled); + } + } + else // user has WOF disabled + { + if(!(g_amec->wof.wof_disabled & WOF_RC_USER_DISABLED_WOF)) + { + set_clear_wof_disabled( SET, WOF_RC_USER_DISABLED_WOF ); + TRAC_INFO("User disabled WOF! wof_disabled = 0x%08X", g_amec->wof.wof_disabled); + } + } } // Copy soft frequency boundaries sent by Master OCC diff --git a/src/occ_405/dcom/dcom.h b/src/occ_405/dcom/dcom.h index e730a76..3798c25 100755 --- a/src/occ_405/dcom/dcom.h +++ b/src/occ_405/dcom/dcom.h @@ -167,11 +167,11 @@ typedef struct __attribute__ ((packed)) uint16_t step_down; // [62] - 2 bytes uint16_t epsilon_perc; // [64] - 2 bytes uint16_t tlutil; // [66] - 2 bytes - uint8_t tunable_param_overwrite; // [68] - 1 byte + uint8_t wof_enable; // [68] - 1 byte + uint8_t tunable_param_overwrite; // [69] - 1 byte // Soft frequency boundaries - uint16_t soft_fmin; // [69] - 2 bytes - uint8_t pad; // [71] - 1 bytes + uint16_t soft_fmin; // [70] - 2 bytes uint16_t soft_fmax; // [72] - 2 bytes // Reserved Bytes diff --git a/src/occ_405/dcom/dcomMasterTx.c b/src/occ_405/dcom/dcomMasterTx.c index 7ba80e3..318ac25 100644 --- a/src/occ_405/dcom/dcomMasterTx.c +++ b/src/occ_405/dcom/dcomMasterTx.c @@ -134,6 +134,8 @@ uint32_t dcom_build_slv_inbox(void) G_dcom_slv_inbox_tx[l_slv_idx].ips_freq_request = g_amec->mst_ips_parms.freq_request; // Collect Tunable Paramaters to be sent to slaves + // Tunable IDs defined in G_mst_tunable_parameter_table[] + // G_mst_tunable_parameter_table_ext index = Tunable ID - 1 G_dcom_slv_inbox_tx[l_slv_idx].alpha_up = G_mst_tunable_parameter_table_ext[0].adj_value; G_dcom_slv_inbox_tx[l_slv_idx].alpha_down = G_mst_tunable_parameter_table_ext[1].adj_value; G_dcom_slv_inbox_tx[l_slv_idx].sample_count_util = G_mst_tunable_parameter_table_ext[2].adj_value; @@ -141,6 +143,8 @@ uint32_t dcom_build_slv_inbox(void) G_dcom_slv_inbox_tx[l_slv_idx].step_down = G_mst_tunable_parameter_table_ext[4].adj_value; G_dcom_slv_inbox_tx[l_slv_idx].epsilon_perc = G_mst_tunable_parameter_table_ext[5].adj_value; G_dcom_slv_inbox_tx[l_slv_idx].tlutil = G_mst_tunable_parameter_table_ext[6].adj_value; + // parameters at index 7 and 8 (f delta between cores) are used by master only and not sent to slaves + G_dcom_slv_inbox_tx[l_slv_idx].wof_enable = G_mst_tunable_parameter_table_ext[9].adj_value; G_dcom_slv_inbox_tx[l_slv_idx].tunable_param_overwrite = G_mst_tunable_parameter_overwrite; // Collect soft frequency bondaries to be sent to slaves |