diff options
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/workarounds/eff_config_workarounds.H')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/workarounds/eff_config_workarounds.H | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/eff_config_workarounds.H b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/eff_config_workarounds.H index ad8bee571..f41d9b89c 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/eff_config_workarounds.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/eff_config_workarounds.H @@ -22,3 +22,54 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ + +/// +/// @file eff_config_workarounds.H +/// @brief Workarounds for effective config +/// Workarounds are very device specific, so there is no attempt to generalize +/// this code in any way. +/// +// *HWP HWP Owner: Stephen Glancy <sglancy@us.ibm.com> +// *HWP HWP Backup: Andre Marin <aamarin@us.ibm.com> +// *HWP Team: Memory +// *HWP Level: 3 +// *HWP Consumed by: FSP:HB + +#ifndef _EFF_CONFIG_WORKAROUNDS_H_ +#define _EFF_CONFIG_WORKAROUNDS_H_ + +#include <fapi2.H> + +namespace mss +{ + +namespace workarounds +{ + +namespace eff_config +{ + +/// +/// @brief Checks if the NVDIMM RC drive strength workaround is needed +/// @param[in] i_target DIMM target on which to operate +/// @param[out] o_is_needed true if the workaround is needed +/// @return SUCCESS if the code executes successfully +/// +fapi2::ReturnCode is_nvdimm_rc_drive_strength_needed(const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target, + bool& o_is_needed); + +/// +/// @brief Updates the RC drive strength if the workaround is needed +/// @param[in] i_target DIMM target on which to operate +/// @param[in] i_override_value the value to override if the workaround needs to be applied +/// @param[in,out] io_rc_value Register Control word value to update +/// @return SUCCESS if the code executes successfully +/// +fapi2::ReturnCode nvdimm_rc_drive_strength(const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target, + const uint8_t i_override_value, + fapi2::buffer<uint8_t>& io_rc_value); + +} // ns eff_config +} // ns workarounds +} // ns mss +#endif |