diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2018-01-22 10:27:24 -0600 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-01-26 13:24:14 -0500 |
commit | ef1d51e2367509e8570c6a7a3c6d37cd5c8512d7 (patch) | |
tree | cd89a8cd0a46407626fb45f8e4c79e7d8f9b6cac | |
parent | 8c89a1b7b92dd037063f0a9697433b20eec97b23 (diff) | |
download | talos-hostboot-ef1d51e2367509e8570c6a7a3c6d37cd5c8512d7.tar.gz talos-hostboot-ef1d51e2367509e8570c6a7a3c6d37cd5c8512d7.zip |
Bad DQ bits compare ECC and spare fix
Change-Id: Icec7f3af255e3ea0240e61b78bfbd274e6d3e8c6
CQ: SW414844
Backport: release-op910
Backport: release-fips910
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52374
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
-rw-r--r-- | src/usr/fapi2/attribute_service.C | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/usr/fapi2/attribute_service.C b/src/usr/fapi2/attribute_service.C index 1a1a62b31..0e8d47659 100644 --- a/src/usr/fapi2/attribute_service.C +++ b/src/usr/fapi2/attribute_service.C @@ -1214,8 +1214,27 @@ ReturnCode fapiAttrSetBadDqBitmap( uint8_t l_eccSpareBitmap[mss::MAX_RANK_PER_DIMM] [mss::BAD_DQ_BYTE_COUNT]; + uint8_t l_tmpData[mss::MAX_RANK_PER_DIMM][mss::BAD_DQ_BYTE_COUNT]; + memcpy( &l_tmpData, &i_data, sizeof(i_data) ); + + l_errl = __dimmUpdateDqBitmapEccByte( l_dimmTarget, l_tmpData ); + if ( l_errl ) + { + FAPI_ERR( "fapiAttrSetBadDqBitmap: Error getting ECC data." ); + l_rc.setPlatDataPtr(reinterpret_cast<void *> (l_errl)); + break; + } + + l_rc = __dimmUpdateDqBitmapSpareByte( l_dimmTarget, l_tmpData ); + if ( l_rc ) + { + FAPI_ERR( "fapiAttrSetBadDqBitmap: Error getting spare DRAM " + "data." ); + break; + } + l_rc = __compareEccAndSpare( l_dimmTarget, mfgModeBadBitsPresent, - i_data, l_eccSpareBitmap ); + l_tmpData, l_eccSpareBitmap ); if ( l_rc ) { FAPI_ERR( "fapiAttrSetBadDqBitmap: Error comparing " |