diff options
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/workarounds/nvdimm_workarounds.H')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/workarounds/nvdimm_workarounds.H | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/nvdimm_workarounds.H b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/nvdimm_workarounds.H index 4f399e6b8..39952ddf8 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/nvdimm_workarounds.H +++ b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/nvdimm_workarounds.H @@ -58,18 +58,44 @@ typedef fapi2::ReturnCode (*p9_flush_nvdimm_FP_t) (const fapi2::Target<fapi2::TA /// @param[in] i_target - PROC_CHIP target /// @return FAPI2_RC_SUCCESS iff setup was successful /// - fapi2::ReturnCode trigger_csave( const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target ); /// -/// @brief Helper for trigger_csave. This subroutine assert RESET_n to trigger -/// the backup on nvdimm +/// @brief Program the necessary scom regs to prepare for CSAVE +/// @param[in] i_target - PROC_CHIP target +/// @param[in] i_mcbist - mcbist position relative to the proc +/// @param[out] o_addresses - list of addresses that require restore +/// @param[out] o_data - data to restore to o_addresses +/// @return FAPI2_RC_SUCCESS iff setup was successful +/// +fapi2::ReturnCode prep_for_csave( const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target, + const uint8_t i_mcbist, + std::vector<uint64_t>& o_addresses, + std::vector<fapi2::buffer<uint64_t>>& o_data); + +/// +/// @brief Select which port to run CCS on /// @param[in] i_target - PROC_CHIP target -/// @param[in] i_mca_pos - The MCA position relative to the PROC +/// @param[in] i_mca - mca position relative to the proc +/// @param[out] o_addresses - list of addresses that require restore +/// @param[out] o_data - data to restore to o_addresses /// @return FAPI2_RC_SUCCESS iff setup was successful /// +fapi2::ReturnCode select_port(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target, + const uint8_t i_mca, + std::vector<uint64_t>& o_addresses, + std::vector<fapi2::buffer<uint64_t>>& o_data); -fapi2::ReturnCode assert_resetn( const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target, uint8_t i_mca_pos); +/// +/// @brief Start or stop CCS +/// @param[in] i_target - PROC_CHIP target +/// @param[in] i_mcbist - mcbist position relative to the proc +/// @param[in] i_start_stop - start or stop CCS +/// @return FAPI2_RC_SUCCESS iff setup was successful +/// +fapi2::ReturnCode start_stop_ccs( const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target, + const uint8_t i_mcbist, + const bool i_start_stop); /// /// @brief change the BAR valid state on MCS with NVDIMM installed @@ -82,15 +108,6 @@ fapi2::ReturnCode change_bar_valid_state( const fapi2::Target<fapi2::TARGET_TYPE const fapi2::buffer<uint8_t> i_port_bitmap, const uint64_t i_state); -/// -/// @brief Helper for trigger_csave. This subroutine puts the MCA into STR -/// @param[in] i_target - PROC_CHIP target -/// @param[in] i_mca_pos - The MCA position relative to the PROC -/// @return FAPI2_RC_SUCCESS iff setup was successful -/// - -fapi2::ReturnCode self_refresh_entry( const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target, uint8_t i_mca_pos); - }//ns nvdimm }//ns workarounds }//ns mss |