summaryrefslogtreecommitdiffstats
path: root/src/occ_405/amec
diff options
context:
space:
mode:
Diffstat (limited to 'src/occ_405/amec')
-rwxr-xr-xsrc/occ_405/amec/amec_analytics.c6
-rw-r--r--src/occ_405/amec/amec_init.c13
-rw-r--r--src/occ_405/amec/amec_sensors_centaur.c6
-rwxr-xr-xsrc/occ_405/amec/amec_sys.h13
4 files changed, 26 insertions, 12 deletions
diff --git a/src/occ_405/amec/amec_analytics.c b/src/occ_405/amec/amec_analytics.c
index 9cca40d..d715a72 100755
--- a/src/occ_405/amec/amec_analytics.c
+++ b/src/occ_405/amec/amec_analytics.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER OnChipController Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2016 */
+/* Contributors Listed Below - COPYRIGHT 2011,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -307,13 +307,13 @@ void amec_analytics_main(void)
for (j=0; j<8; j++) // Group 45 supports all 8 Centaurs per OCC
{
g_amec->g44_avg[(i*MSA)+l] = g_amec->g44_avg[(i*MSA)+l] +
- (UINT32)(g_amec->proc[i].memctl[j].mrd2ms.sample/78); // memory read bandwidth
+ (UINT32)(g_amec->proc[i].memctl[j].mrd.sample/78); // memory read bandwidth
l=l+1;
}
for (j=0; j<8; j++) // Group 45 supports all 8 Centaurs per OCC
{
g_amec->g44_avg[(i*MSA)+l] = g_amec->g44_avg[(i*MSA)+l] +
- (UINT32)(g_amec->proc[i].memctl[j].mwr2ms.sample/78); // memory write bandwidth
+ (UINT32)(g_amec->proc[i].memctl[j].mwr.sample/78); // memory write bandwidth
l=l+1;
}
diff --git a/src/occ_405/amec/amec_init.c b/src/occ_405/amec/amec_init.c
index 9f57117..3d82ac0 100644
--- a/src/occ_405/amec/amec_init.c
+++ b/src/occ_405/amec/amec_init.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER OnChipController Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2017 */
+/* Contributors Listed Below - COPYRIGHT 2011,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -229,7 +229,7 @@ void amec_init_gamec_struct(void)
/* Local Variables */
/*------------------------------------------------------------------------*/
uint16_t l_idx = 0;
-
+ uint16_t l_idx2 = 0;
/*------------------------------------------------------------------------*/
/* Code */
/*------------------------------------------------------------------------*/
@@ -344,6 +344,15 @@ void amec_init_gamec_struct(void)
// Initialize to no VRM faults
g_amec->sys.vrm_fault_status = 0;
+ // Initialize saying we need the M value
+ for(l_idx=0; l_idx < NUM_NIMBUS_MC_PAIRS; l_idx++)
+ {
+ for(l_idx2=0; l_idx2 < MAX_NUM_MCU_PORTS; l_idx2++)
+ {
+ g_amec->sys.dimm_m_values[l_idx][l_idx2].need_m = TRUE;
+ }
+ }
+
// Initialize wof_disabled
g_amec->wof.wof_disabled = WOF_RC_OCC_WOF_DISABLED;
diff --git a/src/occ_405/amec/amec_sensors_centaur.c b/src/occ_405/amec/amec_sensors_centaur.c
index 9749a3f..8cd50c3 100644
--- a/src/occ_405/amec/amec_sensors_centaur.c
+++ b/src/occ_405/amec/amec_sensors_centaur.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER OnChipController Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2017 */
+/* Contributors Listed Below - COPYRIGHT 2011,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -472,7 +472,7 @@ void amec_perfcount_getmc( MemData * i_sensor_cache,
// ---------------------------------------------------------------------------
// Extract write bandwidth
- temp32new = (templ); // left shift into top 20 bits of 32 bits
+ temp32new = (templ);
temp32 = temp32new - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.wr_cnt_accum;
g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.wr_cnt_accum = temp32new; // Save latest accumulator away for next time
@@ -487,7 +487,7 @@ void amec_perfcount_getmc( MemData * i_sensor_cache,
// -------------------------------------------------------------------------
// Extract read bandwidth
- temp32new = (tempu); // left shift into top 20 bits of 32 bits
+ temp32new = (tempu);
temp32 = temp32new - g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.rd_cnt_accum;
g_amec->proc[0].memctl[i_centaur].centaur.portpair[i_mc_id].perf.rd_cnt_accum = temp32new; // Save latest accumulator away for next time
diff --git a/src/occ_405/amec/amec_sys.h b/src/occ_405/amec/amec_sys.h
index bcb11b8..95260d6 100755
--- a/src/occ_405/amec/amec_sys.h
+++ b/src/occ_405/amec/amec_sys.h
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER OnChipController Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2017 */
+/* Contributors Listed Below - COPYRIGHT 2011,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -254,9 +254,11 @@ typedef struct
// Sub-structures under MemCtl
amec_centaur_t centaur;
- // Sensors
- sensor_t mrd2ms;
- sensor_t mwr2ms;
+ // Performance Sensors
+ sensor_t mrd;
+ sensor_t mwr;
+ sensor_t memspstat;
+ sensor_t memsp;
} amec_memctl_t;
@@ -390,6 +392,9 @@ typedef struct
// Memory Throttle Sent Last time to DIMM Throttle Register
dimm_n_value_t current_dimm_n_values[NUM_NIMBUS_MC_PAIRS][MAX_NUM_MCU_PORTS];
+ // M Values for NM Throttling Control (counts DRAM clock cycles)
+ dimm_m_value_t dimm_m_values[NUM_NIMBUS_MC_PAIRS][MAX_NUM_MCU_PORTS];
+
// Current Memory Power Control values (applied last through GPE1)
uint8_t current_mem_pwr_ctl;
OpenPOWER on IntegriCloud