Wiki

The most recent version of this page is a draft.DiffThis version (25 Apr 2023 18:43) was approved by Andre Straker-Payne.The Previously approved version (10 Feb 2023 17:26) is available.Diff

This is an old revision of the document!


System Update

This page covers the methods of updating the flash

Firmware Update

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:

  • Fw_Update_4.1.5.bin

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.

Full Flash/NVM Update

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.

Do NOT attempt this if you are unsure.

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:

  • ADSD3500_Init_firmware_25MHz.stream
  • ADSD3500_Firmware_Host_Boot_4_1_0.stream

These operations are done entirely on the embedded Linux platform.

The following steps are required:

  1. Read the CCB from the device.
  2. Build the new NVM/flash image.
  3. Program the NVM/flash via Pulsatrix.

Read the CCB

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

Build the New NVM/Flash Image

~/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

Program the NVM/flash via Pulsatrix

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
/srv/wiki.analog.com/data/pages/resources/eval/user-guides/eval-adtf3175d-nxz/system_update.txt · Last modified: 25 Apr 2023 18:47 by Andre Straker-Payne