summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/eff_config_workarounds.H
diff options
context:
space:
mode:
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.H51
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
OpenPOWER on IntegriCloud