summaryrefslogtreecommitdiffstats
path: root/src/occ_405/cmdh
diff options
context:
space:
mode:
Diffstat (limited to 'src/occ_405/cmdh')
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds.c22
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds.h1
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c31
-rwxr-xr-xsrc/occ_405/cmdh/cmdh_snapshot.c8
4 files changed, 39 insertions, 23 deletions
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds.c b/src/occ_405/cmdh/cmdh_fsp_cmds.c
index 90c6d3b..b1205f2 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds.c
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds.c
@@ -682,6 +682,28 @@ ERRL_RC cmdh_poll_v20(cmdh_fsp_rsp_t * o_rsp_ptr)
}
l_sensorHeader.count++;
+ l_extnSensorList[l_sensorHeader.count].name = EXTN_NAME_CLIP;
+ // get Pstate for the current minimum maximum frequency OCC is allowing
+ // actual frequency is driven down by the lowest max frequency across all cores
+ freq = g_amec->proc[0].core_min_freq;
+ if (freq > 0)
+ {
+ l_extnSensorList[l_sensorHeader.count].data[0] = proc_freq2pstate(freq);
+ }
+ else
+ {
+ l_extnSensorList[l_sensorHeader.count].data[0] = 0xFF;
+ }
+
+ // current counter will be 0 if not currently clipping
+ l_extnSensorList[l_sensorHeader.count].data[1] = g_amec->proc[0].current_clip_count;
+ // clip history reason
+ l_extnSensorList[l_sensorHeader.count].data[2] = CONVERT_UINT32_UINT8_UPPER_HIGH(g_amec->proc[0].chip_f_reason_history);
+ l_extnSensorList[l_sensorHeader.count].data[3] = CONVERT_UINT32_UINT8_UPPER_LOW(g_amec->proc[0].chip_f_reason_history);
+ l_extnSensorList[l_sensorHeader.count].data[4] = CONVERT_UINT32_UINT8_LOWER_HIGH(g_amec->proc[0].chip_f_reason_history);
+ l_extnSensorList[l_sensorHeader.count].data[5] = CONVERT_UINT32_UINT8_LOWER_LOW(g_amec->proc[0].chip_f_reason_history);
+ l_sensorHeader.count++;
+
// add any non-0 error history counts
for(l_err_hist_idx=0; l_err_hist_idx < ERR_HISTORY_SIZE; l_err_hist_idx++)
{
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds.h b/src/occ_405/cmdh/cmdh_fsp_cmds.h
index feb424a..ae85339 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds.h
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds.h
@@ -69,6 +69,7 @@ typedef enum
#define EXTN_NAME_FNOM 0x464E4F4D // "FNOM"
#define EXTN_NAME_FTURBO 0x46540000 // "FT"
#define EXTN_NAME_FUTURBO 0x46555400 // "FUT"
+#define EXTN_NAME_CLIP 0x434C4950 // "CLIP"
#define EXTN_NAME_ERRHIST 0x45525248 // "ERRH"
#define MAX_EXTN_SENSORS 32
diff --git a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
index e60f3c7..950466e 100755
--- a/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
+++ b/src/occ_405/cmdh/cmdh_fsp_cmds_datacnfg.c
@@ -260,6 +260,7 @@ errlHndl_t data_store_freq_data(const cmdh_fsp_cmd_t * i_cmd_ptr,
uint32_t l_mode_data_sz;
uint16_t l_freq = 0;
uint16_t l_table[OCC_MODE_COUNT] = {0};
+ uint16_t l_pgpe_max_freq_mhz = (G_oppb.frequency_max_khz / 1000);
do
{
@@ -303,13 +304,13 @@ errlHndl_t data_store_freq_data(const cmdh_fsp_cmd_t * i_cmd_ptr,
break;
}
- // This should never happen but verify that nominal frequency is <= G_proc_fmax_mhz
- if(l_freq > G_proc_fmax_mhz)
+ // This should never happen but verify that nominal frequency is <= OPPB max
+ if(l_freq > l_pgpe_max_freq_mhz)
{
CMDH_TRAC_ERR("Nominal Frequency[%d] (MHz)) is higher than "
- "G_proc_fmax_mhz[%d], clipping Nominal Frequency",
- l_freq, G_proc_fmax_mhz);
- l_freq = G_proc_fmax_mhz;
+ "OPPB max[%d], clipping Nominal Frequency",
+ l_freq, l_pgpe_max_freq_mhz);
+ l_freq = l_pgpe_max_freq_mhz;
}
l_table[OCC_MODE_NOMINAL] = l_freq;
@@ -325,13 +326,13 @@ errlHndl_t data_store_freq_data(const cmdh_fsp_cmd_t * i_cmd_ptr,
l_table[OCC_MODE_NOMINAL]);
l_freq = l_table[OCC_MODE_NOMINAL];
}
- // Verify that turbo frequency is <= G_proc_fmax_mhz
- else if(l_freq > G_proc_fmax_mhz)
+ // Verify that turbo frequency is <= OPPB max
+ else if(l_freq > l_pgpe_max_freq_mhz)
{
CMDH_TRAC_ERR("Turbo Frequency[%d] (MHz)) is higher than "
- "G_proc_fmax_mhz[%d], clip Turbo Frequency",
- l_freq, G_proc_fmax_mhz);
- l_freq = G_proc_fmax_mhz;
+ "OPPB max[%d], clip Turbo Frequency",
+ l_freq, l_pgpe_max_freq_mhz);
+ l_freq = l_pgpe_max_freq_mhz;
}
l_table[OCC_MODE_TURBO] = l_freq;
CMDH_TRAC_INFO("Turbo frequency = %d MHz", l_freq);
@@ -351,13 +352,13 @@ errlHndl_t data_store_freq_data(const cmdh_fsp_cmd_t * i_cmd_ptr,
// Bytes 9-10 Ultr Turbo Frequency Point
l_freq = (l_buf[6] << 8 | l_buf[7]);
- // Verify that ultra turbo frequency is <= G_proc_fmax_mhz
- if(l_freq > G_proc_fmax_mhz)
+ // Verify that ultra turbo frequency is <= OPPB max
+ if(l_freq > l_pgpe_max_freq_mhz)
{
CMDH_TRAC_ERR("Ultra Turbo Frequency[%d] (MHz) is higher than PGPE's "
- "Max freq (G_proc_fmax_mhz[%d]) clip Ultra Turbo Frequency",
- l_freq, G_proc_fmax_mhz);
- l_freq = G_proc_fmax_mhz;
+ "Max freq (OPPB max[%d]) clip Ultra Turbo Frequency",
+ l_freq, l_pgpe_max_freq_mhz);
+ l_freq = l_pgpe_max_freq_mhz;
}
// Check if (H)TMGT will let WOF run, else clear flags
diff --git a/src/occ_405/cmdh/cmdh_snapshot.c b/src/occ_405/cmdh/cmdh_snapshot.c
index ecb9afc..b52858f 100755
--- a/src/occ_405/cmdh/cmdh_snapshot.c
+++ b/src/occ_405/cmdh/cmdh_snapshot.c
@@ -74,7 +74,6 @@ VOID cmdh_snapshot_find_oldest_newest(uint8_t *o_oldest,
(g_cmdh_snapshot_array[0].current_id == 0) &&
(g_cmdh_snapshot_array[CMDH_SNAPSHOT_MAX_INDEX].current_id == 0))
{
- TRAC_INFO("cmdh_snapshot_find_oldest_newest: Entry 0 is the oldest and newest");
*o_oldest = 0;
*o_newest = 0;
break;
@@ -141,7 +140,6 @@ ERRL_RC cmdh_snapshot_buffer_nonite(const cmdh_fsp_cmd_t *i_cmd_ptr,
// Check case where there are no snapshot buffers available.
if (g_cmdh_snapshot_cur_index == CMDH_SNAPSHOT_DEFAULT_CUR_INDEX)
{
- TRAC_INFO("cmdh_snapshot_buffer_nonite: No snapshot buffer available.");
break;
}
@@ -170,8 +168,6 @@ ERRL_RC cmdh_snapshot_buffer_nonite(const cmdh_fsp_cmd_t *i_cmd_ptr,
if (i == CMDH_SNAPSHOT_MAX)
{
- TRAC_INFO("cmdh_snapshot_buffer_nonite: Requested buffer:%u not found so sending back %u",
- l_cmd_ptr->requested_id, l_rsp_ptr->newest_id);
l_req_idx = l_newest;
}
}
@@ -319,8 +315,6 @@ errlHndl_t cmdh_snapshot_sync(const cmdh_fsp_cmd_t * i_cmd_ptr,
break;
}
- TRAC_INFO("cmdh_snapshot_sync: Snapshot buffer has been reset!");
-
l_resp_ptr->data_length[0] = 0;
l_resp_ptr->data_length[1] = 0;
G_rsp_status = 0;
@@ -370,8 +364,6 @@ void cmdh_snapshot_callback(void * arg)
if (g_cmdh_snapshot_reset)
{
- TRAC_INFO("cmdh_snapshot_callback: Initializing snapshot buffer and data.");
-
memset(g_cmdh_snapshot_array, 0, sizeof(g_cmdh_snapshot_array));
g_cmdh_snapshot_cur_id = 0;
memset(L_cim_buf,0,sizeof(cmdh_snapshot_buffer_t));
OpenPOWER on IntegriCloud