@@ -129,6 +129,7 @@ def return_code(self, rsp, debug=False):
129
129
130
130
131
131
def wait_for_modem (self , send = True , expected = b'OK' , echo_char = None ):
132
+ self .__serial .read ()
132
133
rsp = b''
133
134
start = time .time ()
134
135
while True :
@@ -339,13 +340,14 @@ def __get_wait_msg(self, load_fff=True):
339
340
340
341
341
342
342
- def __run (self , file_path = None , baudrate = 921600 , port = None , resume = False , load_ffh = False , mirror = False , switch_ffh = False , bootrom = False , rgbled = 0x050505 , debug = False , pkgdebug = False , atneg = True , max_try = 10 , direct = True , atneg_only = False , info_only = False , expected_smod = None , verbose = False , load_fff = False , mtools = False , fc = False ):
343
+ def __run (self , file_path = None , baudrate = 921600 , port = None , resume = False , load_ffh = False , mirror = False , switch_ffh = False , bootrom = False , rgbled = 0x050505 , debug = False , pkgdebug = False , atneg = True , max_try = 10 , direct = True , atneg_only = False , info_only = False , expected_smod = None , verbose = False , load_fff = False , mtools = False , fc = False , force_fff = False ):
343
344
self .__wait_msg = False
344
345
mirror = True if atneg_only else mirror
345
346
recover = True if atneg_only else load_ffh
346
347
resume = True if mirror or recover or atneg_only or info_only else resume
347
348
verbose = True if debug else verbose
348
349
load_fff = False if bootrom and switch_ffh else load_fff
350
+ load_fff = True if force_fff else load_fff
349
351
target_baudrate = baudrate
350
352
baudrate = self .__modem_speed if self .__speed_detected else baudrate
351
353
if debug : print ('mirror? {} recover? {} resume? {} direct? {} atneg_only? {} bootrom? {} load_fff? {}' .format (mirror , recover , resume , direct , atneg_only , bootrom , load_fff ))
@@ -410,9 +412,9 @@ def __run(self, file_path=None, baudrate=921600, port=None, resume=False, load_f
410
412
reconnect_uart ()
411
413
return False
412
414
if blobsize > 4194304 :
413
- if load_fff :
415
+ if load_fff and not force_fff :
414
416
print ("Firmware file is too big to load via FFF method. Using ON_THE_FLY" )
415
- load_fff = False
417
+ load_fff = False
416
418
blob = open (file_path , "rb" )
417
419
418
420
if not load_ffh :
@@ -550,7 +552,8 @@ def __run(self, file_path=None, baudrate=921600, port=None, resume=False, load_f
550
552
raise OSError ("Invalid answer '%s' from the device" % response )
551
553
try :
552
554
blob .close ()
553
- except :
555
+ except Exception as ex :
556
+ if debug : print ('Exception: {}' .format (ex ))
554
557
pass
555
558
556
559
self .__serial .read ()
@@ -595,7 +598,8 @@ def __run(self, file_path=None, baudrate=921600, port=None, resume=False, load_f
595
598
if start == True :
596
599
try :
597
600
blob .close ()
598
- except :
601
+ except Exception as ex :
602
+ if debug : print ('Exception: {}' .format (ex ))
599
603
pass
600
604
self .__serial .read ()
601
605
if switch_ffh :
@@ -612,15 +616,18 @@ def __run(self, file_path=None, baudrate=921600, port=None, resume=False, load_f
612
616
else :
613
617
try :
614
618
blob .close ()
615
- except :
619
+ except Exception as ex :
620
+ if debug : print ('Exception: {}' .format (ex ))
616
621
pass
617
622
print ('Code download failed[1], aborting!' )
618
623
return False
619
624
except Exception as ex :
620
625
try :
621
626
blob .close ()
622
- except :
627
+ except Exception as ex :
628
+ if debug : print ('Exception: {}' .format (ex ))
623
629
pass
630
+
624
631
print ('Exception: {}' .format (ex ))
625
632
print ('Code download failed [2], aborting!' )
626
633
abort = True
@@ -870,7 +877,7 @@ def success_message(self, port=None, verbose=False, debug=False):
870
877
print ("Here is the current firmware version:\n " )
871
878
self .show_info (port = port , verbose = verbose , debug = debug )
872
879
873
- def upgrade (self , ffile , mfile = None , baudrate = 921600 , retry = False , resume = False , debug = False , pkgdebug = False , verbose = False , load_fff = True , load_only = False , mtools = False ):
880
+ def upgrade (self , ffile , mfile = None , baudrate = 921600 , retry = False , resume = False , debug = False , pkgdebug = False , verbose = False , load_fff = True , load_only = False , mtools = False , force_fff = False ):
874
881
success = True
875
882
if not retry and mfile is not None :
876
883
if resume or self .__check_br (br_only = True , verbose = verbose , debug = debug ):
@@ -895,7 +902,7 @@ def upgrade(self, ffile, mfile=None, baudrate=921600, retry=False, resume=False,
895
902
print ('Unable to upgrade bootrom.' )
896
903
if debug : print ('Success2? {}' .format (success ))
897
904
if success :
898
- if self .__run (file_path = ffile , resume = True if mfile is not None else resume , baudrate = baudrate , direct = False , debug = debug , pkgdebug = pkgdebug , verbose = verbose , load_fff = False if mfile else load_fff , mtools = mtools ):
905
+ if self .__run (file_path = ffile , resume = True if mfile is not None else resume , baudrate = baudrate , direct = False , debug = debug , pkgdebug = pkgdebug , verbose = verbose , load_fff = False if mfile else load_fff , mtools = mtools , force_fff = force_fff ):
899
906
if self .__check_br (verbose = verbose , debug = debug ):
900
907
success = self .__run (bootrom = True , debug = debug , direct = False , pkgdebug = pkgdebug , verbose = verbose , load_fff = True )
901
908
self .success_message (verbose = verbose , debug = debug )
@@ -942,13 +949,13 @@ def upgrade_uart(self, ffh_mode=False, mfile=None, retry=False, resume=False, co
942
949
def show_info (self , port = None , debug = False , verbose = False , fc = False ):
943
950
self .__run (port = port , debug = debug , info_only = True , verbose = verbose , fc = fc )
944
951
945
- def upgrade_ext (self , port , ffile , mfile , resume = False , debug = False , pkgdebug = False , verbose = False , load_fff = True , fc = False ):
952
+ def upgrade_ext (self , port , ffile , mfile , resume = False , debug = False , pkgdebug = False , verbose = False , load_fff = True , fc = False , force_fff = False ):
946
953
success = True
947
954
if mfile is not None :
948
955
success = False
949
956
success = self .__run (file_path = mfile , load_ffh = True , port = port , debug = debug , pkgdebug = pkgdebug , verbose = verbose , fc = fc )
950
957
if success :
951
- if self .__run (file_path = ffile , resume = True if mfile is not None else resume , direct = False , port = port , debug = debug , pkgdebug = pkgdebug , verbose = verbose , load_fff = load_fff , fc = fc ):
958
+ if self .__run (file_path = ffile , resume = True if mfile is not None else resume , direct = False , port = port , debug = debug , pkgdebug = pkgdebug , verbose = verbose , load_fff = load_fff , fc = fc , force_fff = force_fff ):
952
959
self .success_message (port = port , verbose = verbose , debug = debug )
953
960
else :
954
961
print ('Unable to load updater from {}' .format (mfile ))
@@ -984,7 +991,7 @@ def load(mfile, baudrate=921600, verbose=False, debug=False, hangup=False):
984
991
print ('Modem must be in recovery mode!' )
985
992
reconnect_uart ()
986
993
987
- def run (ffile , mfile = None , baudrate = 921600 , verbose = False , debug = False , load_fff = True , hangup = True ):
994
+ def run (ffile , mfile = None , baudrate = 921600 , verbose = False , debug = False , load_fff = True , hangup = True , force_fff = False ):
988
995
print_welcome ()
989
996
retry = False
990
997
resume = False
@@ -1008,7 +1015,7 @@ def run(ffile, mfile=None, baudrate=921600, verbose=False, debug=False, load_fff
1008
1015
mtools = True
1009
1016
elif state == - 1 :
1010
1017
detect_error ()
1011
- success = sqnup .upgrade (ffile = ffile , mfile = mfile , baudrate = baudrate , retry = retry , resume = resume , debug = debug , pkgdebug = False , verbose = verbose , load_fff = load_fff , mtools = mtools )
1018
+ success = sqnup .upgrade (ffile = ffile , mfile = mfile , baudrate = baudrate , retry = retry , resume = resume , debug = debug , pkgdebug = False , verbose = verbose , load_fff = load_fff , mtools = mtools , force_fff = force_fff )
1012
1019
reconnect_uart ()
1013
1020
return success
1014
1021
@@ -1072,11 +1079,11 @@ def state(verbose=False, debug=False, retry=5, hangup=False):
1072
1079
return sqnup .detect_modem_state (debug = debug , hangup = hangup , retry = retry )
1073
1080
1074
1081
else :
1075
- def run (port , ffile , mfile = None , resume = False , debug = False , verbose = False , load_fff = True , fc = False ):
1082
+ def run (port , ffile , mfile = None , resume = False , debug = False , verbose = False , load_fff = True , fc = False , force_fff = False ):
1076
1083
print_welcome ()
1077
1084
sqnup = sqnsupgrade ()
1078
1085
if sqnup .check_files (ffile , mfile , debug ):
1079
- sqnup .upgrade_ext (port = port , ffile = ffile , mfile = mfile , resume = resume , debug = debug , pkgdebug = False , verbose = verbose , load_fff = load_fff )
1086
+ sqnup .upgrade_ext (port = port , ffile = ffile , mfile = mfile , resume = resume , debug = debug , pkgdebug = False , verbose = verbose , load_fff = load_fff , force_fff = force_fff )
1080
1087
1081
1088
def version (port , verbose = False , debug = False , fc = False ):
1082
1089
sqnup = sqnsupgrade ()
0 commit comments