summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp
diff options
context:
space:
mode:
authorMichael Pardeik <pardeik@us.ibm.com>2019-10-01 15:55:23 -0500
committerChristian R Geddes <crgeddes@us.ibm.com>2019-11-15 17:25:42 -0600
commitfe09e7b9d29b238b07f8d1017fc0c195843c654f (patch)
tree5838485d50eefcf67c74a4e51a6bb3df97be8ddc /src/import/chips/p9/procedures/hwp
parentdfba68af85eaded297f58d25f33f27b88677b300 (diff)
downloadtalos-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.H63
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/throttle.H1
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
OpenPOWER on IntegriCloud