summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/memory
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H5
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_memdiag.C5
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/tests/mss_memdiags_ut.C10
3 files changed, 14 insertions, 6 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H
index ef2dfd9ce..067b1362b 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/mcbist/mcbist.H
@@ -583,7 +583,7 @@ inline subtest_t<T> init_subtest()
/// - FORCE_PAUSE_AFTER_ADDR - don't pause after current address
/// - FORCE_PAUSE_AFTER_SUBTEST - no pause after subtest
/// - ENABLE_SPEC_ATTN - disabled
-/// - ENABLE_HOST_ATTN - disabled
+/// - ENABLE_HOST_ATTN - enabled
///
template< fapi2::TargetType T, typename TT = mcbistTraits<T> >
@@ -618,6 +618,9 @@ class program
// By default if there's an error, we stop after the errored address
iv_config.insertFromRight<TT::CFG_PAUSE_ON_ERROR_MODE, TT::CFG_PAUSE_ON_ERROR_MODE_LEN>(
stop_conditions::STOP_AFTER_ADDRESS);
+
+ // All mcbist attentions are host attentions, special attention bit is already clear
+ iv_config.setBit<TT::CFG_ENABLE_HOST_ATTN>();
}
///
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 a89ed4186..55b48cfaa 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
@@ -35,6 +35,8 @@
#include <lib/mcbist/memdiags.H>
#include <lib/mcbist/mcbist.H>
+#include <lib/fir/memdiags_fir.H>
+
using fapi2::TARGET_TYPE_MCBIST;
extern "C"
@@ -48,6 +50,9 @@ extern "C"
{
FAPI_INF("Start memdiag");
+ // Unmask the memdiags FIR
+ FAPI_TRY( mss::unmask_memdiags_errors(i_target) );
+
FAPI_TRY( memdiags::sf_init(i_target, mss::mcbist::PATTERN_0) );
// TODO RTC:153951
diff --git a/src/import/chips/p9/procedures/hwp/memory/tests/mss_memdiags_ut.C b/src/import/chips/p9/procedures/hwp/memory/tests/mss_memdiags_ut.C
index eee768350..1e20269fb 100644
--- a/src/import/chips/p9/procedures/hwp/memory/tests/mss_memdiags_ut.C
+++ b/src/import/chips/p9/procedures/hwp/memory/tests/mss_memdiags_ut.C
@@ -219,7 +219,7 @@ TEST_CASE_METHOD(mss::test::mcbist_target_test_fixture, "memdiags", "[memdiags]"
{
fapi2::buffer<uint64_t> l_read;
REQUIRE_FALSE( mss::getScom(i_target, MCBIST_MCBCFGQ, l_read) );
- REQUIRE( 0x0000000000000080 == l_read );
+ REQUIRE( 0x0000000000000081 == l_read );
}
// Load thresholds - default state (expecting 0's)
@@ -312,7 +312,7 @@ TEST_CASE_METHOD(mss::test::mcbist_target_test_fixture, "memdiags", "[memdiags]"
{
fapi2::buffer<uint64_t> l_read;
REQUIRE_FALSE( mss::getScom(i_target, MCBIST_MCBCFGQ, l_read) );
- REQUIRE( 0x0000000000000080 == l_read );
+ REQUIRE( 0x0000000000000081 == l_read );
}
// Load thresholds - default state (expecting 0's)
@@ -405,7 +405,7 @@ TEST_CASE_METHOD(mss::test::mcbist_target_test_fixture, "memdiags", "[memdiags]"
{
fapi2::buffer<uint64_t> l_read;
REQUIRE_FALSE( mss::getScom(i_target, MCBIST_MCBCFGQ, l_read) );
- REQUIRE( 0x00000000000000a8 == l_read );
+ REQUIRE( 0x00000000000000a9 == l_read );
}
// Load thresholds - default state (expecting 0's)
@@ -572,7 +572,7 @@ TEST_CASE_METHOD(mss::test::mcbist_target_test_fixture, "memdiags", "[memdiags]"
{
fapi2::buffer<uint64_t> l_read;
REQUIRE_FALSE( mss::getScom(i_target, MCBIST_MCBCFGQ, l_read) );
- REQUIRE( 0x0000000000000000 == l_read );
+ REQUIRE( 0x0000000000000001 == l_read );
}
@@ -623,7 +623,7 @@ TEST_CASE_METHOD(mss::test::mcbist_target_test_fixture, "memdiags", "[memdiags]"
{
fapi2::buffer<uint64_t> l_read;
REQUIRE_FALSE( mss::getScom(i_target, MCBIST_MCBCFGQ, l_read) );
- REQUIRE( 0x0000000020000020 == l_read );
+ REQUIRE( 0x0000000020000021 == l_read );
}
}
OpenPOWER on IntegriCloud