diff options
Diffstat (limited to 'src/occ_405/amec')
-rwxr-xr-x | src/occ_405/amec/amec_analytics.c | 6 | ||||
-rw-r--r-- | src/occ_405/amec/amec_init.c | 13 | ||||
-rw-r--r-- | src/occ_405/amec/amec_sensors_centaur.c | 6 | ||||
-rwxr-xr-x | src/occ_405/amec/amec_sys.h | 13 |
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; |