Performing Firmware UpdatesΒΆ

The pre-compiled firmware update utility is provided in the Release Package in the host architecture directory eg. /host/Linux/bin. For MAC, Linux and Windows the DFU_USB is provided, and for Raspberry Pi DFU_I2C is provided. The source code can be used to rebuild either version on the required platform.

The general form of dfu_usb utility is as follows:

dfu_usb [OPTIONS] write_upgrade BOOT_IMAGE_BINARY DATA_PARTITION_BIN

OPTIONS: --quiet

--vendor-id 0x20B1 (default)

--product-id 0x0014 (default)

--bcd-device 0xFFFF (default)

--block-size 128 (default)

and the general form of the dfu_i2c utility is shown below:

dfu_i2c [OPTIONS] write_upgrade BOOT_IMAGE_BINARY DATA_PARTITION_BIN

OPTIONS: --quiet

--i2c-address 0x2c (default)

--block-size 128 (default)

The two binary files passed to the utility, the boot image and Data Partition, must have the DFU suffix present otherwise the DFU utility will generate an error. Example DFU utility usage is shown for both XVF3610-UA and XVF3610-INT below.

For XVF3610-UA:

dfu_usb --vendor-id 0x20B1 --product-id 0x0014 write_upgrade boot.dfu data.dfu

and for XVF3610-INT:

dfu_i2c write_upgrade boot.dfu data.dfu

Once complete the following message will be returned and the device will reboot. In the case of XVF3610-UA the device will re-enumerate.

write upgrade successful

For verification that DFU has succeeded as planned, the vfctrl utility can be used to query the firmware version before and after update. For example, to query the version of XVF3610-UA the following command is used:

vfctrl_usb GET_VERSION

NOTE: The vfctrl utilities check the version number of the connected device to ensure correct operation. To suppress an error caused by a disparity in the version of vfctrl and upgraded firmware the --no-check-version option can be used with the utility.