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.
Note
Fail safe mode uses the 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.