Boot Image and Data Partition Compatibility checksΒΆ

The format of Data Partitions and Boot Images may change between version increments. Therefore to prevent incompatible Boot and Data Partitions from running and causing undefined behaviour, a field called compatibility version is embedded into the Data Partition. A running Boot Image checks its own version, against the compatibility version in the Data Partition before reading the partition data.

The version of the firmware should also be specified in the --upgrade argument of xflash when generating the Upgrade Image as described previously.

If the compatibility check fails, the booted image, which could be a factory image or an upgrade image will not read the Data Partition and will operate with its default settings (described in Default Operation section above). The Boot status is reported in the RUN_STATUS register which can be accessed via the vfctrl utility, for example:

vfctrl_usb.exe GET_RUN_STATUS

Successful Boot status is reported by either FACTORY_DATA_SUCCESS or UPGRADE_DATA_SUCCESS depending on which Boot Image was executed.

If unsuccessful the device will revert to a fail-safe mode of operation. The RUN_STATUS register can be queried for further debug information. The full list of RUN_STATUS codes are described in the the reference section.


Fail safe mode uses default vendor ID of 0x20B1 (XMOS) and product ID of 0x16. In this event, host needs to be equipped with the ability to locate USB device under different IDs.