diff options
| author | Doug Gilbert <dgilbert@us.ibm.com> | 2017-10-30 12:58:10 -0500 |
|---|---|---|
| committer | Martha Broyles <mbroyles@us.ibm.com> | 2018-03-28 17:00:41 -0400 |
| commit | 1bbbfec92b3a3744a6ffbc5e9f4a4eb46ca4abd1 (patch) | |
| tree | 4af7fde07033e850abe820491c714f402f268da8 /src/occ_405/amec | |
| parent | b3a2f75d837fd671f13dacb2464c36a5fc8fc69d (diff) | |
| download | talos-occ-1bbbfec92b3a3744a6ffbc5e9f4a4eb46ca4abd1.tar.gz talos-occ-1bbbfec92b3a3744a6ffbc5e9f4a4eb46ca4abd1.zip | |
P9 Centaur sensor support
Change-Id: Ia84bc7532482ca314c26bd0bb5bf48ad6ee9c410
RTC: 163359
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54989
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/occ_405/amec')
| -rw-r--r-- | src/occ_405/amec/amec_sensors_centaur.c | 43 | ||||
| -rwxr-xr-x | src/occ_405/amec/amec_slave_smh.c | 35 |
2 files changed, 29 insertions, 49 deletions
diff --git a/src/occ_405/amec/amec_sensors_centaur.c b/src/occ_405/amec/amec_sensors_centaur.c index 8cd50c3..f4327ea 100644 --- a/src/occ_405/amec/amec_sensors_centaur.c +++ b/src/occ_405/amec/amec_sensors_centaur.c @@ -43,6 +43,7 @@ #include "sensor_enum.h" #include "amec_service_codes.h" #include <amec_sensors_centaur.h> +#include "centaur_mem_data.h" /******************************************************************************/ /* Globals */ @@ -57,12 +58,9 @@ extern uint8_t G_centaur_nest_lfir6; /******************************************************************************/ /* Forward Declarations */ /******************************************************************************/ -/* TODO - RTC 163359 Centaur support */ -#if 0 -void amec_update_dimm_dts_sensors(MemData * i_sensor_cache, uint8_t i_centaur); -void amec_update_centaur_dts_sensors(MemData * i_sensor_cache, uint8_t i_centaur); -void amec_perfcount_getmc( MemData * i_sensor_cache, uint8_t i_centaur); -#endif +void amec_update_dimm_dts_sensors(CentaurMemData * i_sensor_cache, uint8_t i_centaur); +void amec_update_centaur_dts_sensors(CentaurMemData * i_sensor_cache, uint8_t i_centaur); +void amec_perfcount_getmc( CentaurMemData * i_sensor_cache, uint8_t i_centaur); /******************************************************************************/ /* Code */ @@ -80,11 +78,9 @@ void amec_perfcount_getmc( MemData * i_sensor_cache, uint8_t i_centaur); // End Function Specification void amec_update_centaur_sensors(uint8_t i_centaur) { -/* TODO - RTC 163359 Centaur support */ -#if 0 if(CENTAUR_PRESENT(i_centaur)) { - MemData * l_sensor_cache = cent_get_centaur_data_ptr(i_centaur); + CentaurMemData * l_sensor_cache = cent_get_centaur_data_ptr(i_centaur); if(CENTAUR_UPDATED(i_centaur)) { amec_update_dimm_dts_sensors(l_sensor_cache, i_centaur); @@ -93,7 +89,6 @@ void amec_update_centaur_sensors(uint8_t i_centaur) amec_perfcount_getmc(l_sensor_cache, i_centaur); CLEAR_CENTAUR_UPDATED(i_centaur); } -#endif } // Function Specification @@ -106,9 +101,7 @@ void amec_update_centaur_sensors(uint8_t i_centaur) // Thread: RealTime Loop // // End Function Specification -/* TODO - RTC 163359 Centaur support */ -#if 0 -void amec_update_dimm_dts_sensors(MemData * i_sensor_cache, uint8_t i_centaur) +void amec_update_dimm_dts_sensors(CentaurMemData * i_sensor_cache, uint8_t i_centaur) { #define MIN_VALID_DIMM_TEMP 1 #define MAX_VALID_DIMM_TEMP 125 //according to Mike Pardiek @@ -246,20 +239,17 @@ void amec_update_dimm_dts_sensors(MemData * i_sensor_cache, uint8_t i_centaur) L_ran_once[i_centaur] = TRUE; AMEC_DBG("Centaur[%d]: HotDimm=%d\n",i_centaur,l_hottest_dimm_temp); } -#endif // Function Specification // // Name: amec_update_centaur_dts_sensors // -// Description: Updates sensors taht have data grabbed by the fast core data +// Description: Updates sensors that have data grabbed by the fast core data // // Thread: RealTime Loop // // End Function Specification -/* TODO - RTC 163359 Centaur support */ -#if 0 -void amec_update_centaur_dts_sensors(MemData * i_sensor_cache, uint8_t i_centaur) +void amec_update_centaur_dts_sensors(CentaurMemData * i_sensor_cache, uint8_t i_centaur) { #define MIN_VALID_CENT_TEMP 1 #define MAX_VALID_CENT_TEMP 125 //according to Mike Pardiek @@ -377,7 +367,6 @@ void amec_update_centaur_dts_sensors(MemData * i_sensor_cache, uint8_t i_centaur AMEC_DBG("Centaur[%d]: HotCentaur=%d\n",i_centaur,l_dts); } -#endif // Function Specification // @@ -393,7 +382,7 @@ void amec_update_centaur_temp_sensors(void) uint32_t k, l_hot; // ----------------------------------------------------------- - // Find hottest temperature from all centaurs for this P8 chip + // Find hottest temperature from all centaurs for this Proc chip // ----------------------------------------------------------- for(l_hot = 0, k=0; k < MAX_NUM_CENTAURS; k++) { @@ -406,7 +395,7 @@ void amec_update_centaur_temp_sensors(void) AMEC_DBG("HotCentaur=%d\n",l_hot); // -------------------------------------------------------- - // Find hottest temperature from all DIMMs for this P8 chip + // Find hottest temperature from all DIMMs for this Proc chip // -------------------------------------------------------- for(l_hot = 0, k=0; k < MAX_NUM_CENTAURS; k++) { @@ -430,9 +419,8 @@ void amec_update_centaur_temp_sensors(void) // Thread: RealTime Loop // // End Function Specification -/* TODO - RTC 163359 Centaur support */ -#if 0 -void amec_perfcount_getmc( MemData * i_sensor_cache, + +void amec_perfcount_getmc( CentaurMemData * i_sensor_cache, uint8_t i_centaur) { /*------------------------------------------------------------------------*/ @@ -452,7 +440,7 @@ void amec_perfcount_getmc( MemData * i_sensor_cache, /* Code */ /*------------------------------------------------------------------------*/ - MemData * l_sensor_cache = i_sensor_cache; + CentaurMemData * l_sensor_cache = i_sensor_cache; for(i_mc_id=0; i_mc_id<2; i_mc_id++) { @@ -682,18 +670,17 @@ void amec_perfcount_getmc( MemData * i_sensor_cache, // ------------------------------------------------------------ tempreg = g_amec->proc[0].memctl[i_centaur].centaur.portpair[0].perf.memread2ms; tempreg += g_amec->proc[0].memctl[i_centaur].centaur.portpair[1].perf.memread2ms; - sensor_update( (&(g_amec->proc[0].memctl[i_centaur].mrd2ms)), tempreg); + sensor_update( (&(g_amec->proc[0].memctl[i_centaur].mrd)), tempreg); // ------------------------------------------------------------- // Sensor: MWRMx (0.01 Mrps) Memory write requests per sec // ------------------------------------------------------------- tempreg = g_amec->proc[0].memctl[i_centaur].centaur.portpair[0].perf.memwrite2ms; tempreg += g_amec->proc[0].memctl[i_centaur].centaur.portpair[1].perf.memwrite2ms; - sensor_update( (&(g_amec->proc[0].memctl[i_centaur].mwr2ms)), tempreg); + sensor_update( (&(g_amec->proc[0].memctl[i_centaur].mwr)), tempreg); return; } -#endif /*----------------------------------------------------------------------------*/ /* End */ diff --git a/src/occ_405/amec/amec_slave_smh.c b/src/occ_405/amec/amec_slave_smh.c index 0536ee6..703c9a2 100755 --- a/src/occ_405/amec/amec_slave_smh.c +++ b/src/occ_405/amec/amec_slave_smh.c @@ -429,8 +429,12 @@ void amec_slv_common_tasks_post(void) // Call amec_power_control amec_power_control(); - // Apply memory power control, if needed. - amec_mem_power_control(); + if (MEM_TYPE_CUMULUS != G_sysConfigData.mem_type) + { + // Nimbus only + // Apply memory power control, if needed. + amec_mem_power_control(); + } // Call the OCC slave's processor voting box amec_slv_proc_voting_box(); @@ -488,12 +492,11 @@ void amec_slv_state_0(void) { AMEC_DBG("\tAMEC Slave State 0\n"); -/* Not yet supported TODO Centaur support RTC 163359 //------------------------------------------------------- // Update Centaur sensors (for this tick) //------------------------------------------------------- amec_update_centaur_sensors(CENTAUR_0); -*/ + //------------------------------------------------------- // Update vector sensors //------------------------------------------------------- @@ -522,7 +525,6 @@ void amec_slv_state_1(void) { AMEC_DBG("\tAMEC Slave State 1\n"); -/* Not yet supported TODO Centaur support RTC 163359 //------------------------------------------------------- // Update Centaur sensors (for this tick) //------------------------------------------------------- @@ -532,7 +534,6 @@ void amec_slv_state_1(void) // Update Proc Level Centaur/DIMM Temperature sensors //------------------------------------------------------- amec_update_centaur_temp_sensors(); -*/ } @@ -547,12 +548,10 @@ void amec_slv_state_2(void) { AMEC_DBG("\tAMEC Slave State 2\n"); -/* Not yet supported TODO Centaur support RTC 163359 //------------------------------------------------------- // Update Centaur sensors (for this tick) //------------------------------------------------------- amec_update_centaur_sensors(CENTAUR_2); -*/ // Call VRM Vdd thermal controller amec_controller_vrm_vdd_thermal(); @@ -575,9 +574,7 @@ void amec_slv_state_3(void) //------------------------------------------------------- // Update Centaur sensors (for this tick) //------------------------------------------------------- -/* Not yet supported TODO Centaur support RTC 163359 amec_update_centaur_sensors(CENTAUR_3); -*/ //------------------------------------------------------- // Perform amec_analytics (set amec_analytics_slot to 3) @@ -601,12 +598,10 @@ void amec_slv_state_4(void) { AMEC_DBG("\tAMEC Slave State 4\n"); -/* Not yet supported TODO Centaur support RTC 163359 //------------------------------------------------------- // Update Centaur sensors (for this tick) //------------------------------------------------------- amec_update_centaur_sensors(CENTAUR_4); -*/ //------------------------------------------------------- // Run WOF Algorithm @@ -629,9 +624,9 @@ void amec_slv_state_5(void) AMEC_DBG("\tAMEC Slave State 5\n"); //------------------------------------------------------- - // Update Centaur sensors (for this tick) TODO Centaur support RTC 163359 + // Update Centaur sensors (for this tick) //------------------------------------------------------- -// amec_update_centaur_sensors(CENTAUR_5); + amec_update_centaur_sensors(CENTAUR_5); //------------------------------------------------------- // Update partition sensors for DPS algorithms (for this tick) @@ -654,12 +649,10 @@ void amec_slv_state_6(void) { AMEC_DBG("\tAMEC Slave State 6\n"); -/* Not yet supported TODO Centaur support RTC 163359 //------------------------------------------------------- // Update Centaur sensors (for this tick) //------------------------------------------------------- amec_update_centaur_sensors(CENTAUR_6); -*/ } @@ -674,12 +667,10 @@ void amec_slv_state_7(void) { AMEC_DBG("\tAMEC Slave State 7\n"); -/* Not yet supported TODO Centaur support RTC 163359 //------------------------------------------------------- // Update Centaur sensors (for this tick) //------------------------------------------------------- amec_update_centaur_sensors(CENTAUR_7); -*/ } // Function Specification @@ -1313,9 +1304,11 @@ void amec_slv_substate_7_0(void) // Call memory thermal controller based on DIMM temperature amec_controller_dimm_thermal(); - // Call memory thermal controller based on Centaur temperature - // TODO: RTC 163359 - OCC Centaur Support - //amec_controller_centaur_thermal(); + if (MEM_TYPE_CUMULUS == G_sysConfigData.mem_type) + { + // Call memory thermal controller based on Centaur temperature + amec_controller_centaur_thermal(); + } } |

