From 23817f3b09418a3eba1d5ee5d28713725af6cb72 Mon Sep 17 00:00:00 2001 From: Luxferre <3335173-suborg@users.noreply.gitlab.com> Date: Tue, 21 Dec 2021 12:31:37 +0200 Subject: [PATCH] Started tests on new FDL structure and single-FDL mode --- fdls/sc6530_generic_0x34000000_single.bin | Bin 0 -> 37060 bytes ... => sc6531efm_generic_0x14000000_fdl2.bin} | Bin ... => sc6531efm_generic_0x40004000_fdl1.bin} | Bin fdls/sc7703a_generic_0x40000000_fdl1.bin | Bin 0 -> 7916 bytes fdls/sc7703a_generic_0x80000000_fdl2.bin | Bin 0 -> 59232 bytes uniflash.py | 47 ++++++++++++------ 6 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 fdls/sc6530_generic_0x34000000_single.bin rename fdls/{sc6531efm/nor_fdl.bin => sc6531efm_generic_0x14000000_fdl2.bin} (100%) rename fdls/{sc6531efm/nor_fdl1.bin => sc6531efm_generic_0x40004000_fdl1.bin} (100%) create mode 100644 fdls/sc7703a_generic_0x40000000_fdl1.bin create mode 100644 fdls/sc7703a_generic_0x80000000_fdl2.bin diff --git a/fdls/sc6530_generic_0x34000000_single.bin b/fdls/sc6530_generic_0x34000000_single.bin new file mode 100644 index 0000000000000000000000000000000000000000..8da7cf821b686dd12818b28dc1a35d3723783daa GIT binary patch literal 37060 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 XP=^5vfbT>76Tku3^uP6a41N9!Lc^Xc literal 0 HcmV?d00001 diff --git a/fdls/sc7703a_generic_0x80000000_fdl2.bin b/fdls/sc7703a_generic_0x80000000_fdl2.bin new file mode 100644 index 0000000000000000000000000000000000000000..dae31d85af5e42cdaa3ce308d29af3e18475299b GIT binary patch literal 59232 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 L^z8M&{rmp_v1ZcE literal 0 HcmV?d00001 diff --git a/uniflash.py b/uniflash.py index 7a3d01b..301fcc9 100644 --- a/uniflash.py +++ b/uniflash.py @@ -166,10 +166,13 @@ if __name__ == '__main__': # main app start parser.add_argument('-bs','--block-size', type=auto_int, default=4096, help='Readback/write block size (in bytes), defaults to 4096') parser.add_argument('-dv','--device-vid', type=auto_int, default=UNISOC_VID, help='Override device vendor ID') parser.add_argument('-dp','--device-pid', type=auto_int, default=UNISOC_PID, help='Override device product ID') - parser.add_argument('-fdl1','--fdl1-file', default=rootdir+'/fdls/sc6531efm/nor_fdl1.bin', help='Path to FDL1, defaults to the generic SC6531E/F/M FDL1 shipped with UniDump') + parser.add_argument('-fdl1','--fdl1-file', default=rootdir+'/fdls/sc6531efm_generic_0x40004000_fdl1.bin', help='Path to FDL1, defaults to the generic SC6531E/F/M FDL1 shipped with UniFlash') parser.add_argument('-addr1','--fdl1-addr', type=auto_int, default=0x40004000, help='Address to load FDL1 into, defaults to 0x40004000') - parser.add_argument('-fdl2','--fdl2-file', default=rootdir+'/fdls/sc6531efm/nor_fdl.bin', help='Path to FDL2, defaults to the generic SC6531E/F/M FDL2 shipped with UniDump') + parser.add_argument('-fdl2','--fdl2-file', default=rootdir+'/fdls/sc6531efm_generic_0x14000000_fdl2.bin', help='Path to FDL2, defaults to the generic SC6531E/F/M FDL2 shipped with UniFlash') parser.add_argument('-addr2','--fdl2-addr', type=auto_int, default=0x14000000, help='Address to load FDL2 into, defaults to 0x14000000') + parser.add_argument('-sfdl','--single-fdl-file', default=None, help='Path to a single FDL (for old Spreadtrum chipsets)') + parser.add_argument('-saddr','--single-fdl-addr', type=auto_int, default=0x34000000, help='Address to load the single FDL into, defaults to 0x34000000') + args = parser.parse_args() is_flash = False @@ -182,15 +185,28 @@ if __name__ == '__main__': # main app start fdl2Addr = args.fdl2_addr fdl1Name = args.fdl1_file fdl2Name = args.fdl2_file + fdlSingleName = args.single_fdl_file + fdlSingleAddr = args.single_fdl_addr outfile = args.file partitionId = args.partid readbs = args.block_size readoffset = args.start readlen = args.length forceErase = args.force_erase + singleFdlMode = False + fdl1Label = 'FDL1' + fdl2Label = 'FDL2' - print('Using FDL1 %s, loading to 0x%X' % (fdl1Name, fdl1Addr)) - print('Using FDL2 %s, loading to 0x%X' % (fdl2Name, fdl2Addr)) + if fdlSingleName is not None: + singleFdlMode = True + fdl1Addr = fdlSingleAddr + fdl1Name = fdlSingleName + fdl1Label = 'FDL' + fdl2Label = 'FDL' + print('Using a single FDL %s, loading to 0x%X' % (fdlSingleName, fdlSingleAddr)) + else: + print('Using FDL1 %s, loading to 0x%X' % (fdl1Name, fdl1Addr)) + print('Using FDL2 %s, loading to 0x%X' % (fdl2Name, fdl2Addr)) # initial connection print('Connect the device %X:%X while holding the bootkey...' % (UNISOC_VID, UNISOC_PID) ) @@ -206,29 +222,32 @@ if __name__ == '__main__': # main app start print('Boot mode entered') - print('Sending FDL1') + print('Sending ' + fdl1Label) send_file_to_addr(fdl1Name, fdl1Addr) - print('Starting FDL1') + print('Starting ' + fdl1Label) resp = reqresp(unicmd.cmd_data_exec(fdl1Addr)) rcode, rlen, r = unicmd.resp_decode(resp, False) if rcode == unicmd.BSL_REP_ACK: - print('FDL1 started successfully, reconnecting...') + print(fdl1Label + ' started successfully, reconnecting...') reconnect() handshake(True) - print('Protocol set up, sending FDL2') - send_file_to_addr(fdl2Name, fdl2Addr, True) - print('Starting FDL2') - resp = reqresp(unicmd.cmd_data_exec(fdl2Addr), True) - rcode, rlen, r = unicmd.resp_decode(resp, True) + if singleFdlMode: + rcode = unicmd.BSL_REP_ACK + else: + print('Protocol set up, sending FDL2') + send_file_to_addr(fdl2Name, fdl2Addr, True) + print('Starting FDL2') + resp = reqresp(unicmd.cmd_data_exec(fdl2Addr), True) + rcode, rlen, r = unicmd.resp_decode(resp, True) if rcode == unicmd.BSL_REP_ACK: - print('FDL2 started successfully!') + print(fdl2Label + ' started successfully!') resp = reqresp(unicmd.cmd_sync_full(), True) rcode, rlen, r = unicmd.resp_decode(resp, True) assert rcode == unicmd.BSL_REP_ACK, 'Could not set the baudrate, response code is %X' % rcode - print('FDL2 running, may start interacting with flash memory') + print(fdl2Label + ' running, may start interacting with flash memory') if is_flash: print('Writing flash at offset 0x%X from %s...' % (readoffset, outfile))