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.