From e33d4b68cfd9976a2ff2c51762402944f5cf99ba Mon Sep 17 00:00:00 2001 From: Louis Stermole Date: Fri, 5 Jan 2018 08:05:24 -0600 Subject: Add better trace to MSS restore DRAM repairs function and add lab wrapper Change-Id: I7153e0fbbf83dd46ddb0410b650bd780d6a6ad4c Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51971 Tested-by: FSP CI Jenkins Reviewed-by: STEPHEN GLANCY Reviewed-by: ANDRE A. MARIN Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51977 Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Daniel M. Crowell --- .../chips/p9/procedures/hwp/memory/lib/mc/port.C | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/mc/port.C') diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/mc/port.C b/src/import/chips/p9/procedures/hwp/memory/lib/mc/port.C index eb0939b54..e527d37f5 100644 --- a/src/import/chips/p9/procedures/hwp/memory/lib/mc/port.C +++ b/src/import/chips/p9/procedures/hwp/memory/lib/mc/port.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -353,7 +353,8 @@ fapi2::ReturnCode place_symbol_mark(const fapi2::Target l_addr.set_dimm(l_dimm_idx).set_master_rank(l_rank_idx); - FAPI_DBG("Setting firmware symbol mark on rank:%d dq:%d galois:0x%02x", i_rank, i_dq, l_galois); + FAPI_INF("%s Setting firmware symbol mark on rank:%d dq:%d galois:0x%02x", + mss::c_str(i_target), i_rank, i_dq, l_galois); FAPI_TRY( mss::ecc::set_fwms(l_mca, i_rank, l_galois, mss::ecc::fwms::mark_type::SYMBOL, mss::ecc::fwms::mark_region::MRANK, l_addr) ); @@ -386,7 +387,7 @@ fapi2::ReturnCode place_chip_mark(const fapi2::Target& l_symbol = (l_symbol / BITS_PER_NIBBLE) * BITS_PER_NIBBLE; FAPI_TRY( mss::ecc::symbol_to_galois(l_symbol, l_galois) ); - FAPI_DBG("Setting hardware (chip) mark on rank:%d galois:0x%02x", i_rank, l_galois); + FAPI_INF("%s Setting hardware (chip) mark on rank:%d galois:0x%02x", mss::c_str(i_target), i_rank, l_galois); FAPI_TRY( mss::ecc::set_hwms(l_mca, i_rank, l_galois) ); fapi_try_exit: @@ -410,7 +411,7 @@ fapi2::ReturnCode restore_repairs_helper& o_repairs_applied, fapi2::buffer& o_repairs_exceeded) { - FAPI_INF("Restore repair marks from bad DQ data"); + FAPI_INF("%s Restore repair marks from bad DQ data", mss::c_str(i_target)); std::vector l_ranks; const auto l_dimm_idx = mss::index(i_target); @@ -430,8 +431,8 @@ fapi2::ReturnCode restore_repairs_helper::one_b fapi2::buffer& io_repairs_exceeded) { // repairs exceeded + FAPI_INF("%s Repairs exceeded (symbol mark and unrepaired DQ exist, plus bad DQ) on rank:%d DQ:%d", + mss::c_str(i_target), i_rank, i_dq); io_repairs_exceeded.setBit(mss::index(i_target)); return fapi2::FAPI2_RC_SUCCESS; } @@ -672,6 +675,8 @@ fapi2::ReturnCode symbol_mark_plus_unrepaired_dq::multi FAPI_TRY( place_chip_mark(i_target, i_rank, i_dq) ); io_repairs_applied.setBit(i_rank); io_repairs_exceeded.setBit(mss::index(i_target)); + FAPI_INF("%s Repairs exceeded (symbol mark and unrepaired DQ exist, plus bad nibble) on rank:%d DQ:%d", + mss::c_str(i_target), i_rank, i_dq); { const auto new_state = std::make_shared>(); set_state(io_machine, new_state); @@ -734,6 +739,8 @@ fapi2::ReturnCode chip_mark_only::multiple_bad_dq( { // repairs exceeded io_repairs_exceeded.setBit(mss::index(i_target)); + FAPI_INF("%s Repairs exceeded (chip mark exists, plus bad nibble) on rank:%d DQ:%d", + mss::c_str(i_target), i_rank, i_dq); return fapi2::FAPI2_RC_SUCCESS; } @@ -759,6 +766,8 @@ fapi2::ReturnCode chip_and_symbol_mark::one_bad_dq( { // repairs exceeded io_repairs_exceeded.setBit(mss::index(i_target)); + FAPI_INF("%s Repairs exceeded (chip mark and symbol mark exist, plus one bad DQ) on rank:%d DQ:%d", + mss::c_str(i_target), i_rank, i_dq); return fapi2::FAPI2_RC_SUCCESS; } @@ -784,6 +793,8 @@ fapi2::ReturnCode chip_and_symbol_mark::multiple_bad_dq { // repairs exceeded io_repairs_exceeded.setBit(mss::index(i_target)); + FAPI_INF("%s Repairs exceeded (chip mark and symbol mark exist, plus one bad nibble) on rank:%d DQ:%d", + mss::c_str(i_target), i_rank, i_dq); return fapi2::FAPI2_RC_SUCCESS; } -- cgit v1.2.1