Host Protocols Direct Protocol DFU class List of INStructions
April 13, 2023 at 2:39 AMSpringCore Direct DFU INStructions
Some instructions are implemented both in the running firmware and in the booloader (rescue mode, when the firmware can not start). Some other instructions are available only in one the two modes, not both.
The INS
opcodes are defined below:
INS | Name | Description | Firmware | Bootloader |
---|---|---|---|---|
01 |
GET_CONTEXT | Read DFU context | yes | yes |
02 |
RESET | Reset the MCU | yes | yes |
07 |
PUSH_TO_STORAGE | Write a part of the firmware in the NVM (SPI flash, outside the MCU) | yes | yes |
08 |
DUMP_STORAGE | Read-back the NVM (SPI flash). | yes | no |
09 |
CLEAR_STORAGE | Erase the complete NVM | yes | yes |
0A |
PUSH_TO_ROM | Write a part of the firmware in the MCU’s internal ROM | no | yes |
17 |
PUSH_TO_STORAGE_FAST | Write a part of the firmware in the NVM (SPI flash, outside the MCU) - faster erasure algorithm | yes | yes (version >=1) |
18 |
PUSH_TO_STORAGE_CANCEL | Cancel a pending PUSH_TO_STORAGE or PUSH_TO_STORAGE_FAST sequence. | yes | yes (version >=2) |
Important disclaimer #1
The only supported method of flashing a SpringCore device is using the SpringCard-provided SpringCoreFlash.exe
tool, or a genuine SpringCard software that uses the same underlying library as SpringCoreFlash.exe
.
These pages regarding the DFU class are provided for reference only. Invoking these instructions by hand or from a 3rd-party-developed software is not supported by SpringCard and will void the warranty of the device. Any damage you may cause using the instructions documented here is your own responsibility.
In particular, the CLEAR_STORAGE instruction shall never be called.
Important disclaimer #2
SpringCore devices are protected against running invalid and non-genuine firmware images. The protections takes the form of numerous technical checks (CRC and do on) and of a digital signature.
Not only loading a firmware that has not been genuilely issued by SpringCard is useless because such firmware will not run, but this will also void the warranty of the device.
Important disclaimer #3
The ability to flash a firmware in the device may be restricted by the Access Conditions set in register 02F0. If the Protect the firmware bit is set for any of the Local or Remote interfaces, DFU is totally disabled other this interface.
Nevertheless, DFU can not be disabled when the device is started in rescue mode.