diff options
author | Brian Horton <brianh@linux.ibm.com> | 2013-11-05 11:53:07 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-11-07 14:59:47 -0600 |
commit | 288892a74556c285f8ec6b823dd8929fed1b4ac2 (patch) | |
tree | a1db6f5bb2d7f7ac0e5b45c281c35627ca9e4e04 /src/usr/hwas/hwasPlatDeconfigGard.C | |
parent | 503a82e95be52cfbf4f67dbb6270f4dff27e3ae6 (diff) | |
download | talos-hostboot-288892a74556c285f8ec6b823dd8929fed1b4ac2.tar.gz talos-hostboot-288892a74556c285f8ec6b823dd8929fed1b4ac2.zip |
Remove unused createGardRecord() function
hwas common createGardRecord() function is not used by FSP and so
doesn't need to be in the common section. move functionality to the
hostboot platCreateGardRecord() and delete the common function.
Change-Id: Ie8245d6a52ea3acf75966f97740af9c24dc97913
RTC: 90404
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7064
Tested-by: Jenkins Server
Reviewed-by: SHELDON R. BAILEY <baileysh@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwas/hwasPlatDeconfigGard.C')
-rw-r--r-- | src/usr/hwas/hwasPlatDeconfigGard.C | 72 |
1 files changed, 59 insertions, 13 deletions
diff --git a/src/usr/hwas/hwasPlatDeconfigGard.C b/src/usr/hwas/hwasPlatDeconfigGard.C index 71ffb2d78..5f658235b 100644 --- a/src/usr/hwas/hwasPlatDeconfigGard.C +++ b/src/usr/hwas/hwasPlatDeconfigGard.C @@ -56,12 +56,7 @@ errlHndl_t DeconfigGard::platClearGardRecords( errlHndl_t l_pErr = NULL; EntityPath l_targetId; - if (i_pTarget) - { - HWAS_INF("Clear GARD Records for %.8X", get_huid(i_pTarget)); - l_targetId = i_pTarget->getAttr<ATTR_PHYS_PATH>(); - } - else + if (!i_pTarget) { HWAS_INF("Clear all GARD Records"); } @@ -103,7 +98,7 @@ errlHndl_t DeconfigGard::platClearGardRecords( } } // for - HWAS_INF("GARD Records to Cleared: %d", l_gardRecordsCleared); + HWAS_INF("GARD Records Cleared: %d", l_gardRecordsCleared); } else { @@ -122,12 +117,7 @@ errlHndl_t DeconfigGard::platGetGardRecords( o_records.clear(); EntityPath l_targetId; - if (i_pTarget) - { - HWAS_INF("Get GARD Record for %.8X", get_huid(i_pTarget)); - l_targetId = i_pTarget->getAttr<ATTR_PHYS_PATH>(); - } - else + if (!i_pTarget) { HWAS_INF("Get all GARD Records"); } @@ -188,6 +178,62 @@ errlHndl_t DeconfigGard::platCreateGardRecord( do { + const uint8_t lDeconfigGardable = + i_pTarget->getAttr<ATTR_DECONFIG_GARDABLE>(); + const uint8_t lPresent = + i_pTarget->getAttr<ATTR_HWAS_STATE>().present; + if (!lDeconfigGardable || !lPresent) + { + // Target is not GARDable. Commit an error + HWAS_ERR("Target not GARDable"); + + /*@ + * @errortype + * @moduleid HWAS::MOD_DECONFIG_GARD + * @reasoncode HWAS::RC_TARGET_NOT_GARDABLE + * @devdesc Attempt to create a GARD Record for a target that + * is not GARDable + * (not DECONFIG_GARDABLE or not present) + * @userdata1 HUID of input target // GARD errlog EID + * @userdata2 ATTR_DECONFIG_GARDABLE // ATTR_HWAS_STATE.present + */ + const uint64_t userdata1 = + (static_cast<uint64_t>(get_huid(i_pTarget)) << 32) | i_errlEid; + const uint64_t userdata2 = + (static_cast<uint64_t>(lDeconfigGardable) << 32) | lPresent; + l_pErr = hwasError( + ERRL_SEV_UNRECOVERABLE, + HWAS::MOD_DECONFIG_GARD, + HWAS::RC_TARGET_NOT_GARDABLE, + userdata1, + userdata2); + break; + } + + Target* pSys; + targetService().getTopLevelTarget(pSys); + HWAS_ASSERT(pSys, "HWAS platCreateGardRecord: no TopLevelTarget"); + + // check for system CDM Policy + const ATTR_CDM_POLICIES_type l_sys_policy = + pSys->getAttr<ATTR_CDM_POLICIES>(); + if (l_sys_policy & CDM_POLICIES_MANUFACTURING_DISABLED) + { + // manufacturing records are disabled + // - don't process + HWAS_INF("Manufacturing policy: disabled - skipping GARD Record create"); + break; + } + + if ((l_sys_policy & CDM_POLICIES_PREDICTIVE_DISABLED) && + (i_errorType == GARD_Predictive)) + { + // predictive records are disabled AND gard record is predictive + // - don't process + HWAS_INF("Predictive policy: disabled - skipping GARD Record create"); + break; + } + l_pErr = _GardRecordIdSetup(iv_platDeconfigGard); if (l_pErr) { |