This is an old revision of the document!
This page covers the methods of updating the flash
Firmware can be updated via the bin file.
In general the data_collect executable is used to update the firmware. This can be done from the host or on the device.
The firmware binary file for the latest version is available on the respective flash image. The binary file can be also obtained from the ADSD3500 installer. From the installer package, under the directory ADSD3500_Release_Firmware, the binary file required in, in this case for the 4.1.5 firmware release:
On the device:
cd ~/Eval/bin ./data_collect --fw Fw_Update_4.1.5.bin config_crosby_adsd3500_nxp.json
From the host:
cd "C:\Analog Devices\ADTF3175D\TOF_Evaluation_ADTF3175D-Rel4.1.1\bin" data_collect --fw Fw_Update_4.1.5.bin --ip 10.42.0.1 tof-viewer_config.json
In either case wait for 60s before restarting the system.
The imager module includes a flash/NVM that contains all firmware and calibration parameters for to enable the imager (ADSD3100 or ADSD3030) and the ADSD3500.
Updating the full flash should only be done if absolutely needed.
It is also possible to reprogram the full NVM/flash of the module.
On the file system of the evaluation platform see the directory /home/analog/Workspace/host_boot_tools.
This procedure requires the ADSD3500 firmware streams, imager CFG and a CCB.
While the CCB can be read via the ADSD3500, at this point the CFG cannot. This will be rectified in future versions of the ADSD3500 firmware. For now, ensure you have the correct CFG for ADI.
The firmware stream files for the latest version is available on the respective flash image. Stream files can be also obtained from the ADSD3500 installer. From the installer package, under the directory ADSD3500_Release_Firmware, the two firmware stream files required are, in this case for the 4.1.0 firmware release:
These operations are done entirely on the embedded Linux platform.
The following steps are required:
cd ~/Workspace/host_boot_tools/Flashing_bin_img ./CCB my_ccb_file.ccb
For example:
analog@aditof:~$ cd ~/Workspace/host_boot_tools/Flashing_bin_img analog@aditof:~/Workspace/host_boot_tools/Flashing_bin_img$ ./CCB_READ my_ccb_file.ccb Done reading response header Packets Needed: 86 Packet number : 1 / 86 Packet number : 2 / 86 Packet number : 3 / 86 Packet number : 4 / 86 Packet number : 5 / 86 Packet number : 6 / 86 Packet number : 7 / 86 Packet number : 8 / 86 Packet number : 9 / 86 Packet number : 10 / 86 Packet number : 11 / 86 Packet number : 12 / 86 Packet number : 13 / 86 Packet number : 14 / 86 Packet number : 15 / 86 Packet number : 16 / 86 Packet number : 17 / 86 Packet number : 18 / 86 Packet number : 19 / 86 Packet number : 20 / 86 Packet number : 21 / 86 Packet number : 22 / 86 Packet number : 23 / 86 Packet number : 24 / 86 Packet number : 25 / 86 Packet number : 26 / 86 Packet number : 27 / 86 Packet number : 28 / 86 Packet number : 29 / 86 Packet number : 30 / 86 Packet number : 31 / 86 Packet number : 32 / 86 Packet number : 33 / 86 Packet number : 34 / 86 Packet number : 35 / 86 Packet number : 36 / 86 Packet number : 37 / 86 Packet number : 38 / 86 Packet number : 39 / 86 Packet number : 40 / 86 Packet number : 41 / 86 Packet number : 42 / 86 Packet number : 43 / 86 Packet number : 44 / 86 Packet number : 45 / 86 Packet number : 46 / 86 Packet number : 47 / 86 Packet number : 48 / 86 Packet number : 49 / 86 Packet number : 50 / 86 Packet number : 51 / 86 Packet number : 52 / 86 Packet number : 53 / 86 Packet number : 54 / 86 Packet number : 55 / 86 Packet number : 56 / 86 Packet number : 57 / 86 Packet number : 58 / 86 Packet number : 59 / 86 Packet number : 60 / 86 Packet number : 61 / 86 Packet number : 62 / 86 Packet number : 63 / 86 Packet number : 64 / 86 Packet number : 65 / 86 Packet number : 66 / 86 Packet number : 67 / 86 Packet number : 68 / 86 Packet number : 69 / 86 Packet number : 70 / 86 Packet number : 71 / 86 Packet number : 72 / 86 Packet number : 73 / 86 Packet number : 74 / 86 Packet number : 75 / 86 Packet number : 76 / 86 Packet number : 77 / 86 Packet number : 78 / 86 Packet number : 79 / 86 Packet number : 80 / 86 Packet number : 81 / 86 Packet number : 82 / 86 Packet number : 83 / 86 Packet number : 84 / 86 Packet number : 85 / 86 Packet number : 86 / 86 Binary size : 175148 CCB checksum correct! analog@aditof:~/Workspace/host_boot_tools/Flashing_bin_img$ ls -la my_ccb_file.ccb -rw-rw-r-- 1 analog analog 175144 Feb 7 18:35 my_ccb_file.ccb
~/Workspace/host_boot_tools/Flashing_bin_img/Flash_Binary_generator ./flash_gen -F -A -D ../my_ccb_file.ccb -X ./Crosby_FF_MP200_QMP150_ACC_noPCM.cfg -P adsd3500_fw_3_2_2.stream -Q adsd3500_fw_3_2_2.stream -R adsd3500_fw_3_2_2.stream -L -I Init_firmware_apps_board_25MHZ.stream
For example:
analog@aditof:~/Workspace/host_boot_tools/Flashing_bin_img/Flash_Binary_generator$ ./flash_gen -F -A -D ../my_ccb_file.ccb -X ./Crosby_FF_MP200_QMP150_ACC_noPCM.cfg -P adsd3500_fw_3_2_2.stream -Q adsd3500_fw_3_2_2.stream -R adsd3500_fw_3_2_2.stream -L -I Init_firmware_apps_board_25MHZ.stream sizeof(CCB) : 0x40000 262144 sizeof(INIT) : 0x3000 12288 sizeof(PF) : 0x20000 131072 sizeof(PC) : 0x20000 131072 sizeof(PU) : 0x20000 131072 sizeof(CDEBUG) : 0x4000 16384 sizeof(IMAGER) : 0x10000 65536 sizeof(CAP_CHUNK) : 0x1000 4096 FILE_HEADER file_header.chunkHeaderCRC = 0xbb1bb508 file_header.nextChunkHeader = 0x1000 CAPABILITIES CHUNK cap_t.header.nextChunkHeader = 0x2000 cap_size = 40 cap.header.chunkSizeBytes = 0x44 cap_t.header.chunkHeaderCRC = 0xad6384e4 cap_crc = 0x36362162 D = ../my_ccb_file.ccb optind=4 ccb.header.nextChunkHeader = 270336 ccb_size = 2ac28 ccb.header.chunkSizeBytes = 2ac2c ccb.header.chunkHeaderCRC = 0x2ef9475d ccb_crc = 0x761ea8a5 X = ./Crosby_FF_MP200_QMP150_ACC_noPCM.cfg optind=6 imager.header.nextChunkHeader = 0x52000 imager_size = e772 imager.header.chunkSizeBytes = e776 imager.header.chunkHeaderCRC = 0xd954c29e imager_crc = 0xd60bb444 P = adsd3500_fw_3_2_2.stream optind=8 pf.header.nextChunkHeader = 72000 pf_size = 167ac pf.header.chunkSizeBytes = 167ac Q = adsd3500_fw_3_2_2.stream optind=10 pc.header.nextChunkHeader = 92000 pf_size = 167ac pc.header.chunkSizeBytes = 167ac R = adsd3500_fw_3_2_2.stream optind=12 pc.header.nextChunkHeader = b2000 pf_size = 167ac pu.header.chunkSizeBytes = 167ac last_chunk = 1 I = Init_firmware_apps_board_25MHZ.stream optind=15 init.header.nextChunkHeader = 0 init_size = 208c init.header.chunkSizeBytes = 2090 init.header.chunkHeaderCRC = 0x7d0e005f analog@aditof:~/Workspace/host_boot_tools/Flashing_bin_img/Flash_Binary_generator$ ls -la flash.bin -rw-rw-r-- 1 analog analog 741376 Feb 7 18:41 flash.bin
cd ~/Workspace/host_boot_tools/Flashing_bin_img ./FW_UPDATE Flash_Binary_generator/flash.bin
When complete, let the system perform the update for 1 minutes. From 4.2.0 of the ADSD3500 firmware, an indication of completion or failure will be available from the ADSD3500.
For example:
analog@aditof:~/Workspace/host_boot_tools/Flashing_bin_img$ ./FW_UPDATE Flash_Binary_generator/flash.bin Size of Binary: 741376 Packets Needed: 2896 Actual size (after padding): 741376 Computed CRC: 7629939a Header data: ad00011200500b006e0000009a932976 Packet number: 2896 / 2896 Done