@@ -129,6 +129,7 @@ def return_code(self, rsp, debug=False):
129129
130130
131131 def wait_for_modem (self , send = True , expected = b'OK' , echo_char = None ):
132+ self .__serial .read ()
132133 rsp = b''
133134 start = time .time ()
134135 while True :
@@ -339,13 +340,14 @@ def __get_wait_msg(self, load_fff=True):
339340
340341
341342
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 ):
343344 self .__wait_msg = False
344345 mirror = True if atneg_only else mirror
345346 recover = True if atneg_only else load_ffh
346347 resume = True if mirror or recover or atneg_only or info_only else resume
347348 verbose = True if debug else verbose
348349 load_fff = False if bootrom and switch_ffh else load_fff
350+ load_fff = True if force_fff else load_fff
349351 target_baudrate = baudrate
350352 baudrate = self .__modem_speed if self .__speed_detected else baudrate
351353 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
410412 reconnect_uart ()
411413 return False
412414 if blobsize > 4194304 :
413- if load_fff :
415+ if load_fff and not force_fff :
414416 print ("Firmware file is too big to load via FFF method. Using ON_THE_FLY" )
415- load_fff = False
417+ load_fff = False
416418 blob = open (file_path , "rb" )
417419
418420 if not load_ffh :
@@ -550,7 +552,8 @@ def __run(self, file_path=None, baudrate=921600, port=None, resume=False, load_f
550552 raise OSError ("Invalid answer '%s' from the device" % response )
551553 try :
552554 blob .close ()
553- except :
555+ except Exception as ex :
556+ if debug : print ('Exception: {}' .format (ex ))
554557 pass
555558
556559 self .__serial .read ()
@@ -595,7 +598,8 @@ def __run(self, file_path=None, baudrate=921600, port=None, resume=False, load_f
595598 if start == True :
596599 try :
597600 blob .close ()
598- except :
601+ except Exception as ex :
602+ if debug : print ('Exception: {}' .format (ex ))
599603 pass
600604 self .__serial .read ()
601605 if switch_ffh :
@@ -612,15 +616,18 @@ def __run(self, file_path=None, baudrate=921600, port=None, resume=False, load_f
612616 else :
613617 try :
614618 blob .close ()
615- except :
619+ except Exception as ex :
620+ if debug : print ('Exception: {}' .format (ex ))
616621 pass
617622 print ('Code download failed[1], aborting!' )
618623 return False
619624 except Exception as ex :
620625 try :
621626 blob .close ()
622- except :
627+ except Exception as ex :
628+ if debug : print ('Exception: {}' .format (ex ))
623629 pass
630+
624631 print ('Exception: {}' .format (ex ))
625632 print ('Code download failed [2], aborting!' )
626633 abort = True
@@ -870,7 +877,7 @@ def success_message(self, port=None, verbose=False, debug=False):
870877 print ("Here is the current firmware version:\n " )
871878 self .show_info (port = port , verbose = verbose , debug = debug )
872879
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 ):
874881 success = True
875882 if not retry and mfile is not None :
876883 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,
895902 print ('Unable to upgrade bootrom.' )
896903 if debug : print ('Success2? {}' .format (success ))
897904 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 ):
899906 if self .__check_br (verbose = verbose , debug = debug ):
900907 success = self .__run (bootrom = True , debug = debug , direct = False , pkgdebug = pkgdebug , verbose = verbose , load_fff = True )
901908 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
942949 def show_info (self , port = None , debug = False , verbose = False , fc = False ):
943950 self .__run (port = port , debug = debug , info_only = True , verbose = verbose , fc = fc )
944951
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 ):
946953 success = True
947954 if mfile is not None :
948955 success = False
949956 success = self .__run (file_path = mfile , load_ffh = True , port = port , debug = debug , pkgdebug = pkgdebug , verbose = verbose , fc = fc )
950957 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 ):
952959 self .success_message (port = port , verbose = verbose , debug = debug )
953960 else :
954961 print ('Unable to load updater from {}' .format (mfile ))
@@ -984,7 +991,7 @@ def load(mfile, baudrate=921600, verbose=False, debug=False, hangup=False):
984991 print ('Modem must be in recovery mode!' )
985992 reconnect_uart ()
986993
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 ):
988995 print_welcome ()
989996 retry = False
990997 resume = False
@@ -1008,7 +1015,7 @@ def run(ffile, mfile=None, baudrate=921600, verbose=False, debug=False, load_fff
10081015 mtools = True
10091016 elif state == - 1 :
10101017 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 )
10121019 reconnect_uart ()
10131020 return success
10141021
@@ -1072,11 +1079,11 @@ def state(verbose=False, debug=False, retry=5, hangup=False):
10721079 return sqnup .detect_modem_state (debug = debug , hangup = hangup , retry = retry )
10731080
10741081else :
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 ):
10761083 print_welcome ()
10771084 sqnup = sqnsupgrade ()
10781085 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 )
10801087
10811088 def version (port , verbose = False , debug = False , fc = False ):
10821089 sqnup = sqnsupgrade ()
0 commit comments