summaryrefslogtreecommitdiffstats
path: root/src/import/generic
diff options
context:
space:
mode:
authorLouis Stermole <stermole@us.ibm.com>2019-03-22 18:48:29 -0400
committerChristian R. Geddes <crgeddes@us.ibm.com>2019-04-05 18:00:23 -0500
commit54a9c7b4a9e85d7d49a38e3d5e3f2407241cde13 (patch)
tree052d3e7646a5905d7a4a940a98fbe77333ee0ed1 /src/import/generic
parentacd09d45c209ec014825cb7539aaab357493ea42 (diff)
downloadtalos-hostboot-54a9c7b4a9e85d7d49a38e3d5e3f2407241cde13.tar.gz
talos-hostboot-54a9c7b4a9e85d7d49a38e3d5e3f2407241cde13.zip
Fix duplicate symbol errors from DEFAULT_MC_TYPE
Change-Id: I7a5a40c0f0ab6a809e6906ad40e26fa473cfb286 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/74903 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Mark Pizzutillo <mark.pizzutillo@ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/74908 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/generic')
-rw-r--r--src/import/generic/memory/lib/utils/freq/gen_mss_freq.H1
-rw-r--r--src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.C150
-rw-r--r--src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.H101
-rw-r--r--src/import/generic/memory/lib/utils/mss_math.H1
-rw-r--r--src/import/generic/memory/lib/utils/voltage/gen_mss_volt.H2
5 files changed, 100 insertions, 155 deletions
diff --git a/src/import/generic/memory/lib/utils/freq/gen_mss_freq.H b/src/import/generic/memory/lib/utils/freq/gen_mss_freq.H
index 5abfbfc00..a70dcebb5 100644
--- a/src/import/generic/memory/lib/utils/freq/gen_mss_freq.H
+++ b/src/import/generic/memory/lib/utils/freq/gen_mss_freq.H
@@ -36,6 +36,7 @@
#ifndef _GEN_MSS_FREQ_H_
#define _GEN_MSS_FREQ_H_
+#include <generic/memory/lib/utils/pos.H>
#include <generic/memory/lib/utils/freq/gen_mss_freq_traits.H>
#include <generic/memory/lib/utils/find.H>
#include <generic/memory/lib/spd/spd_facade.H>
diff --git a/src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.C b/src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.C
index 6ee1e8056..a648fdadc 100644
--- a/src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.C
+++ b/src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.C
@@ -22,153 +22,3 @@
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
-
-///
-/// @file mss_freq_scoreboard.C
-/// @brief Frequency scoreboard class definitions
-///
-// *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: HB:FSP
-
-#include <vector>
-#include <fapi2.H>
-#include <generic/memory/lib/utils/freq/mss_freq_scoreboard.H>
-#include <generic/memory/lib/utils/c_str.H>
-#include <generic/memory/lib/utils/find.H>
-#include <generic/memory/lib/utils/shared/mss_generic_consts.H>
-
-namespace mss
-{
-
-///
-/// @brief Remove frequencies above a limit from the scoreboard
-/// @param[in] i_port_pos position index of port within parent MCBIST
-/// @param[in] i_freq_limit upper limit for frequency
-/// @return FAPI2_RC_SUCCESS if successful
-///
-fapi2::ReturnCode freq_scoreboard::remove_freqs_above_limit(const uint64_t i_port_pos,
- const uint32_t i_freq_limit)
-{
- FAPI_TRY( check_port_position(i_port_pos,
- generic_ffdc_codes::FREQ_SCOREBOARD_REMOVE_FREQS_ABOVE_LIMIT),
- "Invalid port index passed to remove_freqs_above_limit (%d)",
- i_port_pos);
-
- {
- auto& l_port_supported_freqs = iv_supported_port_freqs[i_port_pos];
-
- // Can't do a ranged for loop here because we need the index to get the frequency out of iv_freq_values
- for ( size_t l_index = 0; l_index < l_port_supported_freqs.size(); ++l_index )
- {
- const auto l_scoreboard_freq = iv_freq_values[l_index];
-
- if ( l_scoreboard_freq > i_freq_limit )
- {
- FAPI_INF("Removing freq %d on port %d since it's above the limit %d", l_scoreboard_freq, i_port_pos, i_freq_limit);
- l_port_supported_freqs[l_index] = false;
- }
- }
- }
-
- return fapi2::FAPI2_RC_SUCCESS;
-
-fapi_try_exit:
- return fapi2::current_err;
-}
-
-///
-/// @brief Remove frequencies above a limit from the scoreboard
-/// @param[in] i_port_pos position index of port within parent MCBIST
-/// @param[in] i_freq_limits reference to vector of upper limits for frequency per port
-/// @return FAPI2_RC_SUCCESS if successful
-///
-fapi2::ReturnCode freq_scoreboard::remove_freqs_above_limit(const uint64_t i_port_pos,
- const std::vector<uint32_t> i_freq_limits)
-{
- FAPI_TRY( check_port_position(i_port_pos,
- generic_ffdc_codes::FREQ_SCOREBOARD_REMOVE_FREQS_ABOVE_LIMIT_VECTOR),
- "Invalid port index passed to remove_freqs_above_limit (%d)",
- i_port_pos);
-
- FAPI_ASSERT(i_freq_limits.size() == iv_num_ports,
- fapi2::MSS_INVALID_FREQ_LIST_PASSED()
- .set_SIZE(i_freq_limits.size())
- .set_EXPECTED(iv_num_ports),
- "Invalid frequency list passed to remove_freqs_above_limit (size should be %d but got %d)",
- iv_num_ports, i_freq_limits.size());
-
- {
- const auto l_freq_limit = i_freq_limits[i_port_pos];
- FAPI_TRY( this->remove_freqs_above_limit(i_port_pos, l_freq_limit) );
- }
-
- return fapi2::FAPI2_RC_SUCCESS;
-
-fapi_try_exit:
- return fapi2::current_err;
-}
-
-///
-/// @brief Return the maximum supported frequency for a given port
-/// @param[in] i_port_pos position index of port within parent MCBIST
-/// @param[out] o_freq max supported frequency
-/// @return FAPI2_RC_SUCCESS if successful
-///
-fapi2::ReturnCode freq_scoreboard::max_supported_freq(const uint64_t i_port_pos,
- uint32_t& o_freq) const
-{
- FAPI_TRY( this->check_port_position(i_port_pos,
- generic_ffdc_codes::FREQ_SCOREBOARD_MAX_SUPPORTED_FREQ),
- "Invalid port index passed to max_supported_freq (%d)",
- i_port_pos);
-
- {
- std::vector<uint32_t> l_supported_freqs;
- FAPI_TRY( this->supported_freqs(i_port_pos, l_supported_freqs) );
-
- o_freq = l_supported_freqs.empty() ? 0 : l_supported_freqs.back();
- }
-
- return fapi2::FAPI2_RC_SUCCESS;
-
-fapi_try_exit:
- return fapi2::current_err;
-}
-
-///
-/// @brief Return a list of supported frequencies for a given port
-/// @param[in] i_port_pos position index of port within parent MCBIST
-/// @param[out] o_freq vector of supported frequencies
-/// @return FAPI2_RC_SUCCESS if successful
-///
-fapi2::ReturnCode freq_scoreboard::supported_freqs(const uint64_t i_port_pos,
- std::vector<uint32_t>& o_freqs) const
-{
- FAPI_TRY( check_port_position(i_port_pos,
- generic_ffdc_codes::FREQ_SCOREBOARD_SUPPORTED_FREQS),
- "Invalid port index passed to supported_freqs (%d)",
- i_port_pos);
-
- {
- o_freqs.clear();
- auto& l_port_supported_freqs = iv_supported_port_freqs[i_port_pos];
-
- for ( size_t l_index = 0; l_index < iv_freq_values.size(); ++l_index )
- {
- if (l_port_supported_freqs[l_index])
- {
- o_freqs.push_back(iv_freq_values[l_index]);
- }
- }
- }
-
- return fapi2::FAPI2_RC_SUCCESS;
-
-fapi_try_exit:
- return fapi2::current_err;
-}
-
-} // ns mss
diff --git a/src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.H b/src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.H
index 1cd31adc5..104bf38ca 100644
--- a/src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.H
+++ b/src/import/generic/memory/lib/utils/freq/mss_freq_scoreboard.H
@@ -39,6 +39,7 @@
#include <vector>
#include <fapi2.H>
#include <generic/memory/lib/utils/freq/gen_mss_freq_traits.H>
+#include <generic/memory/lib/utils/pos.H>
#include <generic/memory/lib/utils/c_str.H>
#include <generic/memory/lib/utils/find.H>
#include <generic/memory/lib/utils/pos.H>
@@ -132,7 +133,34 @@ class freq_scoreboard
/// @return FAPI2_RC_SUCCESS if successful
///
fapi2::ReturnCode remove_freqs_above_limit(const uint64_t i_port_pos,
- const uint32_t i_freq_limit);
+ const uint32_t i_freq_limit)
+ {
+ FAPI_TRY( check_port_position(i_port_pos,
+ generic_ffdc_codes::FREQ_SCOREBOARD_REMOVE_FREQS_ABOVE_LIMIT),
+ "Invalid port index passed to remove_freqs_above_limit (%d)",
+ i_port_pos);
+
+ {
+ auto& l_port_supported_freqs = iv_supported_port_freqs[i_port_pos];
+
+ // Can't do a ranged for loop here because we need the index to get the frequency out of iv_freq_values
+ for ( size_t l_index = 0; l_index < l_port_supported_freqs.size(); ++l_index )
+ {
+ const auto l_scoreboard_freq = iv_freq_values[l_index];
+
+ if ( l_scoreboard_freq > i_freq_limit )
+ {
+ FAPI_INF("Removing freq %d on port %d since it's above the limit %d", l_scoreboard_freq, i_port_pos, i_freq_limit);
+ l_port_supported_freqs[l_index] = false;
+ }
+ }
+ }
+
+ return fapi2::FAPI2_RC_SUCCESS;
+
+ fapi_try_exit:
+ return fapi2::current_err;
+ }
///
/// @brief Remove frequencies above a limit from the scoreboard
@@ -141,7 +169,30 @@ class freq_scoreboard
/// @return FAPI2_RC_SUCCESS if successful
///
fapi2::ReturnCode remove_freqs_above_limit(const uint64_t i_port_pos,
- const std::vector<uint32_t> i_freq_limits);
+ const std::vector<uint32_t> i_freq_limits)
+ {
+ FAPI_TRY( check_port_position(i_port_pos,
+ generic_ffdc_codes::FREQ_SCOREBOARD_REMOVE_FREQS_ABOVE_LIMIT_VECTOR),
+ "Invalid port index passed to remove_freqs_above_limit (%d)",
+ i_port_pos);
+
+ FAPI_ASSERT(i_freq_limits.size() == iv_num_ports,
+ fapi2::MSS_INVALID_FREQ_LIST_PASSED()
+ .set_SIZE(i_freq_limits.size())
+ .set_EXPECTED(iv_num_ports),
+ "Invalid frequency list passed to remove_freqs_above_limit (size should be %d but got %d)",
+ iv_num_ports, i_freq_limits.size());
+
+ {
+ const auto l_freq_limit = i_freq_limits[i_port_pos];
+ FAPI_TRY( this->remove_freqs_above_limit(i_port_pos, l_freq_limit) );
+ }
+
+ return fapi2::FAPI2_RC_SUCCESS;
+
+ fapi_try_exit:
+ return fapi2::current_err;
+ }
///
/// @brief Remove frequencies not on a given list from the scoreboard
@@ -185,7 +236,25 @@ class freq_scoreboard
/// @return FAPI2_RC_SUCCESS if successful
///
fapi2::ReturnCode max_supported_freq(const uint64_t i_port_pos,
- uint32_t& o_freq) const;
+ uint32_t& o_freq) const
+ {
+ FAPI_TRY( this->check_port_position(i_port_pos,
+ generic_ffdc_codes::FREQ_SCOREBOARD_MAX_SUPPORTED_FREQ),
+ "Invalid port index passed to max_supported_freq (%d)",
+ i_port_pos);
+
+ {
+ std::vector<uint32_t> l_supported_freqs;
+ FAPI_TRY( this->supported_freqs(i_port_pos, l_supported_freqs) );
+
+ o_freq = l_supported_freqs.empty() ? 0 : l_supported_freqs.back();
+ }
+
+ return fapi2::FAPI2_RC_SUCCESS;
+
+ fapi_try_exit:
+ return fapi2::current_err;
+ }
///
/// @brief Return a list of supported frequencies for a given port
@@ -194,7 +263,31 @@ class freq_scoreboard
/// @return FAPI2_RC_SUCCESS if successful
///
fapi2::ReturnCode supported_freqs(const uint64_t i_port_pos,
- std::vector<uint32_t>& o_freqs) const;
+ std::vector<uint32_t>& o_freqs) const
+ {
+ FAPI_TRY( check_port_position(i_port_pos,
+ generic_ffdc_codes::FREQ_SCOREBOARD_SUPPORTED_FREQS),
+ "Invalid port index passed to supported_freqs (%d)",
+ i_port_pos);
+
+ {
+ o_freqs.clear();
+ auto& l_port_supported_freqs = iv_supported_port_freqs[i_port_pos];
+
+ for ( size_t l_index = 0; l_index < iv_freq_values.size(); ++l_index )
+ {
+ if (l_port_supported_freqs[l_index])
+ {
+ o_freqs.push_back(iv_freq_values[l_index]);
+ }
+ }
+ }
+
+ return fapi2::FAPI2_RC_SUCCESS;
+
+ fapi_try_exit:
+ return fapi2::current_err;
+ }
///
/// @brief Resolve frequency scoreboard by deconfiguring any non-conforming ports
diff --git a/src/import/generic/memory/lib/utils/mss_math.H b/src/import/generic/memory/lib/utils/mss_math.H
index fc9a9eb7d..b60cbc2ae 100644
--- a/src/import/generic/memory/lib/utils/mss_math.H
+++ b/src/import/generic/memory/lib/utils/mss_math.H
@@ -31,6 +31,7 @@
#ifndef _MSS_MATH_H_
#define _MSS_MATH_H_
+#include <fapi2.H>
#include <cstdint>
namespace mss
diff --git a/src/import/generic/memory/lib/utils/voltage/gen_mss_volt.H b/src/import/generic/memory/lib/utils/voltage/gen_mss_volt.H
index 1b74f0028..d84c97dbe 100644
--- a/src/import/generic/memory/lib/utils/voltage/gen_mss_volt.H
+++ b/src/import/generic/memory/lib/utils/voltage/gen_mss_volt.H
@@ -37,9 +37,9 @@
#define _GEN_MSS_VOLT_H_
#include <fapi2.H>
-#include <generic/memory/lib/utils/shared/mss_generic_consts.H>
#include <generic/memory/lib/utils/find.H>
#include <generic/memory/lib/utils/c_str.H>
+#include <generic/memory/lib/utils/shared/mss_generic_consts.H>
#include <generic/memory/lib/utils/voltage/gen_mss_voltage_traits.H>
namespace mss
OpenPOWER on IntegriCloud