diff options
Diffstat (limited to 'src/import/chips')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/memory/lib/mc/mc.C | 105 |
1 files changed, 8 insertions, 97 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mc/mc.C b/src/import/chips/p9/procedures/hwp/memory/lib/mc/mc.C index 42dd1255e..77f2cd481 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/mc/mc.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/mc/mc.C @@ -52,101 +52,7 @@ namespace mss template<> fapi2::ReturnCode dump_regs( const fapi2::Target<TARGET_TYPE_MCS>& i_target ) { - // To generate this vector: - // grep MCA_MBA chips/p9/common/include/p9_mc_scom_addresses.H | awk '{ print "{\42" $2 "\42,", $2, "}," }' - static const std::vector< std::pair<char const*, uint64_t> > l_mba_registers = - { - {"MCA_MBACALFIRQ", MCA_MBACALFIRQ }, - {"MCA_MBACALFIRQ_AND", MCA_MBACALFIRQ_AND }, - {"MCA_MBACALFIRQ_OR", MCA_MBACALFIRQ_OR }, - {"MCA_MBACALFIR_ACTION0", MCA_MBACALFIR_ACTION0 }, - {"MCA_MBACALFIR_ACTION1", MCA_MBACALFIR_ACTION1 }, - {"MCA_MBACALFIR_MASK", MCA_MBACALFIR_MASK }, - {"MCA_MBACALFIR_MASK_AND", MCA_MBACALFIR_MASK_AND }, - {"MCA_MBACALFIR_MASK_OR", MCA_MBACALFIR_MASK_OR }, - {"MCA_MBAREF0Q", MCA_MBAREF0Q }, - {"MCA_MBAREFAQ", MCA_MBAREFAQ }, - {"MCA_MBARPC0Q", MCA_MBARPC0Q }, - {"MCA_MBASTR0Q", MCA_MBASTR0Q }, - {"MCA_MBA_CAL0Q", MCA_MBA_CAL0Q }, - {"MCA_MBA_CAL1Q", MCA_MBA_CAL1Q }, - {"MCA_MBA_CAL2Q", MCA_MBA_CAL2Q }, - {"MCA_MBA_CAL3Q", MCA_MBA_CAL3Q }, - {"MCA_MBA_DBG0Q", MCA_MBA_DBG0Q }, - {"MCA_MBA_DBG1Q", MCA_MBA_DBG1Q }, - {"MCA_MBA_DSM0Q", MCA_MBA_DSM0Q }, - {"MCA_MBA_ERR_REPORTQ", MCA_MBA_ERR_REPORTQ }, - {"MCA_MBA_FARB0Q", MCA_MBA_FARB0Q }, - {"MCA_MBA_FARB1Q", MCA_MBA_FARB1Q }, - {"MCA_MBA_FARB2Q", MCA_MBA_FARB2Q }, - {"MCA_MBA_FARB3Q", MCA_MBA_FARB3Q }, - {"MCA_MBA_FARB4Q", MCA_MBA_FARB4Q }, - {"MCA_MBA_FARB5Q", MCA_MBA_FARB5Q }, - {"MCA_MBA_FARB6Q", MCA_MBA_FARB6Q }, - {"MCA_MBA_FARB7Q", MCA_MBA_FARB7Q }, - {"MCA_MBA_PMU0Q", MCA_MBA_PMU0Q }, - {"MCA_MBA_PMU1Q", MCA_MBA_PMU1Q }, - {"MCA_MBA_PMU2Q", MCA_MBA_PMU2Q }, - {"MCA_MBA_PMU3Q", MCA_MBA_PMU3Q }, - {"MCA_MBA_PMU4Q", MCA_MBA_PMU4Q }, - {"MCA_MBA_PMU5Q", MCA_MBA_PMU5Q }, - {"MCA_MBA_PMU6Q", MCA_MBA_PMU6Q }, - {"MCA_MBA_PMU7Q", MCA_MBA_PMU7Q }, - {"MCA_MBA_PMU8Q", MCA_MBA_PMU8Q }, - {"MCA_MBA_RRQ0Q", MCA_MBA_RRQ0Q }, - {"MCA_MBA_TMR0Q", MCA_MBA_TMR0Q }, - {"MCA_MBA_TMR1Q", MCA_MBA_TMR1Q }, - {"MCA_MBA_TMR2Q", MCA_MBA_TMR2Q }, - {"MCA_MBA_WRQ0Q", MCA_MBA_WRQ0Q }, - }; - - // To generate this vector: - // grep MCA_M chips/p9/common/include/p9_mc_scom_addresses.H | awk '{ print "{\42" $2 "\42,", $2, "}," }' - // grep MCS_PORT02 chips/p9/common/include/p9_mc_scom_addresses.H | awk '{ print "{\42" $2 "\42,", $2, "}," }' - // grep MCS_PORT13 chips/p9/common/include/p9_mc_scom_addresses.H | awk '{ print "{\42" $2 "\42,", $2, "}," }' - static const std::vector< std::pair<char const*, uint64_t> > l_mcs_registers = - { - {"MCS_MCFGP", MCS_MCFGP }, - {"MCS_MCFGPA", MCS_MCFGPA }, - {"MCS_MCFGPM", MCS_MCFGPM }, - {"MCS_MCFGPMA", MCS_MCFGPMA }, - {"MCS_MCFIR", MCS_MCFIR }, - {"MCS_MCFIR_AND", MCS_MCFIR_AND }, - {"MCS_MCFIR_OR", MCS_MCFIR_OR }, - {"MCS_MCFIRACT0", MCS_MCFIRACT0 }, - {"MCS_MCFIRACT1", MCS_MCFIRACT1 }, - {"MCS_MCFIRMASK", MCS_MCFIRMASK }, - {"MCS_MCFIRMASK_AND", MCS_MCFIRMASK_AND }, - {"MCS_MCFIRMASK_OR", MCS_MCFIRMASK_OR }, - {"MCS_MCLFSR", MCS_MCLFSR }, - {"MCS_MCMODE0", MCS_MCMODE0 }, - {"MCS_MCMODE1", MCS_MCMODE1 }, - {"MCS_MCMODE2", MCS_MCMODE2 }, - {"MCS_MCPERF1", MCS_MCPERF1 }, - {"MCS_MCSYNC", MCS_MCSYNC }, - {"MCS_MCTO", MCS_MCTO }, - {"MCS_MCWATCNTL", MCS_MCWATCNTL }, - }; - - for (const auto& r : l_mcs_registers) - { - fapi2::buffer<uint64_t> l_data; - FAPI_TRY( mss::getScom(i_target, r.second, l_data) ); - FAPI_DBG("dump %s: 0x%016lx 0x%016lx", r.first, r.second, l_data); - } - - for (const auto& p : find_targets<TARGET_TYPE_MCA>(i_target)) - { - for (const auto r : l_mba_registers) - { - fapi2::buffer<uint64_t> l_data; - FAPI_TRY( mss::getScom(p, r.second, l_data) ); - FAPI_DBG("dump %s: 0x%016lx 0x%016lx", r.first, r.second, l_data); - } - } - -fapi_try_exit: - return fapi2::current_err; + return fapi2::FAPI2_RC_SUCCESS; } namespace mc @@ -168,7 +74,6 @@ fapi2::ReturnCode thermal_throttle_scominit (const fapi2::Target<fapi2::TARGET_T FAPI_TRY(mss::getScom(i_target, MCA_MBA_FARB3Q, l_data)); uint32_t l_throttle_per_port = 0; - FAPI_TRY( mss::mrw_safemode_mem_throttled_n_commands_per_port( l_throttle_per_port) ); l_data.insertFromRight<MCA_MBA_FARB3Q_CFG_NM_N_PER_SLOT, MCA_MBA_FARB3Q_CFG_NM_N_PER_SLOT_LEN>(l_throttle_per_port); @@ -178,8 +83,8 @@ fapi2::ReturnCode thermal_throttle_scominit (const fapi2::Target<fapi2::TARGET_T l_data.clearBit<MCA_MBA_FARB3Q_CFG_NM_CHANGE_AFTER_SYNC>(); FAPI_TRY( mss::putScom(i_target, MCA_MBA_FARB3Q, l_data) ); - } + { fapi2::buffer<uint64_t> l_data; uint32_t l_throttle_per_slot = 0; @@ -191,9 +96,11 @@ fapi2::ReturnCode thermal_throttle_scominit (const fapi2::Target<fapi2::TARGET_T l_data.insertFromRight<MCA_MBA_FARB4Q_EMERGENCY_N, MCA_MBA_FARB4Q_EMERGENCY_N_LEN>(l_throttle_per_slot); FAPI_TRY( mss::putScom(i_target, MCA_MBA_FARB4Q, l_data) ); } + fapi_try_exit: return fapi2::current_err; } + /// /// @brief Disable emergency mode throttle for thermal_init /// @param[in] i_target the MCS target @@ -203,11 +110,15 @@ fapi_try_exit: fapi2::ReturnCode disable_emergency_throttle (const fapi2::Target<fapi2::TARGET_TYPE_MCS>& i_target) { fapi2::buffer<uint64_t> l_data; + FAPI_TRY( mss::getScom(i_target, MCS_MCMODE0, l_data)); l_data.clearBit<MCS_MCMODE0_ENABLE_EMER_THROTTLE>(); FAPI_TRY( mss::putScom(i_target, MCS_MCMODE0, l_data)); + fapi_try_exit: return fapi2::current_err; } + } // namespace mc + } //close namespace mss |