diff options
author | Jacob Harvey <jlharvey@us.ibm.com> | 2016-09-07 16:52:00 -0500 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2016-09-16 10:15:56 -0400 |
commit | 86c8ad2b726672914e172a13c81f033f96a012ae (patch) | |
tree | 8720c603ecbe8b031f01d0295e1782edae2e3b3f /src/import/chips | |
parent | 892b6efc65c24d8b227f10e4912825eb68eac1e9 (diff) | |
download | talos-hostboot-86c8ad2b726672914e172a13c81f033f96a012ae.tar.gz talos-hostboot-86c8ad2b726672914e172a13c81f033f96a012ae.zip |
Cleaned up memory_mrw_attributes.xml
Change-Id: I5b8128463bc09963602dab7c06e09f75f2ddfc7b
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29351
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: Brian R. Silver <bsilver@us.ibm.com>
Reviewed-by: Michael D. Pardeik <pardeik@us.ibm.com>
Reviewed-by: Matt K. Light <mklight@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29395
Diffstat (limited to 'src/import/chips')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors.H | 81 | ||||
-rwxr-xr-x | src/import/chips/p9/procedures/xml/attribute_info/memory_mrw_attributes.xml | 73 |
2 files changed, 135 insertions, 19 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 a2c311d65..c5aa5186c 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 @@ -19223,7 +19223,9 @@ fapi_try_exit: /// @note Generated by gen_accessors.pl generateParameters (SYSTEM) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK /// @note Machine Readable Workbook safe mode throttle value for numerator -/// cfg_nm_n_per_port +/// cfg_nm_n_per_port Set to below optimum value/ rate. On a per port (MCA) basis +/// Consumer: +/// thermal_init /// inline fapi2::ReturnCode mrw_safemode_mem_throttled_n_commands_per_port(uint32_t& o_value) { @@ -19243,8 +19245,10 @@ fapi_try_exit: /// @param[out] uint32_t& reference to store the value /// @note Generated by gen_accessors.pl generateParameters (SYSTEM) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK -/// @note Machine Readable Workbook Thermal Memory Power -/// Limit +/// @note Machine Readable Workbook Thermal Memory Power Limit Used to calculate throttles +/// to be at or under the power limit Per DIMM basis Consumers: eff_config_thermal +/// and +/// bulk_pwr_throttles /// inline fapi2::ReturnCode mrw_thermal_memory_power_limit(uint32_t& o_value) { @@ -19265,7 +19269,8 @@ fapi_try_exit: /// @note Generated by gen_accessors.pl generateParameters (SYSTEM) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK /// @note Machine Readable Workbook DIMM power curve percent uplift for this system at max -/// utilization. +/// utilization. Value should be 0 for +/// ISDIMMs /// inline fapi2::ReturnCode mrw_dimm_power_curve_percent_uplift(uint8_t& o_value) { @@ -19286,8 +19291,8 @@ fapi_try_exit: /// @note Generated by gen_accessors.pl generateParameters (SYSTEM) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK /// @note Machine Readable Workbook DIMM power curve percent uplift for this system at -/// idle -/// utilization. +/// idle utilization. Value should be 0 for +/// ISDIMMs /// inline fapi2::ReturnCode mrw_dimm_power_curve_percent_uplift_idle(uint8_t& o_value) { @@ -19330,8 +19335,9 @@ fapi_try_exit: /// @note Generated by gen_accessors.pl generateParameters (SYSTEM) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK /// @note Machine Readable Workbook value for maximum dram data bus utilization in centi -/// percent (c%). Used to determine memory throttle -/// values. +/// percent (c%). Used to determine memory throttle values. Max databus utilization +/// on a per port basis Default to +/// 90% /// inline fapi2::ReturnCode mrw_max_dram_databus_util(uint32_t& o_value) { @@ -19414,13 +19420,58 @@ fapi_try_exit: } /// +/// @brief ATTR_MRW_VMEM_REGULATOR_MEMORY_POWER_LIMIT_PER_DIMM_DDR3 getter +/// @param[out] uint32_t& reference to store the value +/// @note Generated by gen_accessors.pl generateParameters (SYSTEM) +/// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK +/// @note Machine Readable Workbook VMEM regulator power limit per CDIMM assuming a full +/// configuration. Units in cW Used for Cumulus Consumed in +/// mss_eff_config_thermal +/// +inline fapi2::ReturnCode mrw_vmem_regulator_power_limit_per_dimm_ddr3(uint32_t& o_value) +{ + + FAPI_TRY( FAPI_ATTR_GET(fapi2::ATTR_MRW_VMEM_REGULATOR_MEMORY_POWER_LIMIT_PER_DIMM_DDR3, + fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>(), o_value) ); + return fapi2::current_err; + +fapi_try_exit: + FAPI_ERR("failed accessing ATTR_MRW_VMEM_REGULATOR_MEMORY_POWER_LIMIT_PER_DIMM_DDR3: 0x%lx (system target)", + uint64_t(fapi2::current_err)); + return fapi2::current_err; +} + +/// +/// @brief ATTR_MRW_VMEM_REGULATOR_MEMORY_POWER_LIMIT_PER_DIMM_DDR4 getter +/// @param[out] uint32_t& reference to store the value +/// @note Generated by gen_accessors.pl generateParameters (SYSTEM) +/// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK +/// @note Machine Readable Workbook VMEM regulator power limit per DIMM assuming a full +/// configuration. Units in cW Consumed in +/// mss_eff_config_thermal +/// +inline fapi2::ReturnCode mrw_vmem_regulator_power_limit_per_dimm_ddr4(uint32_t& o_value) +{ + + FAPI_TRY( FAPI_ATTR_GET(fapi2::ATTR_MRW_VMEM_REGULATOR_MEMORY_POWER_LIMIT_PER_DIMM_DDR4, + fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>(), o_value) ); + return fapi2::current_err; + +fapi_try_exit: + FAPI_ERR("failed accessing ATTR_MRW_VMEM_REGULATOR_MEMORY_POWER_LIMIT_PER_DIMM_DDR4: 0x%lx (system target)", + uint64_t(fapi2::current_err)); + return fapi2::current_err; +} + +/// /// @brief ATTR_MSS_MRW_MAX_NUMBER_DIMMS_POSSIBLE_PER_VMEM_REGULATOR getter /// @param[out] uint8_t& reference to store the value /// @note Generated by gen_accessors.pl generateParameters (SYSTEM) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK /// @note Machine Readable Workbook value for the maximum possible number of dimms that -/// can be installed under any of the VMEM -/// regulators. +/// can be installed under any of the VMEM regulators. Consumed in +/// eff_config_thermal to calculate +/// mem_watt_target /// inline fapi2::ReturnCode mrw_max_number_dimms_possible_per_vmem_regulator(uint8_t& o_value) { @@ -19540,8 +19591,9 @@ fapi_try_exit: /// @param[out] uint8_t& reference to store the value /// @note Generated by gen_accessors.pl generateParameters (SYSTEM) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK -/// @note Fine refresh mode. Sets DDR4 MRS3. Should be defaulted to normal -/// mode. +/// @note Fine refresh mode. Sets DDR4 MRS3. ZZ uses normal mode. From JEDEC DDR4 Spec +/// 1716.78C from 07-2016 Page 47 Table +/// 4.9.1 /// inline fapi2::ReturnCode mrw_fine_refresh_mode(uint8_t& o_value) { @@ -19561,7 +19613,10 @@ fapi_try_exit: /// @note Generated by gen_accessors.pl generateParameters (SYSTEM) /// @return fapi2::ReturnCode - FAPI2_RC_SUCCESS iff get is OK /// @note Temperature refresh range. Sets DDR4 MRS4. Should be defaulted to extended -/// range. +/// range. NORMAL for running at 85 degrees C or less, EXTENDED for 95 or less +/// degrees C Used for calculating periodic refresh intervals JEDEC DDR4 spec +/// 1716.78C from 07-2016 page 46 +/// 4.8.1 /// inline fapi2::ReturnCode mrw_temp_refresh_range(uint8_t& o_value) { diff --git a/src/import/chips/p9/procedures/xml/attribute_info/memory_mrw_attributes.xml b/src/import/chips/p9/procedures/xml/attribute_info/memory_mrw_attributes.xml index b3680f6a5..da2a6f4d4 100755 --- a/src/import/chips/p9/procedures/xml/attribute_info/memory_mrw_attributes.xml +++ b/src/import/chips/p9/procedures/xml/attribute_info/memory_mrw_attributes.xml @@ -29,7 +29,10 @@ <id>ATTR_MSS_MRW_SAFEMODE_MEM_THROTTLED_N_COMMANDS_PER_PORT</id> <targetType>TARGET_TYPE_SYSTEM</targetType> <description> - Machine Readable Workbook safe mode throttle value for numerator cfg_nm_n_per_port + Machine Readable Workbook safe mode throttle value for numerator cfg_nm_n_per_port + Set to below optimum value/ rate. + On a per port (MCA) basis + Consumer: thermal_init </description> <valueType>uint32</valueType> <platInit/> @@ -41,9 +44,16 @@ <attribute> <id>ATTR_MSS_MRW_THERMAL_MEMORY_POWER_LIMIT</id> <targetType>TARGET_TYPE_SYSTEM</targetType> - <description>Machine Readable Workbook Thermal Memory Power Limit</description> + <description> + Machine Readable Workbook Thermal Memory Power Limit + Used to calculate throttles to be at or under the power limit + Per DIMM basis + Consumers: eff_config_thermal and bulk_pwr_throttles + </description> <valueType>uint32</valueType> + <mssUnits>cW</mssUnits> <platInit/> + <default>0x000006A4</default> <initToZero/> <!-- little comment to tell us this might change during power/thermal implemetation --> <mssAccessorName>mrw_thermal_memory_power_limit</mssAccessorName> @@ -55,9 +65,11 @@ <description> Machine Readable Workbook DIMM power curve percent uplift for this system at max utilization. - </description> + Value should be 0 for ISDIMMs + </description> <valueType>uint8</valueType> <platInit/> + <default>0x0</default> <initToZero/> <!-- little comment to tell us this might change during power/thermal implemetation --> <mssAccessorName>mrw_dimm_power_curve_percent_uplift</mssAccessorName> @@ -69,9 +81,11 @@ <description> Machine Readable Workbook DIMM power curve percent uplift for this system at idle utilization. + Value should be 0 for ISDIMMs </description> <valueType>uint8</valueType> <platInit/> + <default>0x0</default> <initToZero/> <!-- little comment to tell us this might change during power/thermal implemetation --> <mssAccessorName>mrw_dimm_power_curve_percent_uplift_idle</mssAccessorName> @@ -87,6 +101,7 @@ </description> <valueType>uint32</valueType> <platInit/> + <default>0x00000200</default> <initToZero/> <!-- little comment to tell us we implemented - will remove before flight TODO RTC:159145 --> <mssAccessorName>mrw_mem_m_dram_clocks</mssAccessorName> @@ -98,9 +113,13 @@ <description> Machine Readable Workbook value for maximum dram data bus utilization in centi percent (c%). Used to determine memory throttle values. + Max databus utilization on a per port basis + Default to 90% </description> <valueType>uint32</valueType> <platInit/> + <mssUnits>c%</mssUnits> + <default>0x00002328</default> <initToZero/> <!-- little comment to tell us we implemented - will remove before flight TODO RTC:159145 --> <mssAccessorName>mrw_max_dram_databus_util</mssAccessorName> @@ -131,6 +150,7 @@ <valueType>uint8</valueType> <enum>OFF = 0x00, POWER_DOWN = 0x01, STR = 0x02, PD_AND_STR = 0x03</enum> <platInit/> + <default>OFF</default> <initToZero/> <!-- little comment to tell us this might change during power/thermal implemetation --> <mssAccessorName>mrw_power_control_requested</mssAccessorName> @@ -147,16 +167,51 @@ <enum>FALSE = 0, TRUE = 1</enum> <platInit/> <initToZero/> + <!-- Ineffective for Nimbus --> <!-- little comment to tell us this might change during power/thermal implemetation --> <mssAccessorName>mrw_vmem_regulator_power_limit_per_dimm_adj_enable</mssAccessorName> </attribute> <attribute> + <id>ATTR_MRW_VMEM_REGULATOR_MEMORY_POWER_LIMIT_PER_DIMM_DDR3</id> + <targetType>TARGET_TYPE_SYSTEM</targetType> + <description> + Machine Readable Workbook VMEM regulator power limit per CDIMM assuming a full configuration. Units in cW + Used for Cumulus + Consumed in mss_eff_config_thermal + </description> + <valueType>uint32</valueType> + <platInit/> + <mssUnits>cW</mssUnits> + <initToZero/> + <!-- Ineffective for Nimbus --> + <!-- little comment to tell us this might change during power/thermal implemetation --> + <mssAccessorName>mrw_vmem_regulator_power_limit_per_dimm_ddr3</mssAccessorName> + </attribute> + + <attribute> + <id>ATTR_MRW_VMEM_REGULATOR_MEMORY_POWER_LIMIT_PER_DIMM_DDR4</id> + <targetType>TARGET_TYPE_SYSTEM</targetType> + <description> + Machine Readable Workbook VMEM regulator power limit per DIMM assuming a full configuration. Units in cW + Consumed in mss_eff_config_thermal + </description> + <valueType>uint32</valueType> + <platInit/> + <mssUnits>cW</mssUnits> + <default>0x000006A4</default> + <initToZero/> + <!-- little comment to tell us this might change during power/thermal implemetation --> + <mssAccessorName>mrw_vmem_regulator_power_limit_per_dimm_ddr4</mssAccessorName> + </attribute> + + <attribute> <id>ATTR_MSS_MRW_MAX_NUMBER_DIMMS_POSSIBLE_PER_VMEM_REGULATOR</id> <targetType>TARGET_TYPE_SYSTEM</targetType> <description> Machine Readable Workbook value for the maximum possible number of dimms that can be installed under any of the VMEM regulators. + Consumed in eff_config_thermal to calculate mem_watt_target </description> <valueType>uint8</valueType> <platInit/> @@ -231,7 +286,9 @@ <description> Fine refresh mode. Sets DDR4 MRS3. - Should be defaulted to normal mode. + ZZ uses normal mode. + From JEDEC DDR4 Spec 1716.78C from 07-2016 + Page 47 Table 4.9.1 </description> <valueType>uint8</valueType> <enum> @@ -255,12 +312,16 @@ Temperature refresh range. Sets DDR4 MRS4. Should be defaulted to extended range. + NORMAL for running at 85 degrees C or less, EXTENDED for 95 or less degrees C + Used for calculating periodic refresh intervals + JEDEC DDR4 spec 1716.78C from 07-2016 + page 46 4.8.1 </description> <valueType>uint8</valueType> <enum>NORMAL = 0, EXTEND = 1</enum> <platInit/> <initToZero/> - <default>NORMAL</default> + <default>EXTEND</default> <!-- little comment to tell us we implemented - will remove before flight TODO RTC:159145 --> <mssAccessorName>mrw_temp_refresh_range</mssAccessorName> </attribute> @@ -283,7 +344,7 @@ <targetType>TARGET_TYPE_SYSTEM</targetType> <description>Value of on or off. Determines if prefetching enabled or not.</description> <valueType>uint8</valueType> - <enum>ON = 0, OFF = 1</enum> + <enum>ON = 1, OFF = 0</enum> <platInit/> <initToZero/> <default>ON</default> |