summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C')
-rw-r--r--src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C b/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C
index 7591689e2..342523d5a 100644
--- a/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C
+++ b/src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2018 */
+/* Contributors Listed Below - COPYRIGHT 2018,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -30,14 +30,23 @@
// *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com>
// *HWP HWP Backup: Louis Stermole <stermole@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 1
+// *HWP Level: 2
// *HWP Consumed by: FSP:HB
+// fapi2
+#include <fapi2.H>
+
+// mss lib
#include <p9a_mss_freq.H>
+
+#include <lib/freq/axone_freq_traits.H>
#include <generic/memory/lib/data_engine/p9a/p9a_data_init_traits.H>
+#include <lib/eff_config/explorer_attr_engine_traits.H>
#include <generic/memory/lib/data_engine/data_engine.H>
#include <generic/memory/lib/utils/find.H>
#include <generic/memory/lib/spd/spd_facade.H>
+#include <generic/memory/lib/utils/count_dimm.H>
+#include <generic/memory/lib/utils/freq/gen_mss_freq.H>
///
/// @brief Calculate and save off DIMM frequencies
@@ -46,6 +55,13 @@
///
fapi2::ReturnCode p9a_mss_freq( const fapi2::Target<fapi2::TARGET_TYPE_MEM_PORT>& i_target )
{
+ // If there are no DIMM, we can just get out.
+ if (mss::count_dimm(i_target) == 0)
+ {
+ FAPI_INF("Seeing no DIMM on %s, no freq to set", mss::c_str(i_target));
+ return fapi2::FAPI2_RC_SUCCESS;
+ }
+
// We will first set pre-eff_config attribes
for(const auto& d : mss::find_targets<fapi2::TARGET_TYPE_DIMM>(i_target))
{
@@ -60,12 +76,12 @@ fapi2::ReturnCode p9a_mss_freq( const fapi2::Target<fapi2::TARGET_TYPE_MEM_PORT>
FAPI_TRY( l_rc, "Failed to initialize SPD facade for %s", mss::spd::c_str(d) );
FAPI_TRY( mss::attr_eff_engine<mss::pre_data_init_fields>::set(l_spd_decoder) );
+ FAPI_TRY( mss::attr_derived_engine<mss::generic_metadata_fields>::set(d) );
}
- // TK - Remove hard-code FREQ -- Should we have enums? Louis problem now
- uint64_t HARDCODE_FREQ_LOUIS_REMOVE = 25600;
- FAPI_TRY( mss::attr::set_freq(i_target, HARDCODE_FREQ_LOUIS_REMOVE) );
- }// dimm
+ }
+
+ FAPI_TRY(mss::generate_freq<mss::proc_type::AXONE>(i_target));
fapi_try_exit:
return fapi2::current_err;
OpenPOWER on IntegriCloud