diff options
Diffstat (limited to 'src/usr/targeting')
-rw-r--r-- | src/usr/targeting/common/common.mk | 3 | ||||
-rw-r--r-- | src/usr/targeting/common/hbrt_target.C | 101 | ||||
-rw-r--r-- | src/usr/targeting/hostboot_common.mk | 5 | ||||
-rw-r--r-- | src/usr/targeting/makefile | 2 | ||||
-rw-r--r-- | src/usr/targeting/runtime/attrPlatOverride_rt.C | 2 | ||||
-rw-r--r-- | src/usr/targeting/runtime/makefile | 2 | ||||
-rw-r--r-- | src/usr/targeting/runtime/rt_startup.C | 4 | ||||
-rw-r--r-- | src/usr/targeting/runtime/rt_targeting.C | 59 | ||||
-rw-r--r-- | src/usr/targeting/runtime/test/testtargeting.H | 8 |
9 files changed, 117 insertions, 69 deletions
diff --git a/src/usr/targeting/common/common.mk b/src/usr/targeting/common/common.mk index 5c357f111..951aa8663 100644 --- a/src/usr/targeting/common/common.mk +++ b/src/usr/targeting/common/common.mk @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2011,2018 +# Contributors Listed Below - COPYRIGHT 2011,2020 # [+] International Business Machines Corp. # # @@ -64,4 +64,3 @@ COMMON_TARGETING_OBJS += ${TARGET_OBJS} COMMON_TARGETING_OBJS += ${PREDICATES_OBJS} COMMON_TARGETING_OBJS += ${ITERATORS_OBJS} COMMON_TARGETING_OBJS += ${OTHER_OBJS} - diff --git a/src/usr/targeting/common/hbrt_target.C b/src/usr/targeting/common/hbrt_target.C new file mode 100644 index 000000000..b91979922 --- /dev/null +++ b/src/usr/targeting/common/hbrt_target.C @@ -0,0 +1,101 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/targeting/common/hbrt_target.C $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2019,2020 */ +/* [+] 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 <targeting/common/hbrt_target.H> +#include <targeting/common/targetservice.H> +#include <targeting/common/targreasoncodes.H> +#include <runtime/customize_attrs_for_payload.H> +#include <targeting/common/trace.H> +#ifdef __HOSTBOOT_MODULE +#include <errl/errludtarget.H> +#endif + +extern trace_desc_t* g_trac_hbrt; +using namespace TARGETING; + +namespace TARGETING +{ + +errlHndl_t getRtTarget( + const TARGETING::Target* i_pTarget, + rtChipId_t& o_rtTargetId) +{ + errlHndl_t pError = NULL; + + do + { + if(i_pTarget == TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL) + { + TARGETING::Target* masterProcChip = NULL; + TARGETING::targetService(). + masterProcChipTargetHandle(masterProcChip); + i_pTarget = masterProcChip; + } + + auto hbrtHypId = RUNTIME::HBRT_HYP_ID_UNKNOWN; + if( (!i_pTarget->tryGetAttr<TARGETING::ATTR_HBRT_HYP_ID>(hbrtHypId)) + || (hbrtHypId == RUNTIME::HBRT_HYP_ID_UNKNOWN)) + { + auto huid = get_huid(i_pTarget); + auto targetingTargetType = + i_pTarget->getAttr<TARGETING::ATTR_TYPE>(); + TRACFCOMP(g_trac_targeting, ERR_MRK + "Targeting target type of 0x%08X not supported. " + "HUID: 0x%08X", + targetingTargetType, + huid); + /*@ + * @errortype + * @moduleid TARG_RT_GET_RT_TARGET + * @reasoncode TARG_RT_TARGET_TYPE_NOT_SUPPORTED + * @userdata1 Target's HUID + * @userdata2 target's targeting type + * @devdesc Targeting target's type not supported by runtime + * code + */ + pError = new ERRORLOG::ErrlEntry( + ERRORLOG::ERRL_SEV_INFORMATIONAL, + TARGETING::TARG_RT_GET_RT_TARGET, + TARGETING::TARG_RT_TARGET_TYPE_NOT_SUPPORTED, + huid, + targetingTargetType +#ifdef __HOSTBOOT_MODULE + ,true); + + ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target"). + addToLog(pError); +#else + ); // if not in hostboot code then skip last param of error log + // and do not create a user details section +#endif + } + + o_rtTargetId = hbrtHypId; + + } while(0); + + return pError; +} + +}
\ No newline at end of file diff --git a/src/usr/targeting/hostboot_common.mk b/src/usr/targeting/hostboot_common.mk index 7be1449d7..4d10df929 100644 --- a/src/usr/targeting/hostboot_common.mk +++ b/src/usr/targeting/hostboot_common.mk @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2013,2016 +# Contributors Listed Below - COPYRIGHT 2013,2020 # [+] International Business Machines Corp. # # @@ -30,6 +30,9 @@ COMMON_TARGETING_MAKEFILE = ${COMMON_TARGETING_REL_PATH}/common.mk include ${COMMON_TARGETING_MAKEFILE} +# TODO: 248022 move this to common.mk when CMVC files are updated for fips +TARGET_OBJS += hbrt_target.o + VPATH += ${TARGETING_REL_PATH}/adapters VPATH += ${COMMON_TARGETING_REL_PATH} VPATH += ${addprefix ${COMMON_TARGETING_REL_PATH}/, ${COMMON_TARGETING_SUBDIRS}} diff --git a/src/usr/targeting/makefile b/src/usr/targeting/makefile index 56f29e51d..af1978f64 100644 --- a/src/usr/targeting/makefile +++ b/src/usr/targeting/makefile @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2011,2019 +# Contributors Listed Below - COPYRIGHT 2011,2020 # [+] International Business Machines Corp. # # diff --git a/src/usr/targeting/runtime/attrPlatOverride_rt.C b/src/usr/targeting/runtime/attrPlatOverride_rt.C index 752fa740a..3c805381c 100644 --- a/src/usr/targeting/runtime/attrPlatOverride_rt.C +++ b/src/usr/targeting/runtime/attrPlatOverride_rt.C @@ -24,7 +24,7 @@ /* IBM_PROLOG_END_TAG */ #include <runtime/interface.h> -#include <runtime/rt_targeting.H> +#include <targeting/runtime/rt_targeting.H> #include <targeting/common/commontargeting.H> #include <targeting/attrPlatOverride.H> #include <fapi2/plat_attr_override_sync.H> diff --git a/src/usr/targeting/runtime/makefile b/src/usr/targeting/runtime/makefile index 9d872cef7..eb1dd366e 100644 --- a/src/usr/targeting/runtime/makefile +++ b/src/usr/targeting/runtime/makefile @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2013,2019 +# Contributors Listed Below - COPYRIGHT 2013,2020 # [+] International Business Machines Corp. # # diff --git a/src/usr/targeting/runtime/rt_startup.C b/src/usr/targeting/runtime/rt_startup.C index 578750006..ed190f196 100644 --- a/src/usr/targeting/runtime/rt_startup.C +++ b/src/usr/targeting/runtime/rt_startup.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2018 */ +/* Contributors Listed Below - COPYRIGHT 2018,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -22,7 +22,7 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ -#include <runtime/rt_targeting.H> +#include <targeting/runtime/rt_targeting.H> #include <runtime/interface.h> #include <targeting/common/target.H> #include <targeting/common/targetservice.H> diff --git a/src/usr/targeting/runtime/rt_targeting.C b/src/usr/targeting/runtime/rt_targeting.C index 581386985..28c1fdf7d 100644 --- a/src/usr/targeting/runtime/rt_targeting.C +++ b/src/usr/targeting/runtime/rt_targeting.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014,2018 */ +/* Contributors Listed Below - COPYRIGHT 2014,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -39,7 +39,7 @@ #include <targeting/attrrp.H> #include <arch/pirformat.H> #include <runtime/customize_attrs_for_payload.H> -#include <runtime/rt_targeting.H> +#include <targeting/runtime/rt_targeting.H> #include <runtime/interface.h> #include <map> #include <util/memoize.H> @@ -54,61 +54,6 @@ using namespace TARGETING; namespace RT_TARG { -errlHndl_t getRtTarget( - const TARGETING::Target* i_pTarget, - rtChipId_t& o_rtTargetId) -{ - errlHndl_t pError = NULL; - - do - { - if(i_pTarget == TARGETING::MASTER_PROCESSOR_CHIP_TARGET_SENTINEL) - { - TARGETING::Target* masterProcChip = NULL; - TARGETING::targetService(). - masterProcChipTargetHandle(masterProcChip); - i_pTarget = masterProcChip; - } - - auto hbrtHypId = RUNTIME::HBRT_HYP_ID_UNKNOWN; - if( (!i_pTarget->tryGetAttr<TARGETING::ATTR_HBRT_HYP_ID>(hbrtHypId)) - || (hbrtHypId == RUNTIME::HBRT_HYP_ID_UNKNOWN)) - { - auto huid = get_huid(i_pTarget); - auto targetingTargetType = - i_pTarget->getAttr<TARGETING::ATTR_TYPE>(); - TRACFCOMP(g_trac_targeting, ERR_MRK - "Targeting target type of 0x%08X not supported. " - "HUID: 0x%08X", - targetingTargetType, - huid); - /*@ - * @errortype - * @moduleid TARG_RT_GET_RT_TARGET - * @reasoncode TARG_RT_TARGET_TYPE_NOT_SUPPORTED - * @userdata1 Target's HUID - * @userdata2 target's targeting type - * @devdesc Targeting target's type not supported by runtime - * code - */ - pError = new ERRORLOG::ErrlEntry( - ERRORLOG::ERRL_SEV_INFORMATIONAL, - TARGETING::TARG_RT_GET_RT_TARGET, - TARGETING::TARG_RT_TARGET_TYPE_NOT_SUPPORTED, - huid, - targetingTargetType, - true); - - ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target"). - addToLog(pError); - } - - o_rtTargetId = hbrtHypId; - - } while(0); - - return pError; -} /** * @brief API documentation same as for getHbTarget; this just implements the diff --git a/src/usr/targeting/runtime/test/testtargeting.H b/src/usr/targeting/runtime/test/testtargeting.H index 5dbd3f15e..c6c7c0d60 100644 --- a/src/usr/targeting/runtime/test/testtargeting.H +++ b/src/usr/targeting/runtime/test/testtargeting.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2013,2019 */ +/* Contributors Listed Below - COPYRIGHT 2013,2020 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -25,7 +25,7 @@ #include <cxxtest/TestSuite.H> #include <targeting/common/commontargeting.H> #include <runtime/interface.h> -#include <runtime/rt_targeting.H> +#include <targeting/runtime/rt_targeting.H> #include <errl/errlentry.H> #include <errl/errlmanager.H> #include <targeting/common/trace.H> @@ -62,7 +62,7 @@ class TargetingTestSuite : public CxxTest::TestSuite { using namespace TARGETING; errlHndl_t err = NULL; - RT_TARG::rtChipId_t rt_chipid; + TARGETING::rtChipId_t rt_chipid; TARGETING::TargetHandleList allTargets; TARGETING::TargetHandleList targetList; @@ -91,7 +91,7 @@ class TargetingTestSuite : public CxxTest::TestSuite for(TargetHandleList::iterator pTarg = allTargets.begin(); pTarg != allTargets.end(); ++pTarg) { - err = RT_TARG::getRtTarget(*pTarg, rt_chipid); + err = TARGETING::getRtTarget(*pTarg, rt_chipid); if( err ) { TS_FAIL("getRtTarget returned error log"); |