From c06595679e76988d9403ad62d8539bb1486dee6b Mon Sep 17 00:00:00 2001 From: crgeddes Date: Mon, 28 Dec 2015 15:09:41 -0600 Subject: FAPI2 GetParent Interface This commit addes the getParent function the fapi2::target interface. Also in this commit I remove some old fapi dependencies, and changed some reasoncode information that was causing naming collisions. Change-Id: Ib9ba92eaccf29709dafcdead9c82ccc8f8b139c1 RTC:129517 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/837 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: Nicholas E. Bofferding Reviewed-by: Thi N. Tran Reviewed-by: Daniel M. Crowell --- src/usr/fapi2/fapi2.mk | 1 + src/usr/fapi2/test/fapi2GetParentTest.C | 957 +++++++++++++++++++++ src/usr/fapi2/test/fapi2Test.H | 9 + src/usr/targeting/common/utilFilter.C | 30 +- .../common/xmltohb/simics_NIMBUS.system.xml | 4 +- 5 files changed, 998 insertions(+), 3 deletions(-) create mode 100644 src/usr/fapi2/test/fapi2GetParentTest.C (limited to 'src/usr') diff --git a/src/usr/fapi2/fapi2.mk b/src/usr/fapi2/fapi2.mk index 4fe67e6b0..cea9203de 100755 --- a/src/usr/fapi2/fapi2.mk +++ b/src/usr/fapi2/fapi2.mk @@ -30,6 +30,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/hwpf/fapi2/include/ EXTRAINCDIR += ${ROOTPATH}/src/include/usr/fapi2/ +EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/utils/ #Hostboot objects OBJS += plat_utils.o diff --git a/src/usr/fapi2/test/fapi2GetParentTest.C b/src/usr/fapi2/test/fapi2GetParentTest.C new file mode 100644 index 000000000..c83f5bac7 --- /dev/null +++ b/src/usr/fapi2/test/fapi2GetParentTest.C @@ -0,0 +1,957 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/fapi2/test/fapi2GetParentTest.C $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2015,2016 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ + +#include +#include +#include +#include +#include + +using namespace fapi2; + +namespace fapi2 +{ + +//@TODO RTC:148577 need to add tests to get the PERV parent of targets +//****************************************************************************** +// fapi2GetParentTest +//****************************************************************************** +errlHndl_t fapi2GetParentTest() +{ + int numTests = 0; + int numFails = 0; + errlHndl_t l_err = NULL; + do + { + // Create a vector of TARGETING::Target pointers + TARGETING::TargetHandleList l_chipList; + + // Get a list of all of the proc chips + TARGETING::getAllChips(l_chipList, TARGETING::TYPE_PROC, false); + + TARGETING::Target * l_nimbusProc = NULL; + + //Take the first NIMBUS proc and use it + for(uint32_t i = 0; i < l_chipList.size(); i++) + { + if(TARGETING::MODEL_NIMBUS == + l_chipList[i]->getAttr()) + { + l_nimbusProc = l_chipList[i]; + break; + } + } + + if(l_nimbusProc == NULL) + { + // Send an errorlog because we cannot find any NIMBUS procs. + FAPI_ERR("FAPI2_GETPARENT:: could not find Nimbus proc, skipping tests"); + numFails++; + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_NO_PROCS_FOUND + * @userdata1 Model Type we looked for + * @userdata2 Unused + * @devdesc Could not find NIMBUS procs in system model + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_NO_PROCS_FOUND, + TARGETING::MODEL_NIMBUS, + NULL, + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + break; + } + + TARGETING::Target* targeting_targets[NUM_TARGETS]; + generateTargets(l_nimbusProc, targeting_targets); + + for( uint64_t x = 0; x < NUM_TARGETS; x++ ) + { + if(targeting_targets[x] == NULL) + { + FAPI_ERR("Unable to find target for item %d in targeting_targets", x); + + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_NO_PATH_TO_TARGET_FOUND + * @userdata1 Index of target in array of objects + * @userdata2 Unused + * @devdesc Could not find a path to the target of that type + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_NO_PATH_TO_TARGET_FOUND, + x, + NULL, + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + } + } + + + Target fapi2_procTarget( + l_nimbusProc); + Target fapi2_eqTarget( + targeting_targets[MY_EQ]); + Target fapi2_exTarget( + targeting_targets[MY_EX]); + Target fapi2_coreTarget( + targeting_targets[MY_CORE]); + Target fapi2_mcsTarget( + targeting_targets[MY_MCS]); + Target fapi2_mcaTarget( + targeting_targets[MY_MCA]); + Target fapi2_mcbistTarget( + targeting_targets[MY_MCBIST]); + Target fapi2_pecTarget( + targeting_targets[MY_PEC]); + Target fapi2_phbTarget( + targeting_targets[MY_PHB]); + Target fapi2_xbusTarget( + targeting_targets[MY_XBUS]); + Target fapi2_obusTarget( + targeting_targets[MY_OBUS]); + Target fapi2_nvbusTarget( + targeting_targets[MY_NVBUS]); + Target fapi2_ppeTarget( + targeting_targets[MY_PPE]); + Target fapi2_pervTarget( + targeting_targets[MY_PERV]); + Target fapi2_sbeTarget( + targeting_targets[MY_SBE]); + Target fapi2_cappTarget( + targeting_targets[MY_CAPP]); + + TARGETING::Target * l_tempTargetingParent = + static_cast( + fapi2_coreTarget.getParent()); + + //Check CORE's parents + numTests++; + if(TARGETING::get_huid(targeting_targets[MY_EX]) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_CORE]-> + tryGetAttr(l_instance); + + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_CORE_NO_EX_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of core + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent EX of this + * CORE target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_CORE_NO_EX_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + targeting_targets[MY_EX])), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_EX)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL("fapi2TargetTest::Unable to find CORE's EX parent!"); + numFails++; + } + + + l_tempTargetingParent = + static_cast( + fapi2_coreTarget.getParent()); + + numTests++; + if(TARGETING::get_huid(targeting_targets[MY_EQ]) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_CORE]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_CORE_NO_EQ_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of core + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent EQ of this + * CORE target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_CORE_NO_EQ_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + targeting_targets[MY_EQ])), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_EQ)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find CORE's EQ parent!"); + numFails++; + } + + + l_tempTargetingParent = + static_cast( + fapi2_coreTarget.getParent()); + + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_CORE]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_CORE_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of core + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * CORE target + */ + l_err = new ERRORLOG::ErrlEntry( + ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_CORE_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find CORE's PROC parent!"); + numFails++; + } + + + l_tempTargetingParent = + static_cast( + fapi2_exTarget.getParent()); + + //Check EX's parents + numTests++; + if(TARGETING::get_huid(targeting_targets[MY_EQ]) != + TARGETING::get_huid(l_tempTargetingParent)) + { + + uint8_t l_instance = 0; + targeting_targets[MY_EX]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_EX_NO_EQ_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of EX + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent EQ of this EX target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_EX_NO_EQ_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + targeting_targets[MY_EQ])), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_EQ)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find EX's EQ parent!"); + numFails++; + } + + + l_tempTargetingParent = + static_cast( + fapi2_exTarget.getParent()); + + //Check EX's parents + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_EX]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_EX_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of EX + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * EX target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_EX_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find EXs's PROC parent!"); + numFails++; + } + + l_tempTargetingParent = + static_cast( + fapi2_eqTarget.getParent()); + + //Check EQ's parents + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_EQ]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_EQ_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of EQ + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * EQ target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_EQ_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find EQs's PROC parent!"); + numFails++; + } + + l_tempTargetingParent = + static_cast( + fapi2_mcaTarget.getParent()); + + //Check MCA's parents + numTests++; + if(TARGETING::get_huid(targeting_targets[MY_MCS]) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_MCA]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_MCA_NO_MCS_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of MCA + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent MSC of this + * MCA target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_MCA_NO_MCS_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + targeting_targets[MY_MCS])), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_MCS)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find MCA's MCS parent!"); + numFails++; + } + + l_tempTargetingParent = + static_cast( + fapi2_mcaTarget.getParent()); + + numTests++; + + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_MCA]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_MCA_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of MCA + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * MCA target + */ + l_err = new ERRORLOG::ErrlEntry( + ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_MCA_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find MCA's PROC parent!"); + numFails++; + } + + //Check MCS's parents + + l_tempTargetingParent = + static_cast( + fapi2_mcsTarget.getParent()); + + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_MCS]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_MCS_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of MCS + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * MCS target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_MCS_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find MCS's PROC parent!"); + numFails++; + } + + //Check MCBIST's parents + l_tempTargetingParent = + static_cast( + fapi2_mcbistTarget.getParent()); + + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_MCBIST]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_MCBIST_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of MCS + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * MCBIST target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_MCBIST_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find MCBIST's PROC parent!"); + numFails++; + } + +// //Check PHB's parents + l_tempTargetingParent = + static_cast( + fapi2_phbTarget.getParent()); + + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_PHB]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_PHB_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of PHB + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * PHB target + */ + l_err = new ERRORLOG::ErrlEntry( + ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_PHB_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find PHB's PROC parent!"); + numFails++; + } + + //Check PEC's parents + + l_tempTargetingParent = + static_cast( + fapi2_pecTarget.getParent()); + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_PEC]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_PEC_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of PEC + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * PEC target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_PEC_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find PEC's PROC parent!"); + numFails++; + } + + //Check XBUS's parents + l_tempTargetingParent = + static_cast( + fapi2_xbusTarget.getParent()); + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_XBUS]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_XBUS_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of XBUS + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * XBUS target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_XBUS_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find XBUS's PROC parent!"); + numFails++; + } + + //Check OBUS's parents + l_tempTargetingParent = + static_cast( + fapi2_obusTarget.getParent()); + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_OBUS]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_OBUS_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of OBUS + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * OBUS target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_OBUS_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find OBUS's PROC parent!"); + numFails++; + } + + //Check NVBUS's parents + l_tempTargetingParent = + static_cast( + fapi2_nvbusTarget.getParent()); + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_NVBUS]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_NVBUS_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of NVBUS + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * NVBUS target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_NVBUS_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find NVBUS's PROC parent!"); + numFails++; + } + + //Check PPE's parents + l_tempTargetingParent = + static_cast( + fapi2_ppeTarget.getParent()); + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_PPE]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_PPE_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of PPE + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * PPE target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_PPE_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find PPE's PROC parent!"); + numFails++; + } + + //Check PERV's parents + l_tempTargetingParent = + static_cast( + fapi2_pervTarget.getParent()); + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_PERV]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_PERV_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of PERV + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * PERV target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_PERV_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find PERV's PROC parent!"); + numFails++; + } + + //Check CAPP's parents + l_tempTargetingParent = + static_cast( + fapi2_cappTarget.getParent()); + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_CAPP]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_CAPP_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of CAPP + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * CAPP target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_CAPP_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::Unable to find CAPP's PROC parent!"); + numFails++; + } + + //Check SBE's parents + l_tempTargetingParent = + static_cast( + fapi2_sbeTarget.getParent()); + numTests++; + if(TARGETING::get_huid(l_nimbusProc) != + TARGETING::get_huid(l_tempTargetingParent)) + { + uint8_t l_instance = 0; + targeting_targets[MY_SBE]-> + tryGetAttr(l_instance); + /*@ + * @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE + * @moduleid fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST + * @reasoncode fapi2::RC_SBE_NO_PROC_FOUND + * @userdata1[0:31] Expected Parent HUID + * @userdata1[32:63] Actual Parent HUID + * @userdata2[0:31] Instance of SBE + * @userdata2[32:63] fapi2 Type of expected parent + * @devdesc Could not find the parent PROC of this + * SBE target + */ + l_err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE, + fapi2::MOD_FAPI2_PLAT_GET_PARENT_TEST, + fapi2::RC_SBE_NO_PROC_FOUND, + TWO_UINT32_TO_UINT64( + TO_UINT32( + TARGETING::get_huid( + l_nimbusProc)), + TO_UINT32( + TARGETING::get_huid( + l_tempTargetingParent))), + TWO_UINT32_TO_UINT64( + TO_UINT32(l_instance), + TO_UINT32(TARGET_TYPE_PROC_CHIP)), + true/*SW Error*/); + errlCommit(l_err,HWPF_COMP_ID); + TS_FAIL( "fapi2TargetTest::UnAble to find SBE's PROC parent!"); + numFails++; + } + + }while(0); + FAPI_INF("fapi2TargetTest:: Test Complete. %d/%d fails", numTests, numFails); + return l_err; +} + + + + +} \ No newline at end of file diff --git a/src/usr/fapi2/test/fapi2Test.H b/src/usr/fapi2/test/fapi2Test.H index 1111ec9c9..366921dbb 100644 --- a/src/usr/fapi2/test/fapi2Test.H +++ b/src/usr/fapi2/test/fapi2Test.H @@ -44,6 +44,7 @@ #include #include +#include "fapi2GetParentTest.C" #include "fapi2HwpTest.C" #include "fapi2GetChildrenTest.C" @@ -60,6 +61,8 @@ public: */ void test_fapi2Test(void) { + FAPI_INF(">>>>>>test_fapi2Test starting..."); + FAPI_INF(">>test_fapi2HwpTest starting..."); fapi2HwpTest(); FAPI_INF("<>test_fapi2GetChildrenTest starting..."); fapi2GetChildrenTest(); FAPI_INF("<>fapi2TargetTest::testFapi2GetParent starting..."); + fapi2GetParentTest(); + FAPI_INF("< AFFINITY_PATH - physical:sys-0/node-0/proc-0/capp-0 + affinity:sys-0/node-0/proc-0/capp-0 CHIP_UNIT @@ -2572,7 +2572,7 @@ AFFINITY_PATH - physical:sys-0/node-0/proc-0/capp-1 + affinity:sys-0/node-0/proc-0/capp-1 CHIP_UNIT -- cgit v1.2.1