Skip to main content
Associate II
September 29, 2025
Solved

Provisioning via CANFD bootloader and RSS.

  • September 29, 2025
  • 1 reply
  • 365 views

Hello!
I am trying to provision a DA certificate on STM32H563 through CANFD Bootloader in system memory.

I am calling special function 0x83 as described in AN2606 and AN5405. As I can understand, this is an RSSLIB_PFUNC->DataProvisioning.
I am filling the structure and place it to the SRAM3. See the picture/hex.

typedef struct {
 uint32_t *pSource;
 uint32_t *pDestination;
 uint32_t Size;
 uint32_t DoEncryption;
 uint32_t Crc;
} RSSLIB_DataProvisioningConf_t;



Konstantin_Z_0-1759154993511.png

The structure is placed in 0x2005C000
The 0x60 bytes of the obk payload is placed in 0x2005C000.
The fuction returns Error code 0xF5F58080 (CRC Error).

I've tried several algorythms, byte-reversal, but could not get it worked.
I tried to find an example of using this function, but without success.

So, I am asking for some code example showing this function.

Maybe I need to prepare data somehow. Or add another data in crc calculations.

Thanks!

 

 

Best answer by Konstantin_Z

Check the attachment.
This script

  • opens an obk file (I tested it with standard ST obk files) shows the right CRC.
  • extracts payload ,  destination address and payload size from obk file
  •  calculates right CRC for the  RSSLIB_DataProvisioningConf_t
  • makes 2 sets of slCan commands:
    • write data block in the SRAM3
    • write struct in the SRAM3

After these commands are sent I send folowing slCan sequence to perform a Provisioning:
b05020083 
b05020004 
b05042005C060 

This works for my STM32H563 even in Open product state.
You can port this commands to your CANFD adapter-compatible language.

1 reply

Konstantin_ZAuthorBest answer
Associate II
October 1, 2025

Check the attachment.
This script

  • opens an obk file (I tested it with standard ST obk files) shows the right CRC.
  • extracts payload ,  destination address and payload size from obk file
  •  calculates right CRC for the  RSSLIB_DataProvisioningConf_t
  • makes 2 sets of slCan commands:
    • write data block in the SRAM3
    • write struct in the SRAM3

After these commands are sent I send folowing slCan sequence to perform a Provisioning:
b05020083 
b05020004 
b05042005C060 

This works for my STM32H563 even in Open product state.
You can port this commands to your CANFD adapter-compatible language.