diff options
Diffstat (limited to 'src/usr/scom')
-rw-r--r-- | src/usr/scom/runtime/rt_scom.C | 8 | ||||
-rw-r--r-- | src/usr/scom/runtime/test/testscom_rt.H | 11 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/usr/scom/runtime/rt_scom.C b/src/usr/scom/runtime/rt_scom.C index 26bac2898..551e9bac9 100644 --- a/src/usr/scom/runtime/rt_scom.C +++ b/src/usr/scom/runtime/rt_scom.C @@ -28,6 +28,7 @@ #include <errl/errlmanager.H> #include <scom/scomreasoncodes.H> #include <scom/scomif.H> +#include <scom/runtime/rt_scomif.H> #include <runtime/interface.h> #include <runtime/rt_targeting.H> #include <xscom/piberror.H> @@ -223,6 +224,13 @@ errlHndl_t sendScomToHyp(DeviceFW::OperationType i_opType, i_opType), i_scomAddr); + constexpr int MembufFatalError = -0x1008; + + if (rc == MembufFatalError) + { + FSISCOM::switchToFspScomAccess(i_target); + } + // attempt to translate rc into a pib error assuming // the rc is in common format HbrtRcPiberr_t l_commonRc = static_cast<HbrtRcPiberr_t>(rc); diff --git a/src/usr/scom/runtime/test/testscom_rt.H b/src/usr/scom/runtime/test/testscom_rt.H index bfa92afde..901b492f8 100644 --- a/src/usr/scom/runtime/test/testscom_rt.H +++ b/src/usr/scom/runtime/test/testscom_rt.H @@ -176,7 +176,7 @@ public: TRACFCOMP( g_trac_scom, "ScomTest::test_SCOMreadWrite_proc> %d/%d fails", fails, total ); } - + // FSI access in runtime /** * @brief SCOM test via FSISCOM to Centaur * @@ -186,6 +186,8 @@ public: TRACFCOMP( g_trac_scom, "ScomTest::test_FSISCOMreadWrite_centaur> Start" ); uint64_t fails = 0; uint64_t total = 0; +#if 0 // removing this test from runtime because HB doesn't have any FSI SCOM + // access during runtime (except through FSP) errlHndl_t l_err = NULL; // Setup some targets to use @@ -252,8 +254,10 @@ public: { continue; } - else if (scom_targets[x]-> - getAttr<TARGETING::ATTR_HWAS_STATE>().functional != true) + else if ((scom_targets[x]-> + getAttr<TARGETING::ATTR_HWAS_STATE>().functional != true) || + (scom_targets[x]-> + getAttr<TARGETING::ATTR_SCOM_SWITCHES>().useFsiScom == 0)) { TRACDCOMP( g_trac_scom, "ScomTest::test_FSISCOMreadWrite_centaur> Target %d is not functional", x ); scom_targets[x] = NULL; //remove from our list @@ -347,6 +351,7 @@ public: } } +#endif TRACFCOMP( g_trac_scom, "ScomTest::test_FSISCOMreadWrite_centaur> %d/%d fails", fails, total ); } |