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
dfu_suffix_generator which can be found pre-compiled in the
host platform directory of the release package eg.
This mechanism embeds a structure into the binary files which can be read by the 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
BCD_DEVICE are non-zero 16bit values decimal
or hexadecimal format,
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 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 and Product ID fields should be set to 0xFFFF for the generation. 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_v5.2.0.bin boot.dfu dfu_suffix_generator.exe 0x20B1 0x0016 data_partition_upgrade_ua_v5_5_0.bin data.dfu
dfu_suffix_generator.exe 0xFFFF 0xFFFF app_xvf3610_int_v5.2.0.bin boot.dfu dfu_suffix_generator.exe 0xFFFF 0xFFFF data_partition_upgrade_int_v5_2_0.bin data.dfu
Extreme care must be taken if modifying the default Vendor and Product IDs 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.