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.