summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/import/chips/p9/procedures/hwp/core/p9_hcd_core_arrayinit.C24
-rwxr-xr-xsrc/test/framework/etc/workarounds.presimsetup4
2 files changed, 26 insertions, 2 deletions
diff --git a/src/import/chips/p9/procedures/hwp/core/p9_hcd_core_arrayinit.C b/src/import/chips/p9/procedures/hwp/core/p9_hcd_core_arrayinit.C
index 47780ffb..f76992c4 100644
--- a/src/import/chips/p9/procedures/hwp/core/p9_hcd_core_arrayinit.C
+++ b/src/import/chips/p9/procedures/hwp/core/p9_hcd_core_arrayinit.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER sbe Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -49,11 +49,15 @@
//------------------------------------------------------------------------------
// Constant Definitions
//------------------------------------------------------------------------------
+// simGETFAC B0.C0.S0.P0.E9.TP.TCEC14.CORE.EPS.CC.COMP.OPCG.LPCNTQ.LATC.L2 43 -ox
+//0x000000012B8
+// simGETFAC B0.C0.S0.P0.E9.TP.TCEC14.CORE.EPS.CTRL.COMP.CPLT_STATQ.LATC.L2 24 -ox
+//0x804000
enum P9_HCD_CORE_ARRAYINIT_Private_Constants
{
REGIONS_EXCEPT_VITAL = 0x7FF,
- LOOP_COUNTER = 0x0000000000042FFF,
+ LOOP_COUNTER = 0x00000000000012B8, // Parallel mode must be set!
SELECT_SRAM = 0x1,
SELECT_EDRAM = 0x0,
START_ABIST_MATCH_VALUE = 0x0000000F00000000
@@ -70,6 +74,11 @@ p9_hcd_core_arrayinit(
FAPI_INF(">>p9_hcd_core_arrayinit");
fapi2::buffer<uint64_t> l_data64;
+ // To get proc DD level
+ uint8_t l_parallel_abist_nimbus_dd1_workaround = 0;
+ fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> l_chip =
+ i_target.getParent<fapi2::TARGET_TYPE_PROC_CHIP>();
+
#if not defined(P9_HCD_STOP_SKIP_FLUSH) || not defined(P9_HCD_STOP_SKIP_ARRAYINIT)
fapi2::Target<fapi2::TARGET_TYPE_PERV> l_perv =
i_target.getParent<fapi2::TARGET_TYPE_PERV>();
@@ -80,6 +89,17 @@ p9_hcd_core_arrayinit(
#ifndef P9_HCD_STOP_SKIP_ARRAYINIT
+ // Only set ABIST engine to parallel mode for DD1 level
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_NDD1_ABIST_PARALLEL, l_chip,
+ l_parallel_abist_nimbus_dd1_workaround));
+
+ if (l_parallel_abist_nimbus_dd1_workaround != 0)
+ {
+ FAPI_DBG("Scan ec_abst ring");
+ FAPI_TRY(fapi2::putRing(i_target, ec_abst),
+ "Error from putRing (ec_abst)");
+ }
+
FAPI_DBG("Arrayinit all regions except vital");
FAPI_TRY(p9_perv_sbe_cmn_array_init_module(l_perv,
REGIONS_EXCEPT_VITAL,
diff --git a/src/test/framework/etc/workarounds.presimsetup b/src/test/framework/etc/workarounds.presimsetup
index 56d8505a..2a81549a 100755
--- a/src/test/framework/etc/workarounds.presimsetup
+++ b/src/test/framework/etc/workarounds.presimsetup
@@ -29,3 +29,7 @@
#egrep -v "WSALIAS DEFAULT FIPSLEVEL|WSALIAS DEFAULT SIMICSLEVEL" $BACKING_BUILD/src/simu/data/simicsInfo > $sb/simu/data/simicsInfo
#echo "WSALIAS DEFAULT FIPSLEVEL env/gfwb/simics-4.2.0/simics-4.2.83/fips/fld36/fi120201a700.42" >> $sb/simu/data/simicsInfo
#echo "WSALIAS DEFAULT SIMICSLEVEL env/vtechb/simics-4.2.0/simics-4.2.83/bin" >> $sb/simu/data/simicsInfo
+mkdir -p $SANDBOXBASE/obj/ppc/hwsv/server/buildhwpf2/hwpf2/tools/x86_binaries/
+mkdir -p $SANDBOXBASE/src/engd/href
+cp /gsa/ausgsa/home/t/h/thi/public/p9n.hw_image.bin $SANDBOXBASE/src/engd/href/p9n.temp_hw_ref_image.bin
+cp /gsa/ausgsa/home/t/h/thi/public/p9_ipl_build.exe $SANDBOXBASE/obj/ppc/hwsv/server/buildhwpf2/hwpf2/tools/x86_binaries/p9_ipl_build
OpenPOWER on IntegriCloud