diff options
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 6 | ||||
-rw-r--r-- | src/usr/targeting/attrsync.C | 9 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C index 4b65fa661..35c7568f9 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.C +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C @@ -1434,6 +1434,9 @@ void IStepDispatcher::waitForSyncPoint() } else { + // Tell Simics we are waiting for the FSP to do something + MAGIC_WAITING_FOR_FSP(); + // Wait for the condition variable to be signalled mutex_lock(&iv_mutex); while((!iv_syncPointReached) && (!iv_shutdown)) @@ -1451,6 +1454,9 @@ void IStepDispatcher::waitForSyncPoint() iv_syncPointReached = false; mutex_unlock(&iv_mutex); } + + // Tell Simics we are done waiting + MAGIC_DONE_WAITING_FOR_FSP(); } TRACFCOMP(g_trac_initsvc, EXIT_MRK"IStepDispatcher::waitForSyncPoint"); diff --git a/src/usr/targeting/attrsync.C b/src/usr/targeting/attrsync.C index fbc8db4b9..aadb06849 100644 --- a/src/usr/targeting/attrsync.C +++ b/src/usr/targeting/attrsync.C @@ -28,6 +28,7 @@ #include <initservice/initserviceif.H> #include <errl/hberrltypes.H> #include <secureboot/service.H> +#include <arch/ppc.H> using namespace ERRORLOG; @@ -143,6 +144,11 @@ namespace TARGETING } + // Tell Simics we are waiting for the FSP to do something + // simce the vast majority of the processing time is + // on the FSP side of things + MAGIC_WAITING_FOR_FSP(); + if(( l_errl == NULL ) && ( iv_total_pages != 0 )) { // tell fsp to commit the last section of data we sent @@ -154,6 +160,9 @@ namespace TARGETING } } + // Tell Simics we are done waiting + MAGIC_DONE_WAITING_FOR_FSP(); + }while(0); return l_errl; |