How to create ROT examples for STM32N6

In the STM32CubeN6 firmware package, the OEMuRoT example is not provided for all boards and all MCUs. This article explains how to generate the OEMuROT example for the NUCLEO-N657X0-Q board and for boards with the STM32N6 device.

1. OEMuRoT projects creation for NUCLEO-N657X0-Q

OEMuRoT example can be generated for the NUCLEO-N657X0-Q board using the STM32N6570-DK board as a reference.

This paragraph shows how to create the OEMuRoT projects for the NUCLEO-N657X0-Q board starting from STM32N6570-DK OEMuRoT projects. In the package, only readme files are provided in Firmware/Projects/NUCLEO-N657X0-Q/Applications/ROT, so the generation of the OEMuROT_Boot and OEMuROT_Appli projects can be done by following these steps:

  1. Get the source files from the STM32N6570-DK project:
    • Copy the Firmware/Projects/STM32N6570-DK/Applications/ROT/OEMuROT_Boot content (except readme.md/.html) into the Firmware/Projects/NUCLEO-N657X0-Q/Applications/ROT/OEMuROT_Boot folder.
    • Copy the Firmware/Projects/STM32N6570-DK/Applications/ROT/OEMuROT_Appli content (except readme.md/.html) into the Firmware/Projects/NUCLEO-N657X0-Q/Applications/ROT/OEMuROT_Appli folder.
    • Copy the Firmware/Projects/STM32N6570-DK/ROT_Provisioning content (except readme.md/.html and env.bat/.sh) into Firmware/Projects/NUCLEO-N657X0-Q/ROT_Provisioning.
  2. Change the board name in the Firmware/Projects/NUCLEO-N657X0-Q/Applications/ROT project configurations (from STM32N6570-DK to NUCLEO-N657X0-Q):
    • Depending on your toolchain, open the following files and replace STM32N6570-DK with NUCLEO-N657X0-Q (using a text editor, such as Notepad++):
      • IAR (EWARM):
        • OEMuROT_Boot\EWARM\Project.ewp and Project.ewd
        • OEMuROT_Appli\EWARM\AppliSecure\Project_s.ewp and Project_s.ewd
        • OEMuROT_Appli\EWARM\AppliNonSecure\Project_ns.ewp and Project_ns.ewd
      • KEIL (MDK-ARM):
        • OEMuROT_Boot\MDK-ARM\Project.uvprojx and Project.uvoptx
        • OEMuROT_Appli\MDK-ARM\AppliSecure\Project_s.uvprojx and Project_s.uvoptx
        • OEMuROT_Appli\MDK-ARM\AppliNonSecure\Project_ns.uvprojx and Project_ns.uvoptx
      • STM32CubeIDE:
        • OEMuROT_Boot\STM32CubeIDE\.project and .cproject
        • OEMuROT_Appli\STM32CubeIDE\AppliSecure\.project and .cproject
        • OEMuROT_Appli\STM32CubeIDE\AppliNonSecure\.project and .cproject

You are now ready to follow the tutorial:

2. OEMuRoT project adaptation for STM32N64X devices

To adapt the existing STM32N657 OEMuRoT example to be compatible with devices without hardware-accelerated cryptography STM32N64X MCU, the user must:

  • Disable hardware-accelerated cryptography by commenting BL2_HW_ACCEL_ENABLE (mcuboot_config.h).
  • Disable MCE by commenting MCUBOOT_USE_MCE (flash_layout.h).