diff options
author | crgeddes <crgeddes@us.ibm.com> | 2017-01-13 20:42:01 -0600 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2017-01-14 10:14:22 -0500 |
commit | 29684ba50d2cfefea4e20ec954d1b64c3b247974 (patch) | |
tree | 237f1a08a92a4fc2a3f07d83fd2818cd75f0129f /src/usr/hwas/test | |
parent | 200e13aff211133665601c5378ec6e09741a6262 (diff) | |
download | talos-hostboot-29684ba50d2cfefea4e20ec954d1b64c3b247974.tar.gz talos-hostboot-29684ba50d2cfefea4e20ec954d1b64c3b247974.zip |
Disable bad MCAs based on CRP0:Lx keyword data
The CRP0 record has 8 records (L1-L8) that correspond to the 8 ports
(MCA targets) for the chip. One of the fields inside the keyword indicates
if the port is disabled. This field marks the MCA as non-functional, but
the MCA remains present.
Change-Id: Iccc943ad477a90a25aeaff67572b66126c759913
RTC:166354
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34885
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
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: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/usr/hwas/test')
-rw-r--r-- | src/usr/hwas/test/hwas1test.H | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/usr/hwas/test/hwas1test.H b/src/usr/hwas/test/hwas1test.H index 7dd7b70ed..cf7461623 100644 --- a/src/usr/hwas/test/hwas1test.H +++ b/src/usr/hwas/test/hwas1test.H @@ -1627,6 +1627,45 @@ public: TS_INFO( "testHWASpervStates exit" ); } + + /** + * @brief test platReadLx + */ + void testHWASplatReadLx() + { + using namespace TARGETING; + + TS_INFO( "testHWASplatReadLx entry" ); + + // call platReadLx with target that isn't in the VPD + errlHndl_t l_errl; + + Target* pSys; + targetService().getTopLevelTarget(pSys); + + TARGETING::TargetHandleList l_procList; + getAllChips(l_procList, TYPE_PROC); + + TargetHandleList l_mcaList; + getChildChiplets(l_mcaList, *(l_procList.begin()), TYPE_MCA, true); + + uint8_t lxData[HWAS::VPD_CRP0_LX_DATA_LENGTH]; + + l_errl = HWAS::platReadLx(pSys, *(l_mcaList.begin()), lxData); + + if (l_errl) + { + // error log is expected case, delete it + delete l_errl; + } + else + { + TS_FAIL("testHWASplatReadLx>" + "No error from platReadLx(pSys, *(l_mcaList.begin())."); + } + + TS_INFO( "testHWASplatReadLx exit" ); + } }; #endif // |