1313# See the License for the specific language governing permissions and
1414# limitations under the License.
1515
16+ import time
1617from .. import DEFAULT_BAUD_RATE
1718from .conn_primitive import ConnectorPrimitive
1819
@@ -30,6 +31,7 @@ def __init__(self, name, config, importer=__import__):
3031 self .platform_name = config .get ('platform_name' , None )
3132 self .baudrate = config .get ('baudrate' , DEFAULT_BAUD_RATE )
3233 self .image_path = config .get ('image_path' , None )
34+ self .forced_reset_timeout = config .get ('forced_reset_timeout' , 0 )
3335 self .allocate_requirements = {
3436 "platform_name" : self .platform_name ,
3537 "power_on" : True ,
@@ -83,7 +85,7 @@ def __remote_init(self, importer):
8385 try :
8486 self .__remote_flashing (self .image_path , forceflash = True )
8587 self .__remote_connect (baudrate = self .baudrate )
86- self .__remote_reset ()
88+ self .__remote_reset (delay = self . forced_reset_timeout )
8789 except Exception as error :
8890 self .logger .prn_err (str (error ))
8991 self .__remote_release ()
@@ -111,7 +113,7 @@ def __remote_disconnect(self):
111113 except Exception as error :
112114 self .logger .prn_err ("RemoteConnectorPrimitive.disconnect() failed, reason: " + str (error ))
113115
114- def __remote_reset (self ):
116+ def __remote_reset (self , delay = 0 ):
115117 """! Use GRM remote API to reset DUT """
116118 self .logger .prn_inf ("remote resources reset..." )
117119 if not self .selected_resource :
@@ -123,6 +125,11 @@ def __remote_reset(self):
123125 self .logger .prn_inf ("reset() failed" )
124126 raise
125127
128+ # Post-reset sleep
129+ if delay :
130+ self .logger .prn_inf ("waiting %.2f sec after reset" % delay )
131+ time .sleep (delay )
132+
126133 def __remote_flashing (self , filename , forceflash = False ):
127134 """! Use GRM remote API to flash DUT """
128135 self .logger .prn_inf ("remote resources flashing with '%s'..." % filename )
@@ -184,7 +191,7 @@ def finish(self):
184191 self .__remote_release ()
185192
186193 def reset (self ):
187- self .__remote_reset ()
194+ self .__remote_reset (delay = self . forced_reset_timeout )
188195
189196 def __del__ (self ):
190197 self .finish ()
0 commit comments