summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9a/procedures/hwp/memory/lib/freq/axone_freq_traits.H
diff options
context:
space:
mode:
authorLouis Stermole <stermole@us.ibm.com>2019-01-24 13:36:56 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2019-04-15 12:11:18 -0500
commit2b26420e72477835ffeacb2dab9970266ef07566 (patch)
tree005fff430a99823e7d1fcd11bc66fb043f160c68 /src/import/chips/p9a/procedures/hwp/memory/lib/freq/axone_freq_traits.H
parent0d3c3c752b95d3ddc42d82bb2a66ea9ff4f0c6b1 (diff)
downloadtalos-hostboot-2b26420e72477835ffeacb2dab9970266ef07566.tar.gz
talos-hostboot-2b26420e72477835ffeacb2dab9970266ef07566.zip
Add p9a_mss_freq procedure
Change-Id: I764e1ade2f63cabb7f6e5cf2b39e89811ea432c4 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70989 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75567 Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9a/procedures/hwp/memory/lib/freq/axone_freq_traits.H')
-rw-r--r--src/import/chips/p9a/procedures/hwp/memory/lib/freq/axone_freq_traits.H70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/import/chips/p9a/procedures/hwp/memory/lib/freq/axone_freq_traits.H b/src/import/chips/p9a/procedures/hwp/memory/lib/freq/axone_freq_traits.H
index ae17d925d..1b4f96d0c 100644
--- a/src/import/chips/p9a/procedures/hwp/memory/lib/freq/axone_freq_traits.H
+++ b/src/import/chips/p9a/procedures/hwp/memory/lib/freq/axone_freq_traits.H
@@ -22,3 +22,73 @@
/* permissions and limitations under the License. */
/* */
/* IBM_PROLOG_END_TAG */
+
+///
+/// @file axone_freq_traits.H
+/// @brief Contains frequency traits information for Axone
+///
+// *HWP HWP Owner: Stephen Glancy <sglancy@us.ibm.com>
+// *HWP FW Owner: Andre Marin <aamarin@us.ibm.com>
+// *HWP Team: Memory
+// *HWP Level: 2
+// *HWP Consumed by: CI
+
+#ifndef _AXONE_FREQ_TRAITS_H_
+#define _AXONE_FREQ_TRAITS_H_
+
+#include <fapi2.H>
+#include <generic/memory/lib/utils/shared/mss_generic_consts.H>
+#include <generic/memory/lib/utils/freq/gen_mss_freq_traits.H>
+#include <vpd_access.H>
+
+namespace mss
+{
+
+///
+/// @class Traits and policy class for frequency and synchronous code - specialization for the AXONE processor type
+///
+template<>
+class frequency_traits<mss::proc_type::AXONE>
+{
+ public:
+ //////////////////////////////////////////////////////////////
+ // Target types
+ //////////////////////////////////////////////////////////////
+ static constexpr fapi2::TargetType PORT_TARGET_TYPE = fapi2::TARGET_TYPE_MEM_PORT;
+ static constexpr fapi2::TargetType FREQ_TARGET_TYPE = fapi2::TARGET_TYPE_MEM_PORT;
+ static constexpr fapi2::TargetType VPD_TARGET_TYPE = fapi2::TARGET_TYPE_OCMB_CHIP;
+
+ //////////////////////////////////////////////////////////////
+ // Traits values
+ //////////////////////////////////////////////////////////////
+ static const std::vector<uint64_t> SUPPORTED_FREQS;
+ // MEM_PORT is our frequency domain. So 1 port per domain
+ static constexpr uint64_t PORTS_PER_FREQ_DOMAIN = 1;
+ // Max DIMM's per port
+ static constexpr uint64_t MAX_DIMM_PER_PORT = 2;
+ // Maxium number of primary ranks on a DIMM
+ static constexpr uint64_t MAX_PRIMARY_RANK_PER_DIMM = 4;
+ // MC type for Axone is constant - EXPLORER
+ static constexpr mss::mc_type MC = mss::mc_type::EXPLORER;
+ static constexpr const char* PROC_STR = "AXONE";
+
+ // VPD traits values
+ // TK Resolve these when we know what they are for Axone
+ static constexpr uint64_t VPD_KEYWORD_MAX = 255;
+ static constexpr const char* VPD_BLOB_NAME = "EFD";
+ static constexpr auto VPD_BLOB = fapi2::MemVpdData::EFD;
+ static constexpr auto LRDIMM_TYPE = fapi2::ENUM_ATTR_EFF_DIMM_TYPE_LRDIMM;
+
+ // Coding minion, why have these explicitly defined frequency values?
+ // Isn't the supported frequency vector used for this purpose?
+ // Well, we need to callout the specific frequency values that are allowed on a given system
+ // As we can't callout a vector in error callouts and each traits might have a different number of allowable traits,
+ // the below values are hardcoded specifically for the error callouts
+ static constexpr uint64_t SUPPORTED_FREQ0 = DIMM_SPEED_2666;
+ static constexpr uint64_t SUPPORTED_FREQ1 = DIMM_SPEED_2933;
+ static constexpr uint64_t SUPPORTED_FREQ2 = DIMM_SPEED_3200;
+};
+
+
+} // ns mss
+#endif
OpenPOWER on IntegriCloud