diff options
author | Michael Pardeik <pardeik@us.ibm.com> | 2019-10-01 15:55:23 -0500 |
---|---|---|
committer | Christian R Geddes <crgeddes@us.ibm.com> | 2019-11-15 17:25:42 -0600 |
commit | fe09e7b9d29b238b07f8d1017fc0c195843c654f (patch) | |
tree | 5838485d50eefcf67c74a4e51a6bb3df97be8ddc /src/import/chips/p9/procedures/hwp | |
parent | dfba68af85eaded297f58d25f33f27b88677b300 (diff) | |
download | talos-hostboot-fe09e7b9d29b238b07f8d1017fc0c195843c654f.tar.gz talos-hostboot-fe09e7b9d29b238b07f8d1017fc0c195843c654f.zip |
exp_mss_eff_config_thermal fixes
Fix pwr_throttles call for thermal throttle type
Fix equalize throttles call for power throttling type
Updates to handle DDIMM and non-DDIMM differences
Clarify related power and thermal MRW attribute descriptions
Change-Id: I34ecfd4bbb97f1e74c258a474e0b5daf3a4dcbbb
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/84620
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Dev-Ready: STEPHEN GLANCY <sglancy@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Reviewed-by: Mark Pizzutillo <mark.pizzutillo@ibm.com>
Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/84699
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors.H | 63 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.H | 1 |
2 files changed, 37 insertions, 27 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors.H b/src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors.H index 8b94c3460..709d3af1b 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors.H @@ -21532,12 +21532,13 @@ fapi_try_exit: /// @note Generated by gen_accessors.pl generateParameters (SYSTEM A) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK /// @note Machine Readable Workbook Thermal Memory Power Limit Used to calculate throttles -/// to be at or under the power limit Per DIMM basis KEY (0-21): In order DIMM_SIZE -/// = bits 0-3, DIMM_GEN = 4-5, DIMM_TYPE = 6-8, DIMM_WIDTH = 9-11, DIMM_DENSITY = -/// 12-14, DIMM_STACK_TYPE = 15-16, DRAM_MFGID = 17-19, DIMM_HEIGHT = 20-21, Bits -/// 22-32: Not used VALUE (bits 32-47) in cW: OCMB+DRAM thermal power limit per DIMM -/// = -/// 32-47 +/// to meet the thermal power per DIMM limit Per DIMM basis, uses first matching KEY +/// entry KEY (0-21): In order DIMM_SIZE = bits 0-3, DIMM_GEN = 4-5, DIMM_TYPE = +/// 6-8, DIMM_WIDTH = 9-11, DIMM_DENSITY = 12-14, DIMM_STACK_TYPE = 15-16, +/// DRAM_MFGID = 17-19, DIMM_HEIGHT = 20-21, Bits 22-32: Not used VALUE (bits 32-47) +/// in cW: thermal power limit DDIMM: Total OCMB+DRAM power limit per DDIMM +/// non-DDIMM: VMEM+VPP power limit per +/// DIMM /// inline fapi2::ReturnCode mrw_ocmb_thermal_memory_power_limit(uint64_t* o_array) { @@ -21559,13 +21560,14 @@ fapi_try_exit: /// @param[out] uint64_t* memory to store the value /// @note Generated by gen_accessors.pl generateParameters (SYSTEM A) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK -/// @note Machine Readable Workbook Power Curve Slope for DIMM Used to get the OCMB+DRAM -/// power curve for each DIMM Per DIMM basis KEY (0-21): In order DIMM_SIZE = bits -/// 0-3, DIMM_GEN = 4-5, DIMM_TYPE = 6-8, DIMM_WIDTH = 9-11, DIMM_DENSITY = 12-14, -/// DIMM_STACK_TYPE = 15-16, DRAM_MFGID = 17-19, DIMM_HEIGHT = 20-21, Bits 22-32: -/// Not used VALUE (bits 32-47) in cW/utilization: OCMB+DRAM thermal power limit per -/// DIMM = -/// 32-47 +/// @note Machine Readable Workbook Power Curve Slope for DIMM Used to calculate thermal +/// throttles and port power Per DIMM basis, uses first matching KEY entry KEY +/// (0-21): In order DIMM_SIZE = bits 0-3, DIMM_GEN = 4-5, DIMM_TYPE = 6-8, +/// DIMM_WIDTH = 9-11, DIMM_DENSITY = 12-14, DIMM_STACK_TYPE = 15-16, DRAM_MFGID = +/// 17-19, DIMM_HEIGHT = 20-21, Bits 22-32: Not used VALUE (bits 32-47) in +/// cW/utilization: DIMM power slope DDIMM: Total OCMB+DRAM power slope per DDIMM +/// non-DDIMM: VMEM+VPP power slope per +/// DIMM /// inline fapi2::ReturnCode mrw_ocmb_pwr_slope(uint64_t* o_array) { @@ -21586,13 +21588,14 @@ fapi_try_exit: /// @param[out] uint64_t* memory to store the value /// @note Generated by gen_accessors.pl generateParameters (SYSTEM A) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK -/// @note Machine Readable Workbook Power Curve Intercept for DIMM Used to get the -/// OCMB+DRAM power curve for each DIMM Per DIMM basis KEY (0-21): In order -/// DIMM_SIZE = bits 0-3, DIMM_GEN = 4-5, DIMM_TYPE = 6-8, DIMM_WIDTH = 9-11, -/// DIMM_DENSITY = 12-14, DIMM_STACK_TYPE = 15-16, DRAM_MFGID = 17-19, DIMM_HEIGHT = -/// 20-21, Bits 22-32: Not used VALUE (bits 32-47) in cW/utilization: OCMB+DRAM -/// thermal power limit per DIMM = -/// 32-47 +/// @note Machine Readable Workbook Power Curve Intercept for DIMM Used to calculate +/// thermal throttles and port power Per DIMM basis, uses first matching KEY entry +/// KEY (0-21): In order DIMM_SIZE = bits 0-3, DIMM_GEN = 4-5, DIMM_TYPE = 6-8, +/// DIMM_WIDTH = 9-11, DIMM_DENSITY = 12-14, DIMM_STACK_TYPE = 15-16, DRAM_MFGID = +/// 17-19, DIMM_HEIGHT = 20-21, Bits 22-32: Not used VALUE (bits 32-47) in +/// cW/utilization: DIMM power intercept DDIMM: Total OCMB+DRAM power intercept per +/// DDIMM non-DDIMM: VMEM+VPP power intercept per +/// DIMM /// inline fapi2::ReturnCode mrw_ocmb_pwr_intercept(uint64_t* o_array) { @@ -21613,13 +21616,19 @@ fapi_try_exit: /// @param[out] uint64_t* memory to store the value /// @note Generated by gen_accessors.pl generateParameters (SYSTEM A) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK -/// @note Machine Readable Workbook Power Curve Intercept and limit for DIMM Used to get -/// the PMIC power curve and limit for each DIMM Per DIMM basis KEY (0-21): In order -/// DIMM_SIZE = bits 0-3, DIMM_GEN = 4-5, DIMM_TYPE = 6-8, DIMM_WIDTH = 9-11, -/// DIMM_DENSITY = 12-14, DIMM_STACK_TYPE = 15-16, DRAM_MFGID = 17-19, DIMM_HEIGHT = -/// 20-21, Bits 22-32: Not used VALUE (bits 32-39): Current limit (dA) VALUE (bits -/// 40-51): Current slope (cA/utilization) VALUE (bits 52-63): Current intercept -/// (cA) +/// @note Machine Readable Workbook Current Curve Intercept and limit for DIMM Used to +/// calculate throttles to meet regulator current per DIMM limit Per DIMM basis, +/// uses first matching KEY entry For DDIMM, use PMIC SW output that provides worst +/// case throttling KEY (0-21): In order DIMM_SIZE = bits 0-3, DIMM_GEN = 4-5, +/// DIMM_TYPE = 6-8, DIMM_WIDTH = 9-11, DIMM_DENSITY = 12-14, DIMM_STACK_TYPE = +/// 15-16, DRAM_MFGID = 17-19, DIMM_HEIGHT = 20-21, Bits 22-32: Not used VALUE (bits +/// 32-39): Current limit (dA) DDIMM: PMIC output current limit per DDIMM non-DDIMM: +/// VMEM regulator current limit per DIMM VALUE (bits 40-51): Current slope +/// (cA/utilization) DDIMM: PMIC output current slope per DDIMM non-DDIMM: VMEM +/// regulator current slope per DIMM VALUE (bits 52-63): Current intercept (cA) +/// DDIMM: PMIC output current intercept per DDIMM non-DDIMM: VMEM regulator current +/// intercept per +/// DIMM /// inline fapi2::ReturnCode mrw_ocmb_current_curve_with_limit(uint64_t* o_array) { diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.H b/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.H index 20152398e..bfc978492 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.H @@ -41,6 +41,7 @@ #include <lib/mss_attribute_accessors.H> #include <lib/power_thermal/accessor_wrapper.H> #include <lib/power_thermal/throttle_traits.H> +#include <lib/dimm/nimbus_kind.H> #include <generic/memory/lib/utils/power_thermal/gen_throttle.H> namespace mss |