SpringCore 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.