From d13bd3fa8e38b0e6cc2300c7e78b7b69e6020b4a Mon Sep 17 00:00:00 2001 From: Chris Cain Date: Mon, 13 May 2019 14:58:23 -0500 Subject: Handle thermal vote based on OCMB membuf Change-Id: Ic7e249e4e6e4c47b41d4eded084a4e74d93e412b Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77316 Tested-by: FSP CI Jenkins Reviewed-by: Martha Broyles Reviewed-by: Douglas R. Gilbert Reviewed-by: Christopher J. Cain --- src/occ_405/amec/amec_controller.c | 14 +++++++------- src/occ_405/amec/amec_controller.h | 8 ++++---- src/occ_405/amec/amec_slave_smh.c | 7 ++++--- src/occ_405/occbuildname.c | 2 +- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/occ_405/amec/amec_controller.c b/src/occ_405/amec/amec_controller.c index 530f53f..9e3b132 100644 --- a/src/occ_405/amec/amec_controller.c +++ b/src/occ_405/amec/amec_controller.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2017 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -346,17 +346,17 @@ void amec_controller_dimm_thermal() //************************************************************************* // Function Specification // -// Name: amec_controller_centaur_thermal +// Name: amec_controller_membuf_thermal // // Description: This function implements the Proportional Controller for the -// centaur thermal control. Although it doesn't return any +// membuf thermal control. Although it doesn't return any // results, it populates the thermal vote in the field // g_amec->thermalcent.speed_request. // // Task Flags: // // End Function Specification -void amec_controller_centaur_thermal() +void amec_controller_membuf_thermal() { /*------------------------------------------------------------------------*/ /* Local Variables */ @@ -384,7 +384,7 @@ void amec_controller_centaur_thermal() } else { - // Use the highest temperature of all Centaur in 0.1 degrees C + // Use the highest temperature of all membuf in 0.1 degrees C l_thermal_winner = l_sensor->sample * 10; } @@ -395,7 +395,7 @@ void amec_controller_centaur_thermal() // Calculate the thermal control error l_error = g_amec->thermalcent.setpoint - l_thermal_winner; - // Proportional Controller for the thermal control loop based on CENTAUR + // Proportional Controller for the thermal control loop based on membuf // temperatures l_throttle = (int32_t) l_error * g_amec->thermalcent.Pgain; l_residue = (uint16_t) l_throttle; @@ -413,7 +413,7 @@ void amec_controller_centaur_thermal() } } - // Calculate the new thermal speed request for Centaurs + // Calculate the new thermal speed request for membufs l_mem_speed = g_amec->thermalcent.speed_request + (int16_t) l_throttle_chg * AMEC_MEMORY_STEP_SIZE; diff --git a/src/occ_405/amec/amec_controller.h b/src/occ_405/amec/amec_controller.h index 29a8061..97e379c 100644 --- a/src/occ_405/amec/amec_controller.h +++ b/src/occ_405/amec/amec_controller.h @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2015 */ +/* Contributors Listed Below - COPYRIGHT 2011,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -101,15 +101,15 @@ void amec_controller_proc_thermal(); void amec_controller_vrm_vdd_thermal(); /** - * Thermal Control Loop based on Centaur temperatures. + * Thermal Control Loop based on membuf temperatures. * * This function implements a Proportional Controller for the - * thermal control loop based on Centaur temperatures. + * thermal control loop based on membuf temperatures. * Although it doesn't return any results, it populates the * thermal vote in the field g_amec->thermalcent.speed_request. * */ -void amec_controller_centaur_thermal(); +void amec_controller_membuf_thermal(); /** * Thermal Control Loop based on DIMM temperatures. diff --git a/src/occ_405/amec/amec_slave_smh.c b/src/occ_405/amec/amec_slave_smh.c index 5293f2f..e30dd5c 100755 --- a/src/occ_405/amec/amec_slave_smh.c +++ b/src/occ_405/amec/amec_slave_smh.c @@ -1366,10 +1366,11 @@ void amec_slv_substate_7_0(void) // Call memory thermal controller based on DIMM temperature amec_controller_dimm_thermal(); - if (MEM_TYPE_CUMULUS == G_sysConfigData.mem_type) + if ((MEM_TYPE_CUMULUS == G_sysConfigData.mem_type) || + (MEM_TYPE_OCM == G_sysConfigData.mem_type)) { - // Call memory thermal controller based on Centaur temperature - amec_controller_centaur_thermal(); + // Call memory thermal controller based on membuf temperature + amec_controller_membuf_thermal(); } } diff --git a/src/occ_405/occbuildname.c b/src/occ_405/occbuildname.c index 0ff8f58..95646b1 100755 --- a/src/occ_405/occbuildname.c +++ b/src/occ_405/occbuildname.c @@ -34,6 +34,6 @@ volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = #else -volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = /**/ "op_occ_190508a\0" /**/ ; +volatile const char G_occ_buildname[16] __attribute__((section(".buildname"))) = /**/ "op_occ_190514a\0" /**/ ; #endif -- cgit v1.2.1