How to create RoT examples for STM32WBA

In the STM32CubeWBA firmware package, the OEMiRoT & OEMiRoT_OEMuRoT examples are not provided for all boards and all MCUs. This article explains how to generate the OEMiROT examples for the NUCLEO-WBA65RI and NUCLEO-WBA55CG boards, as well as OEMiROT & OEMiRoT_OEMuRoT examples for the STM32WBA55G-DK1 board.

1. OEMiRoT projects creation for NUCLEO-WBA65RI

OEMiRoT example can be generated for the NUCLEO-WBA65RI board using the STM32WBA65I-DK1 board as a reference. To do that, follow the steps below:

1.1. Get the source files from the STM32WBA65I-DK1 board:

  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Appli content in Projects/NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Appli
  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Appli_TrustZone content in Projects/NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Appli_TrustZone
  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Boot content in Projects/NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Boot

1.2. Change the board name in the project files :

Following your preferred IDE, update the project files replacing STM32WBA65I-DK1 to NUCLEO-WBA65RI

NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Boot/
EWARM/Project_s.ewd



EWARM/Project_s.ewp


NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Boot/

MDK-ARM/Project.uvoptx



MDK-ARM/Project.uvprojx



NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Boot/

STM32CubeIDE/Secure/.cproject
No changes

NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Appli_Trustzone/
EWARM/Secure/Project_s.ewd



EWARM/Secure/Project_s.ewp



EWARM/NonSecure/Project_ns.ewd



EWARM/NonSecure/Project_ns.ewp



NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Appli_Trustzone/

MDK-ARM/Secure/Project_S.uvoptx



MDK-ARM/Secure/Project_S.uprojx



MDK-ARM/NonSecure/Project_NS.uvoptx



MDK-ARM/NonSecure/Project_NS.uprojx



NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Appli_Trustzone/

STM32CubeIDE/Secure/.cproject
No changes


STM32CubeIDE/NonSecure/.cproject
No changes

NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Appli/
EWARM/Project_s.ewd



EWARM/Project_s.ewp


NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Appli/

MDK-ARM/Project.uvoptx



MDK-ARM/Project.uvprojx



NUCLEO-WBA65RI/Applications/ROT/OEMiROT_Appli/

STM32CubeIDE/Secure/.cproject
No changes

1.3. Adapt all region_defs.h to the correct board :

OEMiROT_Boot/inc/region_defs.h :

OEMiROT_Appli_Trustzone/Secure_nsclib/appli_region_defs.h :

OEMiROT_Appli/Secure_nsclib/appli_region_defs.h :

1.4. Get the provisioning files from the STM32WBA65I-DK1 board :

  • Copy the Projects/STM32WBA65I-DK1/ROT_Provisioning content in Projects/NUCLEO-WBA65RI/ROT_Provisioning

1.5. Ready to start

Your NUCLEO-WBA65RI board is now adapted to OEMiRoT Boot path. To test it, run the provisioning.bat/sh script stored in the Firmware/Projects/NUCLEO-WBA65RI/OEMiROT folder and follow the instructions.

2. OEMxRoT projects creation for STM32WBA55G-DK1

OEMxRoT example can be generated for the STM32WBA55G-DK1 board using the STM32WBA65I-DK1 board as a reference. To do that, follow the steps below:

2.1. Get the source files from the STM32WBA65I-DK1 board:

  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Appli content in Projects/STM32WBA55G-DK1/Applications/ROT/OEMiROT_Appli
  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Appli_TrustZone content in Projects/STM32WBA55G-DK1/Applications/ROT/OEMiROT_Appli_TrustZone
  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Boot content in Projects/STM32WBA55G-DK1/Applications/ROT/OEMiROT_Boot

2.2. Change the board name in the project files :

Following your preferred IDE, update the project files replacing STM32WBA65I-DK1 to STM32WBA55G-DK1

STM32WBA55G-DK1/Applications/ROT/OEMiROT_Boot/
EWARM/Project_s.ewd



EWARM/Project_s.ewp


STM32WBA55G-DK1/Applications/ROT/OEMiROT_Boot/

MDK-ARM/Project.uvoptx



MDK-ARM/Project.uvprojx



STM32WBA55G-DK1/Applications/ROT/OEMiROT_Boot/

STM32CubeIDE/Secure/.cproject

STM32WBA55G-DK1/Applications/ROT/OEMiROT_Appli_Trustzone/
EWARM/Secure/Project_s.ewd



EWARM/Secure/Project_s.ewp



EWARM/NonSecure/Project_ns.ewd



EWARM/NonSecure/Project_ns.ewp



STM32WBA55G-DK1/Applications/ROT/OEMiROT_Appli_Trustzone/

MDK-ARM/Secure/Project_S.uvoptx



MDK-ARM/Secure/Project_S.uprojx



MDK-ARM/NonSecure/Project_NS.uvoptx



MDK-ARM/NonSecure/Project_NS.uprojx



STM32WBA55G-DK1/Applications/ROT/OEMiROT_Appli_Trustzone/

STM32CubeIDE/Secure/.cproject



STM32CubeIDE/NonSecure/.cproject



STM32WBA55G-DK1/Applications/ROT/OEMiROT_Appli/
EWARM/Project_s.ewd



EWARM/Project_s.ewp


STM32WBA55G-DK1/Applications/ROT/OEMiROT_Appli/

MDK-ARM/Project.uvoptx



MDK-ARM/Project.uvprojx



STM32WBA55G-DK1/Applications/ROT/OEMiROT_Appli/

STM32CubeIDE/Secure/.cproject


2.3. Adapt all region_defs.h to the correct board :

OEMiROT_Boot/inc/region_defs.h :

No change needed.

OEMiROT_Appli_Trustzone/Secure_nsclib/appli_region_defs.h :

No change needed.

OEMiROT_Appli/Secure_nsclib/appli_region_defs.h :

No change needed.

2.4. Get the provisioning files from the STM32WBA65I-DK1 board :

  • Copy the Projects/STM32WBA65I-DK1/ROT_Provisioning content in Projects/STM32WBA55G-DK1/ROT_Provisioning

2.5. Ready to start

Your STM32WBA55G-DK1 board is now adapted to OEMxRoT Boot path. To test it, run the provisioning.bat/sh script stored in the Firmware/Projects/STM32WBA55G-DK1/OEMiROT folder and follow the instructions.

3. OEMiRoT projects creation for NUCLEO-WBA55CG

OEMiRoT example can be generated for the NUCLEO-WBA55CG board using the STM32WBA65I-DK1 board as a reference. To do that, follow the steps below:

3.1. Get the source files from the STM32WBA65I-DK1 board:

  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Appli content in Projects/NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Appli
  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Appli_TrustZone content in Projects/NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Appli_TrustZone
  • Copy the Projects/STM32WBA65I-DK1/Applications/ROT/OEMiROT_Boot content in Projects/NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Boot

3.2. Change the board name in the project files :

Following your preferred IDE, update the project files replacing STM32WBA65I-DK1 to NUCLEO-WBA55CG

NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Boot/
EWARM/Project_s.ewd



EWARM/Project_s.ewp


NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Boot/

MDK-ARM/Project.uvoptx



MDK-ARM/Project.uvprojx



NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Boot/

STM32CubeIDE/Secure/.cproject

NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Appli_Trustzone/
EWARM/Secure/Project_s.ewd



EWARM/Secure/Project_s.ewp



EWARM/NonSecure/Project_ns.ewd



EWARM/NonSecure/Project_ns.ewp



NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Appli_Trustzone/

MDK-ARM/Secure/Project_S.uvoptx



MDK-ARM/Secure/Project_S.uprojx



MDK-ARM/NonSecure/Project_NS.uvoptx



MDK-ARM/NonSecure/Project_NS.uprojx



NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Appli_Trustzone/

STM32CubeIDE/Secure/.cproject



STM32CubeIDE/NonSecure/.cproject



NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Appli/
EWARM/Project_s.ewd



EWARM/Project_s.ewp


NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Appli/

MDK-ARM/Project.uvoptx



MDK-ARM/Project.uvprojx



NUCLEO-WBA55CG/Applications/ROT/OEMiROT_Appli/

STM32CubeIDE/Secure/.cproject

3.3. Adapt all region_defs.h to the correct board :

OEMiROT_Boot/inc/region_defs.h :

OEMiROT_Appli_Trustzone/Secure_nsclib/appli_region_defs.h :

OEMiROT_Appli/Secure_nsclib/appli_region_defs.h :

3.4. Get the provisioning files from the STM32WBA65I-DK1 board :

  • Copy the Projects/STM32WBA65I-DK1/ROT_Provisioning content in Projects/NUCLEO-WBA55CG/ROT_Provisioning

3.5. Ready to start

Your NUCLEO-WBA55CG board is now adapted to OEMiRoT Boot path. To test it, run the provisioning.bat/sh script stored in the Firmware/Projects/NUCLEO-WBA55CG/OEMiROT folder and follow the instructions.