summaryrefslogtreecommitdiffstats
path: root/src/occ_405/dcom
diff options
context:
space:
mode:
authormbroyles <mbroyles@us.ibm.com>2018-01-19 15:13:51 -0600
committerMartha Broyles <mbroyles@us.ibm.com>2018-01-22 11:54:15 -0500
commit577915f28604090d3b9a16e7a5a109d3afff87f9 (patch)
treefc08af9fd4b904e07a30a89f12c89faa22a2f741 /src/occ_405/dcom
parentc04d58bd549c17bece70aff18e6cb01af26feb26 (diff)
downloadtalos-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-xsrc/occ_405/dcom/dcom.c21
-rwxr-xr-xsrc/occ_405/dcom/dcom.h6
-rw-r--r--src/occ_405/dcom/dcomMasterTx.c4
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
OpenPOWER on IntegriCloud