diff options
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/workarounds/ccs_workarounds.H')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/workarounds/ccs_workarounds.H | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/ccs_workarounds.H b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/ccs_workarounds.H index e85c8ea44..c39187b37 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/ccs_workarounds.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/ccs_workarounds.H @@ -22,3 +22,64 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ + +/// +/// @file ccs_workarounds.H +/// @brief Contains CCS workarounds +/// +// *HWP HWP Owner: Stephen Glancy <sglancy@us.ibm.com> +// *HWP HWP Backup: Louis Stermole <stermole@us.ibm.com> +// *HWP Team: Memory +// *HWP Level: 3 +// *HWP Consumed by: FSP:HB Memory Lab + +#ifndef _CCS_WORKAROUNDS_H +#define _CCS_WORKAROUNDS_H + +#include <fapi2.H> +#include <p9_mc_scom_addresses.H> + +#include <generic/memory/lib/utils/c_str.H> +#include <generic/memory/lib/utils/find.H> +#include <lib/ccs/ccs.H> + +namespace mss +{ + +namespace ccs +{ + +namespace workarounds +{ + +/// +/// @brief Issues the PDA exit command +/// @param[in] i_target - the DIMM target on which to operate +/// @param[in] i_rank - the rank on which to operate +/// @param[in,out] io_program - the CCS program +/// @return fapi2::ReturnCode - SUCCESS iff everything executes successfully +/// @note The PHY traps both the a-side and b-side MRS's into the same shadow register +/// After the a-side MRS exits PDA, the b-side MRS will not be taken out of PDA mode +/// To workaround this problem, a-side MRS is issued, then the shadow register is modified to have PDA mode enabled +/// Then the b-side MRS is issued +/// +fapi2::ReturnCode exit( const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target, + const uint64_t i_rank, + ccs::program<fapi2::TARGET_TYPE_MCBIST>& io_program ); + +/// +/// @brief Re-enables PDA mode on a given rank in the shadow registers +/// @param[in] i_target - the MCA target on which to operate +/// @param[in] i_rank - the rank on which to operate +/// @return fapi2::ReturnCode - SUCCESS iff everything executes successfully +/// +fapi2::ReturnCode enable_pda_shadow_reg( const fapi2::Target<fapi2::TARGET_TYPE_MCA>& i_target, + const uint64_t i_rank ); + +} // ns workarounds + +} // ns ccs + +} // ns mss + +#endif |