summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp
diff options
context:
space:
mode:
authorAndre Marin <aamarin@us.ibm.com>2017-03-13 11:22:05 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-03-22 15:24:01 -0400
commit0f5d9ad1ca5f27d3aaeecceea0f326e65a70478b (patch)
treeacc740a285a403ebb68aa1e11f6925906d3b92a9 /src/import/chips/p9/procedures/hwp
parent6e5abe411a81cde8ba3ae51df35d42667d9ef9f2 (diff)
downloadtalos-hostboot-0f5d9ad1ca5f27d3aaeecceea0f326e65a70478b.tar.gz
talos-hostboot-0f5d9ad1ca5f27d3aaeecceea0f326e65a70478b.zip
Move find API to share among memory controllers
Change-Id: I25b2a380f85e3e66f38299d2285934faf900ffdb Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/37850 Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Brian R. Silver <bsilver@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Dev-Ready: ANDRE A. MARIN <aamarin@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/37884 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_aue_trap.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_mpe_trap.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_nce_trap.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_rce_trap.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_ue_trap.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/maint_current_trap.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/mbs_error_vector_trap.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/read_error_count_regs.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/eff_config/attr_setters.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/eff_config/memory_size.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/fir/check.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/fir/memdiags_fir.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/freq/cas_latency.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/mc/mc.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/mc/perf_reg.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/mc/xlate.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors_manual.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/phy/dp16.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/decoder.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder_v1_1.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_0.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_1.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_2.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_0.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_1.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/spd/spd_factory.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H4
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/find.H476
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/mss_pair.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/workarounds/adr32s_workarounds.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/mss.H2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_bulk_pwr_throttles.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_mc.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C3
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_freq.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_memdiag.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_scominit.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_thermal_init.C4
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_utils_to_throttle.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C2
51 files changed, 52 insertions, 529 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
index 90004c830..f19b4ca8b 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
@@ -43,7 +43,7 @@
#include <lib/eff_config/timing.H>
#include <lib/dimm/rank.H>
#include <lib/utils/conversions.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/dimm/eff_dimm.H>
#include <lib/dimm/mrs_load.H>
#include <lib/shared/mss_kind.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_aue_trap.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_aue_trap.H
index 0a5c52d15..ca0adda6f 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_aue_trap.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_aue_trap.H
@@ -39,7 +39,7 @@
#include <fapi2.H>
#include <lib/mcbist/address.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/ecc/ecc_traits.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_mpe_trap.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_mpe_trap.H
index efd24270a..5c6e3dcde 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_mpe_trap.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_mpe_trap.H
@@ -39,7 +39,7 @@
#include <fapi2.H>
#include <lib/mcbist/address.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/ecc/ecc_traits.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_nce_trap.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_nce_trap.H
index a3964bb81..278ac84ff 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_nce_trap.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_nce_trap.H
@@ -39,7 +39,7 @@
#include <fapi2.H>
#include <lib/mcbist/address.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/ecc/ecc_traits.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_rce_trap.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_rce_trap.H
index baa19c11e..272d98e4a 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_rce_trap.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_rce_trap.H
@@ -39,7 +39,7 @@
#include <fapi2.H>
#include <lib/mcbist/address.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/ecc/ecc_traits.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_ue_trap.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_ue_trap.H
index 0f69460ad..bdfc24442 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_ue_trap.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mainline_ue_trap.H
@@ -39,7 +39,7 @@
#include <fapi2.H>
#include <lib/mcbist/address.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/ecc/ecc_traits.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/maint_current_trap.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/maint_current_trap.H
index 3639454ae..f18ec6496 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/maint_current_trap.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/maint_current_trap.H
@@ -39,7 +39,7 @@
#include <fapi2.H>
#include <lib/mcbist/address.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/ecc/ecc_traits.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mbs_error_vector_trap.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mbs_error_vector_trap.H
index 7f9bc11ec..c9778e3ec 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mbs_error_vector_trap.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/mbs_error_vector_trap.H
@@ -38,7 +38,7 @@
#include <fapi2.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/ecc/ecc_traits.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/read_error_count_regs.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/read_error_count_regs.H
index 049f27fb6..54f9d6170 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/read_error_count_regs.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/read_error_count_regs.H
@@ -39,7 +39,7 @@
#include <fapi2.H>
#include <lib/mcbist/address.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/ecc/ecc_traits.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/attr_setters.C b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/attr_setters.C
index a6a396766..c50c32c2a 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/attr_setters.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/attr_setters.C
@@ -34,7 +34,7 @@
#include <fapi2.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
namespace mss
{
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/memory_size.C b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/memory_size.C
index aea2bfd64..82869862c 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/memory_size.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/memory_size.C
@@ -39,7 +39,7 @@
#include <lib/shared/mss_const.H>
#include <lib/eff_config/memory_size.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
namespace mss
{
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.C b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.C
index 2e5cf9deb..3e71c0ef3 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.C
@@ -31,7 +31,7 @@
#include <fapi2.H>
#include <mss.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/eff_config/timing.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.H b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.H
index ce6415a32..c4ccad4c4 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/timing.H
@@ -37,7 +37,7 @@
#include <cstdint>
#include <fapi2.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/conversions.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/fir/check.C b/src/import/chips/p9/procedures/hwp/memory/lib/fir/check.C
index 91b86b350..4daa01102 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/fir/check.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/fir/check.C
@@ -41,7 +41,7 @@
#include <lib/fir/fir.H>
#include <lib/fir/check.H>
#include <lib/utils/assert_noexit.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCBIST;
using fapi2::TARGET_TYPE_MCA;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/fir/memdiags_fir.C b/src/import/chips/p9/procedures/hwp/memory/lib/fir/memdiags_fir.C
index c7d2fe3f3..4bda7081e 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/fir/memdiags_fir.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/fir/memdiags_fir.C
@@ -38,7 +38,7 @@
#include <p9_mc_scom_addresses_fld.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/fir/fir.H>
#include <lib/fir/memdiags_fir.H>
#include <lib/mc/port.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/freq/cas_latency.C b/src/import/chips/p9/procedures/hwp/memory/lib/freq/cas_latency.C
index 1e288a860..2aee44105 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/freq/cas_latency.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/freq/cas_latency.C
@@ -47,7 +47,7 @@
#include <lib/freq/sync.H>
#include <lib/utils/conversions.H>
#include <lib/eff_config/timing.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/checker.H>
using fapi2::TARGET_TYPE_DIMM;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C b/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C
index 7ef64d723..73f99cd7a 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C
@@ -39,7 +39,7 @@
#include <fapi2.H>
#include <mss.H>
#include <lib/freq/sync.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/assert_noexit.H>
using fapi2::TARGET_TYPE_DIMM;
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 d45b88a07..5c1899f42 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
@@ -36,7 +36,7 @@
#include <fapi2.H>
#include <lib/utils/dump_regs.H>
#include <lib/mc/mc.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mc/perf_reg.C b/src/import/chips/p9/procedures/hwp/memory/lib/mc/perf_reg.C
index 64d84462b..bb05b10e2 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/mc/perf_reg.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/mc/perf_reg.C
@@ -43,7 +43,7 @@
#include <lib/mc/mc.H>
#include <generic/memory/lib/utils/scom.H>
#include <lib/dimm/kind.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mc/xlate.C b/src/import/chips/p9/procedures/hwp/memory/lib/mc/xlate.C
index c27ac8cfb..fa8da7c13 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/mc/xlate.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/mc/xlate.C
@@ -43,7 +43,7 @@
#include <lib/mc/mc.H>
#include <lib/mc/xlate.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/dimm/kind.H>
using fapi2::TARGET_TYPE_MCA;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors_manual.H b/src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors_manual.H
index 022695456..c6ff97660 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors_manual.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/mss_attribute_accessors_manual.H
@@ -40,7 +40,7 @@
#define MSS_ATTR_ACCESS_MANUAL_H_
#include <fapi2.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
namespace mss
{
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.C b/src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.C
index 3fe3a48df..4bf0a1572 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.C
@@ -36,7 +36,7 @@
#include <fapi2.H>
#include <lib/phy/adr32s.H>
#include <lib/workarounds/adr32s_workarounds.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_SYSTEM;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.H b/src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.H
index 121ae0b38..6010d7edb 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/adr32s.H
@@ -42,7 +42,7 @@
#include <lib/mss_attribute_accessors.H>
#include <lib/shared/mss_const.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
namespace mss
{
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C b/src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C
index 6a9dbdee2..99884dc66 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/ddr_phy.C
@@ -52,7 +52,7 @@
#include <lib/workarounds/seq_workarounds.H>
#include <lib/utils/bit_count.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/dump_regs.H>
#include <generic/memory/lib/utils/scom.H>
#include <lib/utils/count_dimm.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/phy/dp16.H b/src/import/chips/p9/procedures/hwp/memory/lib/phy/dp16.H
index cf5f833f8..9ba1e5686 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/phy/dp16.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/phy/dp16.H
@@ -42,7 +42,7 @@
#include <p9_mc_scom_addresses_fld.H>
#include <generic/memory/lib/utils/scom.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/mss_attribute_accessors.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/decoder.C b/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/decoder.C
index 802c73255..5a08c49f0 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/decoder.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/power_thermal/decoder.C
@@ -41,7 +41,7 @@
#include <mss.H>
#include <lib/power_thermal/throttle.H>
#include <lib/power_thermal/decoder.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <generic/memory/lib/utils/c_str.H>
#include <lib/utils/count_dimm.H>
#include <lib/dimm/kind.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder.C
index 603ab19ca..a1b15f8b1 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder.C
@@ -45,7 +45,7 @@
#include <lib/spd/common/rcw_settings.H>
#include <lib/utils/checker.H>
#include <generic/memory/lib/utils/c_str.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder_v1_1.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder_v1_1.C
index 4cc43c5d3..bac63b276 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder_v1_1.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/common/spd_decoder_v1_1.C
@@ -40,7 +40,7 @@
#include <lib/utils/checker.H>
#include <generic/memory/lib/utils/c_str.H>
#include <lib/utils/conversions.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_0.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_0.C
index 403837ece..6a143def5 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_0.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_0.C
@@ -44,7 +44,7 @@
#include <lib/spd/common/spd_decoder.H>
#include <lib/utils/checker.H>
#include <generic/memory/lib/utils/c_str.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_1.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_1.C
index 56765ec0c..3f06d87d4 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_1.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_1.C
@@ -44,7 +44,7 @@
#include <lib/spd/common/spd_decoder.H>
#include <lib/utils/checker.H>
#include <generic/memory/lib/utils/c_str.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_2.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_2.C
index 6c9a02d52..692c0fca5 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_2.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/lrdimm/lrdimm_decoder_v1_2.C
@@ -44,7 +44,7 @@
#include <lib/spd/common/spd_decoder.H>
#include <lib/utils/checker.H>
#include <generic/memory/lib/utils/c_str.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_0.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_0.C
index 5324f456c..1ec73a5fd 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_0.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_0.C
@@ -43,7 +43,7 @@
#include <lib/spd/common/spd_decoder.H>
#include <lib/utils/checker.H>
#include <generic/memory/lib/utils/c_str.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCBIST;
using fapi2::TARGET_TYPE_MCA;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_1.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_1.C
index 4a6a2dc14..4eedc21ad 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_1.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/rdimm/rdimm_decoder_v1_1.C
@@ -34,7 +34,7 @@
#include <lib/spd/common/spd_decoder.H>
#include <lib/utils/checker.H>
#include <generic/memory/lib/utils/c_str.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCBIST;
using fapi2::TARGET_TYPE_MCA;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/spd/spd_factory.C b/src/import/chips/p9/procedures/hwp/memory/lib/spd/spd_factory.C
index 48cb91e8a..0d9bc1bcd 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/spd/spd_factory.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/spd/spd_factory.C
@@ -49,7 +49,7 @@
#include <lib/utils/checker.H>
#include <generic/memory/lib/utils/c_str.H>
#include <lib/utils/conversions.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H
index 713faa58e..460101e42 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -40,7 +40,7 @@
#include <fapi2.H>
#include <lib/mss_attribute_accessors.H>
#include <lib/shared/mss_const.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
///
/// @brief Dereferences pointer of the vector's underlying data
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
index 7f75f9df1..cdd09a878 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
@@ -37,7 +37,7 @@
#define _MSS_COUNT_DIMM_H_
#include <fapi2.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <generic/memory/lib/utils/c_str.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/find.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/find.H
deleted file mode 100644
index ad5945e03..000000000
--- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/find.H
+++ /dev/null
@@ -1,476 +0,0 @@
-/* IBM_PROLOG_BEGIN_TAG */
-/* This is an automatically generated prolog. */
-/* */
-/* $Source: src/import/chips/p9/procedures/hwp/memory/lib/utils/find.H $ */
-/* */
-/* OpenPOWER HostBoot Project */
-/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
-/* [+] International Business Machines Corp. */
-/* */
-/* */
-/* Licensed under the Apache License, Version 2.0 (the "License"); */
-/* you may not use this file except in compliance with the License. */
-/* You may obtain a copy of the License at */
-/* */
-/* http://www.apache.org/licenses/LICENSE-2.0 */
-/* */
-/* Unless required by applicable law or agreed to in writing, software */
-/* distributed under the License is distributed on an "AS IS" BASIS, */
-/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
-/* implied. See the License for the specific language governing */
-/* permissions and limitations under the License. */
-/* */
-/* IBM_PROLOG_END_TAG */
-
-///
-/// @file find.H
-/// @brief Templates for finding things
-///
-// *HWP HWP Owner: Brian Silver <bsilver@us.ibm.com>
-// *HWP HWP Backup: Andre Marin <aamarin@us.ibm.com>
-// *HWP Team: Memory
-// *HWP Level: 2
-// *HWP Consumed by: HB:FSP
-
-#ifndef _MSS_FIND_H
-#define _MSS_FIND_H
-
-#include <fapi2.H>
-#include <vector>
-
-#include <generic/memory/lib/utils/pos.H>
-#include <generic/memory/lib/utils/c_str.H>
-
-namespace mss
-{
-///
-/// @brief find a set of elements based on a fapi2 target
-/// @tparam M the target type to be returned
-/// @tparam T the fapi2 target type of the argument
-/// @param[in] i_target the fapi2 target T
-/// @return a vector of M targets.
-///
-template< fapi2::TargetType M, fapi2::TargetType T >
-inline std::vector< fapi2::Target<M> > find_targets( const fapi2::Target<T>& i_target);
-
-///
-/// @brief find an element based on a fapi2 target
-/// @tparam M the target type to be returned
-/// @tparam T the fapi2 target type of the argument
-/// @param[in] i_target the fapi2 target T
-/// @return an M target.
-///
-template< fapi2::TargetType M, fapi2::TargetType T >
-inline fapi2::Target<M> find_target( const fapi2::Target<T>& i_target )
-{
- return i_target.template getParent<M>();
-}
-
-///
-/// @brief find the union of functionl targets and any magic targets
-/// @note The PHY has a logic block which is only contained in the 0th PHY in the controller.
-/// This makes the 0th PHY 'magic' in that it needs to always be present if not functional.
-/// This function returns all functional targets and includes the magic target whether or not
-/// it is truly functional.
-/// @tparam M the target type to be returned
-/// @tparam T the fapi2 target type of the argument
-/// @param[in] i_target the fapi2 target T
-/// @return a vector of M targets.
-///
-template< fapi2::TargetType M, fapi2::TargetType T >
-inline std::vector< fapi2::Target<M> > find_targets_with_magic( const fapi2::Target<T>& i_target);
-
-///
-/// @brief find a set of magic elements based on a fapi2 target
-/// @note The PHY has a logic block which is only contained in the 0th PHY in the controller.
-/// This makes the 0th PHY 'magic' in that it needs to always be present if not functional.
-/// This function returns all magic targets whether or not it is truly functional.
-/// It does not include other functional or present targets.
-/// @tparam M the target type to be returned
-/// @tparam T the fapi2 target type of the argument
-/// @param[in] i_target the fapi2 target T
-/// @return a vector of M targets.
-///
-template< fapi2::TargetType M, fapi2::TargetType T >
-inline std::vector< fapi2::Target<M> > find_magic_targets( const fapi2::Target<T>& i_target);
-
-///
-/// @brief find the McBIST given a McBIST
-/// @param[in] i_self the fapi2 target mcBIST
-/// @return a McBIST target.
-///
-template<>
-inline fapi2::Target<fapi2::TARGET_TYPE_MCBIST> find_target( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_self)
-{
- return i_self;
-}
-
-///
-/// @brief find the MCS given an MCS
-/// @param[in] i_self the fapi2 target MCS
-/// @return a MCS target.
-///
-template<>
-inline fapi2::Target<fapi2::TARGET_TYPE_MCS> find_target( const fapi2::Target<fapi2::TARGET_TYPE_MCS>& i_self)
-{
- return i_self;
-}
-
-///
-/// @brief find the McBIST given a DIMM
-/// @param[in] i_target the fapi2 target DIMM
-/// @return a McBIST target.
-///
-template<>
-inline fapi2::Target<fapi2::TARGET_TYPE_MCBIST> find_target( const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target)
-{
- return i_target.getParent<fapi2::TARGET_TYPE_MCA>().getParent<fapi2::TARGET_TYPE_MCBIST>();
-}
-
-///
-/// @brief find all the dimm connected to an MCS
-/// @param[in] i_target a fapi2::Target MCS
-/// @return a vector of fapi2::TARGET_TYPE_DIMM
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_DIMM> >
-find_targets( const fapi2::Target<fapi2::TARGET_TYPE_MCS>& i_target )
-{
- std::vector< fapi2::Target<fapi2::TARGET_TYPE_DIMM> > l_dimms;
-
- // At this time, fapi2 (cronus?) doesn't seem to recognize a DIMM is the child of an MCS.
- for (const auto& p : i_target.getChildren<fapi2::TARGET_TYPE_MCA>())
- {
- auto l_these_dimms( p.getChildren<fapi2::TARGET_TYPE_DIMM>() );
- l_dimms.insert(l_dimms.end(), l_these_dimms.begin(), l_these_dimms.end());
- }
-
- return l_dimms;
-}
-
-///
-/// @brief find all the dimms connected to an MCBIST
-/// @param[in] i_target a fapi2::Target MCBIST
-/// @return a vector of fapi2::TARGET_TYPE_DIMM
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_DIMM> >
-find_targets( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target )
-{
- std::vector< fapi2::Target<fapi2::TARGET_TYPE_DIMM> > l_dimms;
-
- for (const auto& p : i_target.getChildren<fapi2::TARGET_TYPE_MCA>())
- {
- auto l_these_dimms( p.getChildren<fapi2::TARGET_TYPE_DIMM>() );
- l_dimms.insert(l_dimms.end(), l_these_dimms.begin(), l_these_dimms.end());
- }
-
- return l_dimms;
-}
-
-///
-/// @brief find all the MCS connected to a PROC_CHIP
-/// @param[in] i_target a fapi2::Target PROC_CHIP
-/// @return a vector of fapi2::TARGET_TYPE_MCS
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCS> > find_targets
-( const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target )
-{
- return i_target.getChildren<fapi2::TARGET_TYPE_MCS>();
-}
-///
-/// @brief find all the MCS connected to an MCBIST
-/// @param[in] i_target a fapi2::Target MCBIST
-/// @return a vector of fapi2::TARGET_TYPE_MCS
-/// @note Cronus should support MCS children of an MCBIST - so this might be temporary
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCS> > find_targets
-( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target )
-{
- std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCS> > l_mcses;
-
- // At this time, fapi2 (cronus?) doesn't seem to recognize a MCS is the child of an MCBIST
- for (const auto& p : i_target.getChildren<fapi2::TARGET_TYPE_MCA>())
- {
- fapi2::Target<fapi2::TARGET_TYPE_MCS> l_mcs = p.getParent<fapi2::TARGET_TYPE_MCS>();
-
- if ( l_mcses.end() == std::find_if( l_mcses.begin(), l_mcses.end(),
- [l_mcs](const fapi2::Target<fapi2::TARGET_TYPE_MCS>& c)
- {
- return l_mcs == c;
- }) )
- {
- l_mcses.push_back(l_mcs);
- }
- }
-
- return l_mcses;
-}
-
-///
-/// @brief find all the MCA connected to an MCBIST
-/// @param[in] i_target a fapi2::Target MCBIST
-/// @return a vector of fapi2::TARGET_TYPE_MCA
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCA> > find_targets
-( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target )
-{
- return i_target.getChildren<fapi2::TARGET_TYPE_MCA>();
-}
-
-///
-/// @brief find the magic MCA connected to an MCBIST
-/// @param[in] i_target the fapi2::Target MCBIST
-/// @return a vector of fapi2::TARGET_TYPE_MCA
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCA> > find_magic_targets
-( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target)
-{
- // The magic port is in position 0, relative to the MCBIST
- constexpr uint64_t RELATIVE_MAGIC_POS = 0;
-
- // This is only one magic MCA on every MCBIST, so we only return a vector of one
- std::vector<fapi2::Target<fapi2::TARGET_TYPE_MCA>> l_magic_ports;
-
- // Get all the present MCA children and find the target with the relative position of 0
- for (const auto& p : i_target.getChildren<fapi2::TARGET_TYPE_MCA>(fapi2::TARGET_STATE_PRESENT))
- {
- if (mss::relative_pos<fapi2::TARGET_TYPE_MCBIST>(p) == RELATIVE_MAGIC_POS)
- {
- l_magic_ports.push_back(p);
- }
- }
-
- // We don't care if the vector is empty. We don't know what the caller will do with this
- // and they might not care if there is no magic port either ...
- return l_magic_ports;
-}
-
-///
-/// @brief find the union of functionl targets and any magic targets
-/// @param[in] i_target the fapi2::Target MCBIST
-/// @return a vector of i2::Target<fapi2::TARGET_TYPE_MCA>
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCA> > find_targets_with_magic
-( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target)
-{
- // We need the union of the functional target list and the magic target list. We can
- // get a little tricky with the MCA's - we know there's only one magic port.
- // So if the one magic port isn't in the list of functional ports, add it
- auto l_magic_ports = find_magic_targets<fapi2::TARGET_TYPE_MCA>(i_target);
-
- if (l_magic_ports.size() != 1)
- {
- FAPI_ERR("Found wrong number of magic ports on %s (%d)", mss::c_str(i_target), l_magic_ports.size());
- fapi2::Assert(false);
- }
-
- auto l_ports = mss::find_targets<fapi2::TARGET_TYPE_MCA>(i_target);
- const auto l_magic_pos = mss::relative_pos<fapi2::TARGET_TYPE_MCBIST>(l_magic_ports[0]);
- const auto l_magic_port = std::find_if(l_ports.begin(), l_ports.end(),
- [&l_magic_pos](const fapi2::Target<fapi2::TARGET_TYPE_MCA>& t)
- {
- // Check ports by relative position.
- const auto l_pos = mss::relative_pos<fapi2::TARGET_TYPE_MCBIST>(t);
- FAPI_DBG("checking for magic port at %d candidate is %d", l_magic_pos, l_pos);
- return l_magic_pos == l_pos;
- });
-
- if (l_magic_port == l_ports.end())
- {
- // Add the magic port to the front of the port vector.
- FAPI_DBG("inserting magic port %d", l_magic_pos);
- l_ports.insert(l_ports.begin(), l_magic_ports[0]);
- }
-
- // In either case, l_ports is the proper thing to return. Either the magic port was in
- // l_ports or it is now because we inserted it.
- return l_ports;
-}
-
-///
-/// @brief find all the MCA connected to an MCS
-/// @param[in] i_target a fapi2::Target MCS
-/// @return a vector of fapi2::TARGET_TYPE_MCA
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCA> > find_targets
-( const fapi2::Target<fapi2::TARGET_TYPE_MCS>& i_target )
-{
- return i_target.getChildren<fapi2::TARGET_TYPE_MCA>();
-}
-
-///
-/// @brief find all the DIMM connected to an MCA
-/// @param[in] i_target a fapi2::Target MCA
-/// @return a vector of fapi2::TARGET_TYPE_DIMM
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_DIMM> > find_targets
-( const fapi2::Target<fapi2::TARGET_TYPE_MCA>& i_target )
-{
- return i_target.getChildren<fapi2::TARGET_TYPE_DIMM>();
-}
-
-///
-/// @brief find the MCS given a DIMM
-/// @param[in] i_target the fapi2 target DIMM
-/// @return a MCS target.
-///
-template<>
-inline fapi2::Target<fapi2::TARGET_TYPE_MCS> find_target( const fapi2::Target<fapi2::TARGET_TYPE_DIMM>& i_target)
-{
- return i_target.getParent<fapi2::TARGET_TYPE_MCA>().getParent<fapi2::TARGET_TYPE_MCS>();
-}
-
-///
-/// @brief find all the MCBISTs connected to a PROC_CHIP
-/// @param[in] i_target a fapi2::Target PROC_CHIP
-/// @return a vector of fapi2::TARGET_TYPE_MCBIST
-///
-template<>
-inline std::vector< fapi2::Target<fapi2::TARGET_TYPE_MCBIST> > find_targets(
- const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target )
-{
- return i_target.getChildren<fapi2::TARGET_TYPE_MCBIST>();
-}
-
-///
-/// @brief find a key value from a vector of STL pairs
-/// @tparam T input type
-/// @tparam OT the output type to be returned
-/// @param[in] i_vector_of_pairs the input vector of pairs
-/// @param[in] i_key the "map" key
-/// @param[out] o_value the value found from given key
-/// @return true if value is found, false otherwise
-/// @note VECTOR NEEDS TO BE IN SORTED ORDER
-///
-template<typename T, typename OT>
-bool find_value_from_key(const std::vector<std::pair<T, OT> >& i_vector_of_pairs,
- const T& i_key,
- OT& o_value)
-{
- // Comparator lambda expression
- const auto compare = [](const std::pair<T, OT>& i_lhs, const T & i_key)
- {
- return (i_lhs.first < i_key);
- };
-
- // Find iterator to matching key (if it exists)
- const auto l_value_iterator = std::lower_bound(i_vector_of_pairs.begin(),
- i_vector_of_pairs.end(),
- i_key,
- compare);
-
- // Did you find it? Let me know.
- if( (l_value_iterator == i_vector_of_pairs.end()) || (i_key != l_value_iterator->first) )
- {
- FAPI_ERR("Did not find a mapping value to key: %d", i_key);
- return false;
- }
-
- o_value = l_value_iterator->second;
- return true;
-
-}// find_value_from_key
-
-///
-/// @brief find a key value from a vector of STL pairs
-/// @tparam T input type
-/// @tparam OT the output type to be returned
-/// @param[in] i_vector_of_pairs the input vector of pairs
-/// @param[in] i_value the "map" value, the second entry in the pairs
-/// @param[out] o_key the first entry in the pair
-/// @return fapi2 ReturnCode fapi2::RC_SUCCESS if value found
-///
-template<typename T, typename OT>
-fapi2::ReturnCode find_key_from_value(const std::vector<std::pair<T, OT> >& i_vector_of_pairs,
- const OT& i_value,
- T& o_key)
-{
- // Comparator lambda expression
- const auto compare = [&i_value](const std::pair<T, OT>& i_lhs)
- {
- return (i_lhs.second == i_value);
- };
-
- // Find iterator to matching key (if it exists)
- const auto l_value_iterator = std::find_if(i_vector_of_pairs.begin(),
- i_vector_of_pairs.end(),
- compare);
-
- // Did you find it? Let me know.
- if( (l_value_iterator == i_vector_of_pairs.end()) || (i_value != l_value_iterator->second) )
- {
- FAPI_ERR("Did not find a mapping key to value: %d", i_value);
- return fapi2::FAPI2_RC_INVALID_PARAMETER;
- }
-
- o_key = l_value_iterator->first;
- return fapi2::FAPI2_RC_SUCCESS;
-
-}// find_value_from_key
-
-///
-/// @brief find a key value from a C-style array of STL pairs
-/// @tparam T input type
-/// @tparam OT the output type to be returned
-/// @tparam N size of the array being passed in
-/// @param[in] i_array the input array of pairs
-/// @param[in] i_key the "map" key
-/// @param[in] o_value the value found from given key
-/// @return fapi2 ReturnCode fapi2::RC_SUCCESS if key found
-/// @note To use on short arrays. O(N), simple search
-///
-template<typename T, typename OT, size_t N>
-fapi2::ReturnCode find_value_from_key( const std::pair<T, OT> (&i_array)[N],
- const T& i_key,
- OT& o_value)
-{
- // TK Use sort and binary search for larger arrays
- for (size_t i = 0; i < N; i++)
- {
- if (i_array[i].first == i_key)
- {
- o_value = i_array[i].second;
- return fapi2::FAPI2_RC_SUCCESS;
- }
- }
-
- FAPI_ERR ("No match found for find_value_from_key");
- return fapi2::FAPI2_RC_INVALID_PARAMETER;
-}
-
-///
-/// @brief Determine if a thing is functional
-/// @tparam P, the type of the parent which holds the things of interest
-/// @tparam I, the type of the item we want to check for
-/// @param[in] i_target the parent containing the thing we're looking for
-/// @param[in] i_rel_pos the relative position of the item of interest.
-/// @return bool true iff the thing at i_rel_pos is noted as functional
-///
-template< fapi2::TargetType I, fapi2::TargetType P >
-bool is_functional( const fapi2::Target<P>& i_target, const uint64_t i_rel_pos )
-{
- // Not sure of a good way to do this ... we get all the functional
- // children of the parent and look for our relative position ...
- for (const auto& i : i_target.template getChildren<I>(fapi2::TARGET_STATE_FUNCTIONAL))
- {
- if (mss::template relative_pos<P>(i) == i_rel_pos)
- {
- return true;
- }
- }
-
- return false;
-}
-
-}// mss
-
-#endif
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/mss_pair.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/mss_pair.H
index 8e3a19bea..89ad19d7d 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/mss_pair.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/mss_pair.H
@@ -38,7 +38,7 @@
#define _MSS_PAIR_CONST_H_
#include <fapi2.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <generic/memory/lib/utils/c_str.H>
namespace mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/adr32s_workarounds.C b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/adr32s_workarounds.C
index c70d57567..d61b53432 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/adr32s_workarounds.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/adr32s_workarounds.C
@@ -46,7 +46,7 @@
#include <lib/fir/fir.H>
#include <lib/workarounds/adr32s_workarounds.H>
#include <lib/phy/ddr_phy.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
using fapi2::TARGET_TYPE_MCA;
using fapi2::TARGET_TYPE_SYSTEM;
diff --git a/src/import/chips/p9/procedures/hwp/memory/mss.H b/src/import/chips/p9/procedures/hwp/memory/mss.H
index a163b61e8..7644e72a8 100644
--- a/src/import/chips/p9/procedures/hwp/memory/mss.H
+++ b/src/import/chips/p9/procedures/hwp/memory/mss.H
@@ -52,7 +52,7 @@
#include <generic/memory/lib/utils/pos.H>
#include <lib/utils/swizzle.H>
#include <lib/utils/conversions.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/poll.H>
#include <lib/utils/checker.H>
#include <lib/utils/dump_regs.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_bulk_pwr_throttles.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_bulk_pwr_throttles.C
index aaf2c10d0..f918fd45a 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_bulk_pwr_throttles.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_bulk_pwr_throttles.C
@@ -37,7 +37,7 @@
#include <mss.H>
#include <fapi2.H>
#include <p9_mss_bulk_pwr_throttles.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/count_dimm.H>
#include <lib/power_thermal/throttle.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_mc.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_mc.C
index 030106e53..b7201a6fc 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_mc.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_mc.C
@@ -39,7 +39,7 @@
#include <p9_mc_scom_addresses_fld.H>
#include <p9_mss_draminit_mc.H>
#include <lib/fir/unmask.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/count_dimm.H>
using fapi2::TARGET_TYPE_MCBIST;
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C
index 3faaa31f3..93cf877b3 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_eff_config.C
@@ -46,9 +46,8 @@
#include <lib/spd/spd_factory.H>
#include <generic/memory/lib/utils/pos.H>
#include <lib/utils/checker.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/shared/mss_kind.H>
-#include <lib/utils/find.H>
#include <lib/dimm/eff_dimm.H>
#include <lib/eff_config/plug_rules.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq.C
index 5be4c26e0..dfa6bec91 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq.C
@@ -50,7 +50,7 @@
#include <lib/freq/cas_latency.H>
#include <generic/memory/lib/utils/c_str.H>
#include <lib/freq/cycle_time.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/count_dimm.H>
#include <lib/utils/index.H>
#include <lib/shared/mss_const.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C
index 9342a9d1c..385504a6f 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C
@@ -39,7 +39,7 @@
#include <mss.H>
#include <p9_mss_freq_system.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/count_dimm.H>
#include <lib/freq/sync.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_memdiag.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_memdiag.C
index 8814f29d9..df159cc86 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_memdiag.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_memdiag.C
@@ -37,7 +37,7 @@
#include <p9_mss_memdiag.H>
#include <lib/utils/poll.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/count_dimm.H>
#include <lib/mcbist/address.H>
#include <lib/mcbist/memdiags.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_scominit.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_scominit.C
index 2f79b701a..3a4c8bc53 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_scominit.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_scominit.C
@@ -39,7 +39,7 @@
#include <p9_mcbist_scom.H>
#include <p9_ddrphy_scom.H>
#include <lib/utils/count_dimm.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/phy/ddr_phy.H>
#include <lib/mc/mc.H>
#include <lib/fir/unmask.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_thermal_init.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_thermal_init.C
index 9bcf499f5..6a0a84923 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_thermal_init.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_thermal_init.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -35,7 +35,7 @@
#include <fapi2.H>
#include <lib/mc/mc.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <p9_mss_thermal_init.H>
using fapi2::TARGET_TYPE_MCS;
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_utils_to_throttle.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_utils_to_throttle.C
index 95faddd27..59bb2fc93 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_utils_to_throttle.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_utils_to_throttle.C
@@ -44,7 +44,7 @@
// mss lib
#include <lib/power_thermal/throttle.H>
#include <lib/utils/index.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/conversions.H>
#include <lib/power_thermal/throttle.H>
#include <lib/mss_attribute_accessors.H>
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C
index 8fa1c3c66..ccd180c06 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C
@@ -48,7 +48,7 @@
#include <lib/eff_config/attr_setters.H>
#include <generic/memory/lib/utils/c_str.H>
#include <generic/memory/lib/utils/pos.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
#include <lib/utils/checker.H>
using fapi2::TARGET_TYPE_MCBIST;
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C b/src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C
index 3c3195c00..28882ad36 100644
--- a/src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C
+++ b/src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C
@@ -43,7 +43,7 @@
//------------------------------------------------------------------------------
#include <p9_throttle_sync.H>
#include <fapi2.H>
-#include <lib/utils/find.H>
+#include <generic/memory/lib/utils/find.H>
///----------------------------------------------------------------------------
/// Constant definitions
OpenPOWER on IntegriCloud