Addition of DFU Suffix to Binary filesΒΆ
To prevent accidental upgrade of an incompatible image both the binary
Upgrade image and the Data Partition binary must be signed using the
provided dfu_suffix_generator
which can be found pre-compiled in the
host platform directory of the release package eg. /host/MAC/bin
.
This mechanism embeds a structure into the binary files which can be read by the Device Firmware Update (DFU) tool to check that the binary data is appropriate for the connected device, prior to executing.
The general form of usage for the dfu_suffix_generator
is as follows:
dfu_suffix_generator VENDOR_ID PRODUCT_ID [BCD_DEVICE] BINARY_INPUT_FILE BINARY_OUTPUT_FILE
VENDOR_ID
, PRODUCT_ID
and BCD_DEVICE
are non-zero 16bit values in decimal
or hexadecimal format, with the value of 0xFFFF
bypassing verification of this field.
When building Upgrade images for XVF3610-UA devices, the USB Vendor Identifier (VID) and USB Product Identifier (PID) are added to the header and then checked by the DFU utility to ensure that the connected device matches. An error is reported by the tool if there is no match with the connected device.
For XVF3610-INT devices both Vendor ID and Product ID fields should be set
to 0xFFFF
for the generation of the Upgrade image and Data Partition binary. This instructs the DFU to bypass the
checking as there is no equivalent to the USB identifiers for I2C
systems. However, even though the checking is bypassed for the
XVF3610-INT the suffix must be added to both Upgrade and Data partition
files as the DFU utility checks the integrity of the binaries based on
this information.
The following examples show how to add DFU Suffix to Update binaries for both XVF3610-INT and XVF3610-UA products.
For XVF3610-UA (default XMOS Vendor and XVF3610-UA product identifiers are used for illustration):
dfu_suffix_generator.exe 0x20B1 0x0016 app_xvf3610_ua_v<release_version>.bin boot.dfu
dfu_suffix_generator.exe 0x20B1 0x0016 data_partition_upgrade_ua_v<release_version>.bin data.dfu
For XVF3610-INT:
dfu_suffix_generator.exe 0xFFFF 0xFFFF app_xvf3610_int_v<release_version>.bin boot.dfu
dfu_suffix_generator.exe 0xFFFF 0xFFFF data_partition_upgrade_int_v<release_version>.bin data.dfu
Warning
Extreme care must be taken if modifying the default Vendor ID or default Product ID through a Data Partition. If configuration from Data Partition fails the USB VID and PID will remain at their default values (VID=0x20B1, PID=0x0016) and DFU requests for signed files with modified will not be allowed.