summaryrefslogtreecommitdiffstats
path: root/src/import/generic/procedures
diff options
context:
space:
mode:
authorAlvin Wang <wangat@tw.ibm.com>2019-04-16 10:57:56 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2019-04-30 11:53:20 -0500
commit4ce53f71e9fcf0c22fdb83af31b450db975df233 (patch)
tree0c85bb228692dd78965a54f78795af407ff7209d /src/import/generic/procedures
parent902e166a98fe9cce8dbf6dc69534f45499c0ab1d (diff)
downloadblackbird-hostboot-4ce53f71e9fcf0c22fdb83af31b450db975df233.tar.gz
blackbird-hostboot-4ce53f71e9fcf0c22fdb83af31b450db975df233.zip
Move power_thermal lib to generic
Change-Id: I2851b7fa990d7e8c5a2d726b650b4e2fc11f3fe7 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72525 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: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72845 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/generic/procedures')
-rw-r--r--src/import/generic/procedures/xml/attribute_info/generic_memory_eff_attributes.xml16
-rw-r--r--src/import/generic/procedures/xml/attribute_info/generic_memory_mrw_attributes.xml132
-rw-r--r--src/import/generic/procedures/xml/error_info/generic_error.xml229
3 files changed, 377 insertions, 0 deletions
diff --git a/src/import/generic/procedures/xml/attribute_info/generic_memory_eff_attributes.xml b/src/import/generic/procedures/xml/attribute_info/generic_memory_eff_attributes.xml
index 1b2e69ea4..60cf77d35 100644
--- a/src/import/generic/procedures/xml/attribute_info/generic_memory_eff_attributes.xml
+++ b/src/import/generic/procedures/xml/attribute_info/generic_memory_eff_attributes.xml
@@ -621,6 +621,22 @@
</attribute>
<attribute>
+ <id>ATTR_MEM_EFF_DRAM_MODULE_HEIGHT</id>
+ <targetType>TARGET_TYPE_MEM_PORT</targetType>
+ <description>
+ ARRAY[DIMM]
+ DRAM Modlue Height
+ Decodes SPD Byte 193
+ </description>
+ <enum>1U = 0, 2U = 1, 4U = 2 </enum>
+ <initToZero></initToZero>
+ <valueType>uint8</valueType>
+ <writeable/>
+ <array>2</array>
+ <mssAccessorName>dram_module_height</mssAccessorName>
+ </attribute>
+
+ <attribute>
<id>ATTR_MEM_EFF_RCD_MFG_ID</id>
<targetType>TARGET_TYPE_MEM_PORT</targetType>
<description>
diff --git a/src/import/generic/procedures/xml/attribute_info/generic_memory_mrw_attributes.xml b/src/import/generic/procedures/xml/attribute_info/generic_memory_mrw_attributes.xml
index 31ac9b4c0..0230aa2e4 100644
--- a/src/import/generic/procedures/xml/attribute_info/generic_memory_mrw_attributes.xml
+++ b/src/import/generic/procedures/xml/attribute_info/generic_memory_mrw_attributes.xml
@@ -606,4 +606,136 @@
<mssAccessorName>mrw_supported_dram_width</mssAccessorName>
</attribute>
+ <attribute>
+ <id>ATTR_MSS_MRW_OCMB_THERMAL_MEMORY_POWER_LIMIT</id>
+ <targetType>TARGET_TYPE_SYSTEM</targetType>
+ <description>
+ 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
+ </description>
+ <valueType>uint64</valueType>
+ <mssUnits>cW</mssUnits>
+ <default>0xfffffc07940000</default>
+ <array>25</array>
+ <platInit/>
+ <mssAccessorName>mrw_ocmb_thermal_memory_power_limit</mssAccessorName>
+ </attribute>
+
+ <attribute>
+ <id>ATTR_MSS_MRW_OCMB_PWR_SLOPE</id>
+ <targetType>TARGET_TYPE_SYSTEM</targetType>
+ <description>
+ 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
+ </description>
+ <valueType>uint64</valueType>
+ <mssUnits>cW</mssUnits>
+ <default>0xfffffc00044C0000</default>
+ <array>50</array>
+ <platInit/>
+ <mssAccessorName>mrw_ocmb_pwr_slope</mssAccessorName>
+ </attribute>
+
+ <attribute>
+ <id>ATTR_MSS_MRW_OCMB_PWR_INTERCEPT</id>
+ <targetType>TARGET_TYPE_SYSTEM</targetType>
+ <description>
+ 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
+ </description>
+ <valueType>uint64</valueType>
+ <mssUnits>cW/utilization</mssUnits>
+ <default>0xfffffc00044C0000</default>
+ <array>50</array>
+ <platInit/>
+ <mssAccessorName>mrw_ocmb_pwr_intercept</mssAccessorName>
+ </attribute>
+
+ <attribute>
+ <id>ATTR_MSS_MRW_OCMB_CURRENT_CURVE_WITH_LIMIT</id>
+ <targetType>TARGET_TYPE_SYSTEM</targetType>
+ <description>
+ 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)
+ </description>
+ <valueType>uint64</valueType>
+ <mssUnits>dA, cA/utilization, cA</mssUnits>
+ <default>0xfffffc0000000000</default>
+ <array>25</array>
+ <platInit/>
+ <mssAccessorName>mrw_ocmb_current_curve_with_limit</mssAccessorName>
+ </attribute>
+
+ <attribute>
+ <id>ATTR_MSS_MRW_SAFEMODE_DRAM_DATABUS_UTIL</id>
+ <targetType>TARGET_TYPE_SYSTEM</targetType>
+ <description>
+ Machine Readable Workbook value for safe mode dram data bus utilization in centi percent (c%).
+ Set to below optimum value/ rate.
+ On a per port basis
+ Also used for emergency mode throttle
+ Used to thermally protect the system in all supported environmental conditions when OCC is not functional
+ Consumer: thermal_init, initfile
+ Default to 2500 c%%
+ </description>
+ <valueType>uint32</valueType>
+ <default>0x000009C4</default>
+ <platInit/>
+ <initToZero/>
+ <mssAccessorName>mrw_safemode_dram_databus_util</mssAccessorName>
+ </attribute>
+
</attributes>
diff --git a/src/import/generic/procedures/xml/error_info/generic_error.xml b/src/import/generic/procedures/xml/error_info/generic_error.xml
index cec60fdfb..78d852568 100644
--- a/src/import/generic/procedures/xml/error_info/generic_error.xml
+++ b/src/import/generic/procedures/xml/error_info/generic_error.xml
@@ -440,4 +440,233 @@
</callout>
</hwpError>
+ <hwpError>
+ <rc>RC_MSS_POWER_INTERCEPT_NOT_SET</rc>
+ <description>
+ The attribute ATTR_MSS_TOTAL_POWER_INTERCEPT was not set and equals 0
+ </description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_POWER_SLOPE_NOT_SET</rc>
+ <description>
+ The attribute ATTR_MSS_TOTAL_POWER_INTERCEPT was not set and equals 0
+ </description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_NO_DATABUS_UTILIZATION</rc>
+ <description>
+ There are 2 DIMMS on the port but both have 0 databus utilization
+ </description>
+ <ffdc>PORT_DATABUS_UTIL</ffdc>
+ <ffdc>DIMM_COUNT</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_CALC_POWER_CURVE_DIVIDE_BY_ZERO</rc>
+ <description>
+ Denominator equals 0
+ </description>
+ <ffdc>PORT_DATABUS_UTIL</ffdc>
+ <ffdc>UTIL_CONVERSION</ffdc>
+ <ffdc>IDLE_UTIL</ffdc>
+ <ffdc>RESULT</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_NO_PORT_POWER_LIMIT</rc>
+ <description>
+ Got 0 when calculating port power limit.
+ Either no dimms or attribute MEM_WATT_TARGET wasn't set
+ </description>
+ <ffdc>COUNT_DIMMS</ffdc>
+ <ffdc>PORT_POWER_LIMIT</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_NO_PORT_POWER</rc>
+ <description>
+ Got 0 when calculating port power limits using the DIMMs databus utilization
+ </description>
+ <ffdc>COUNT_DIMMS</ffdc>
+ <ffdc>MAX_UTILIZATION_DIMM_0</ffdc>
+ <ffdc>MAX_UTILIZATION_DIMM_1</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_M_DRAM_CLOCKS_EQUALS_ZERO</rc>
+ <description>
+ ATTR_MSS_MRW_MEM_M_DRAM_CLOCKS was not set and equals zero
+ </description>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_CALC_PORT_POWER_EXCEEDS_MAX</rc>
+ <description>
+ The calculated port power from equalizing throttles exceeds the maximum allowed power
+ </description>
+ <ffdc>CALCULATED_PORT_POWER</ffdc>
+ <ffdc>MAX_POWER_ALLOWED</ffdc>
+ <ffdc>PORT_POS</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ <callout>
+ <childTargets>
+ <parent>PORT_TARGET</parent>
+ <childType>TARGET_TYPE_DIMM</childType>
+ </childTargets>
+ <priority>MEDIUM</priority>
+ </callout>
+ <deconfigure>
+ <childTargets>
+ <parent>PORT_TARGET</parent>
+ <childType>TARGET_TYPE_DIMM</childType>
+ </childTargets>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_SLOT_UTIL_EXCEEDS_PORT</rc>
+ <description>
+ The memory throttle per slot (DIMM) exceeds the allowed throttle for the port
+ </description>
+ <ffdc>SLOT_UTIL</ffdc>
+ <ffdc>PORT_UTIL</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_OUTPUT_OVERFLOW_CALC_UTIL</rc>
+ <description>
+ Type of output variable is not large enough for the calculations
+ </description>
+ <ffdc>RESULT</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_POWER_THERMAL_DECODE_ERROR</rc>
+ <description>
+ There was no match or value found in decoding the power thermal attributes
+ </description>
+ <ffdc>DIMM_TARGET</ffdc>
+ <ffdc>ATTR</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_MRW_SAFEMODE_UTIL_THROTTLE_NOT_SUPPORTED</rc>
+ <description>
+ The MRW safemode utilization that is less than the minimum utilization supported. Check ATTR_MSS_MRW_SAFEMODE_DRAM_DATABUS_UTIL.
+ </description>
+ <ffdc>MRW_SAFEMODE_UTIL</ffdc>
+ <ffdc>MIN_UTIL_VALUE</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_NO_POWER_THERMAL_ATTR_FOUND</rc>
+ <description>
+ There was no match or value found in decoding the power thermal attributes
+ </description>
+ <ffdc>GENERATED_KEY</ffdc>
+ <ffdc>FUNCTION</ffdc>
+ <ffdc>DIMM_TARGET</ffdc>
+ <ffdc>SIZE</ffdc>
+ <ffdc>DRAM_GEN</ffdc>
+ <ffdc>DIMM_TYPE</ffdc>
+ <ffdc>DRAM_WIDTH</ffdc>
+ <ffdc>DRAM_DENSITY</ffdc>
+ <ffdc>STACK_TYPE</ffdc>
+ <ffdc>MFGID</ffdc>
+ <ffdc>MODULE_HEIGHT</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_POWER_THERMAL_ENCODE_ERROR</rc>
+ <description>
+ There was no match or value found in encoding the power thermal attributes
+ </description>
+ <ffdc>DIMM_TARGET</ffdc>
+ <ffdc>ATTR</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_POWER_THERMAL_ATTR_VECTORS_INCORRECT</rc>
+ <description>
+ The attributes vectors size is incorrect for find_xxx functions
+ </description>
+ <ffdc>FUNCTION</ffdc>
+ <ffdc>INPUT_SIZE</ffdc>
+ <ffdc>EXPECTED_SIZE</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_POWER_THERMAL_DIMM_INDEX_OUT_OF_BOUND</rc>
+ <description>
+ The dimm index is out of bound for the port
+ </description>
+ <ffdc>INPUT_SIZE</ffdc>
+ <ffdc>MAX_SIZE</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+
</hwpErrors>
OpenPOWER on IntegriCloud