diff options
Diffstat (limited to 'src/usr/fapi2/plat_utils.C')
-rw-r--r-- | src/usr/fapi2/plat_utils.C | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/usr/fapi2/plat_utils.C b/src/usr/fapi2/plat_utils.C index 01eacb645..bcea30664 100644 --- a/src/usr/fapi2/plat_utils.C +++ b/src/usr/fapi2/plat_utils.C @@ -48,6 +48,7 @@ #include <p9_scan_compression.H> #include <cen_ringId.H> #include <scom/wakeup.H> +#include <util/misc.H> //****************************************************************************** // Trace descriptors @@ -941,6 +942,13 @@ void processEIBusCallouts(const ErrorInfo & i_errInfo, { l_busType = HWAS::DMI_BUS_TYPE; } + else if ( ((l_type1 == TARGETING::TYPE_DMI) && + (l_type2 == TARGETING::TYPE_MEMBUF)) || + ((l_type1 == TARGETING::TYPE_MEMBUF) && + (l_type2 == TARGETING::TYPE_DMI)) ) + { + l_busType = HWAS::DMI_BUS_TYPE; + } else if ((l_type1 == TARGETING::TYPE_ABUS) && (l_type2 == TARGETING::TYPE_ABUS)) { @@ -956,6 +964,13 @@ void processEIBusCallouts(const ErrorInfo & i_errInfo, { l_busType = HWAS::O_BUS_TYPE; } + else if ( ((l_type1 == TARGETING::TYPE_OMI) && + (l_type2 == TARGETING::TYPE_OCMB_CHIP)) || + ((l_type1 == TARGETING::TYPE_OCMB_CHIP) && + (l_type2 == TARGETING::TYPE_OMI)) ) + { + l_busType = HWAS::OMI_BUS_TYPE; + } else { FAPI_ERR("processEIBusCallouts: Bus between target types not known (0x%08x:0x%08x)", @@ -1468,7 +1483,12 @@ ReturnCode delay(uint64_t i_nanoSeconds, bool i_fixed) { //Note: i_fixed is deliberately ignored - nanosleep( 0, i_nanoSeconds ); + + // We don't need to waste time for hardware delays if we're running in Simics + if( !Util::isSimicsRunning() ) + { + nanosleep( 0, i_nanoSeconds ); + } return FAPI2_RC_SUCCESS; } |