diff options
-rw-r--r-- | src/include/usr/runtime/runtime_reasoncodes.H | 3 | ||||
-rw-r--r-- | src/usr/runtime/customize_attrs_for_payload.C | 54 |
2 files changed, 49 insertions, 8 deletions
diff --git a/src/include/usr/runtime/runtime_reasoncodes.H b/src/include/usr/runtime/runtime_reasoncodes.H index b54f29751..8bc4c858d 100644 --- a/src/include/usr/runtime/runtime_reasoncodes.H +++ b/src/include/usr/runtime/runtime_reasoncodes.H @@ -68,7 +68,8 @@ namespace RUNTIME MOD_OPEN_UNTRUSTED_SP_AREAS = 0x28, /**< populate_hbruntime.C */ MOD_SEND_ATTRIBUTES_TO_FSP = 0x29, /**< hbrt_utilities.H */ MOD_RT_DO_NVDIMM_OP = 0x2A, /**< rt_fwnotify.C */ - SET_ATTR_NVDIMM_ENCRYPTION_ENABLE = 0x2B, /**< rt_fwnotify.C */ + SET_ATTR_NVDIMM_ENCRYPTION_ENABLE = 0x2B, /**< rt_fwnotify.C */ + MOD_CONFIGURE_HBRT_HYP_IDS = 0x2C, }; enum RuntimeReasonCode diff --git a/src/usr/runtime/customize_attrs_for_payload.C b/src/usr/runtime/customize_attrs_for_payload.C index 980037980..69dfc3dfb 100644 --- a/src/usr/runtime/customize_attrs_for_payload.C +++ b/src/usr/runtime/customize_attrs_for_payload.C @@ -78,7 +78,8 @@ errlHndl_t createProcNotFoundError( * @reasoncode RUNTIME::RT_NO_PROC_TARGET * @userdata1 Input targeting target's HUID * @devdesc No processor targeting target was found for the given - * targeting target + * targeting target + * @custdesc Unexpected internal firmware error */ pError = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_INFORMATIONAL, @@ -86,7 +87,7 @@ errlHndl_t createProcNotFoundError( RUNTIME::RT_NO_PROC_TARGET, huid, 0, - true); + ERRORLOG::ErrlEntry::ADD_SW_CALLOUT); ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting target"). addToLog(pError); @@ -165,6 +166,7 @@ errlHndl_t computeNonPhypRtTarget( * @userdata1 MEMBUF targeting target's HUID * @devdesc No associated DMI targeting target(s) found for * given MEMBUF targeting target + * @custdesc Unexpected internal firmware error */ pError = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_INFORMATIONAL, @@ -172,7 +174,7 @@ errlHndl_t computeNonPhypRtTarget( RUNTIME::RT_UNIT_TARGET_NOT_FOUND, huid, 0, - true); + ERRORLOG::ErrlEntry::ADD_SW_CALLOUT); ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target"). addToLog(pError); @@ -257,6 +259,7 @@ errlHndl_t computeNonPhypRtTarget( * @userdata1 OCMB targeting target's HUID * @devdesc No associated OMI targeting target(s) found for * given OCMB targeting target + * @custdesc Unexpected internal firmware error */ pError = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_INFORMATIONAL, @@ -264,7 +267,7 @@ errlHndl_t computeNonPhypRtTarget( RUNTIME::RT_NO_OMI_TARGET_FOUND, huid, 0, - true); + ERRORLOG::ErrlEntry::ADD_SW_CALLOUT); ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target"). addToLog(pError); @@ -319,6 +322,7 @@ errlHndl_t computeNonPhypRtTarget( * @userdata2 Targeting target's type * @devdesc The targeting type of the input targeting target is * not supported by runtime code + * @custdesc Unexpected internal firmware error */ pError = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_INFORMATIONAL, @@ -326,7 +330,7 @@ errlHndl_t computeNonPhypRtTarget( RUNTIME::RT_TARGET_TYPE_NOT_SUPPORTED, huid, targetingTargetType, - true); + ERRORLOG::ErrlEntry::ADD_SW_CALLOUT); ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target"). addToLog(pError); @@ -402,6 +406,7 @@ errlHndl_t getRtTypeForTarget( * @userdata1 Target's HUID * @userdata2 Target's targeting type * @devdesc Targeting target's type not supported by runtime code + * @custdesc Unexpected internal firmware error */ pError = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_INFORMATIONAL, @@ -409,7 +414,7 @@ errlHndl_t getRtTypeForTarget( RUNTIME::RT_TARGET_TYPE_NOT_SUPPORTED, huid, targetingTargetType, - true); + ERRORLOG::ErrlEntry::ADD_SW_CALLOUT); ERRORLOG::ErrlUserDetailsTarget(i_pTarget,"Targeting Target"). addToLog(pError); @@ -543,9 +548,38 @@ errlHndl_t configureHbrtHypIds(const bool i_configForPhyp) hbrtHypId += pos; // Add OMI chip unit to end break; } - default: // just PROC + case TARGETING::TYPE_PROC: { hbrtHypId = (*pIt)->getAttr<TARGETING::ATTR_ORDINAL_ID>(); + break; + } + default: + { + auto huid = get_huid(*pIt); + auto targetType = (*pIt)->getAttr<TARGETING::ATTR_TYPE>(); + TRACFCOMP(g_trac_runtime, ERR_MRK + "configureHbrtHypIds> 0x%08X is not a supported type. " + "HUID: 0x%08X", targetType, huid); + /*@ + * @errortype + * @moduleid RUNTIME::MOD_CONFIGURE_HBRT_HYP_IDS + * @reasoncode RUNTIME::RT_TARGET_TYPE_NOT_SUPPORTED + * @userdata1 Target's HUID + * @userdata2 Target's targeting type + * @devdesc Targeting target's type not supported by runtime code + * @custdesc Unexpected internal firmware error + */ + pError = new ERRORLOG::ErrlEntry( + ERRORLOG::ERRL_SEV_INFORMATIONAL, + RUNTIME::MOD_CONFIGURE_HBRT_HYP_IDS, + RUNTIME::RT_TARGET_TYPE_NOT_SUPPORTED, + huid, + targetType, + ERRORLOG::ErrlEntry::ADD_SW_CALLOUT); + + ERRORLOG::ErrlUserDetailsTarget(*pIt,"Targeting Target"). + addToLog(pError); + break; } } // end of ATTR_TYPE switch hbrtHypId |= rtType; @@ -559,6 +593,12 @@ errlHndl_t configureHbrtHypIds(const bool i_configForPhyp) } } + // Only set HBRT_HYP_ID attribute if no error found + if (pError) + { + break; + } + (*pIt)->setAttr<TARGETING::ATTR_HBRT_HYP_ID>(hbrtHypId); TRACDCOMP( g_trac_runtime, "configureHbrtHypIds> " "Set ATTR_HBRT_HYP_ID attribute to 0x%016llX on targeting target " |