cancel
Showing results for 
Search instead for 
Did you mean: 

Zephyr TFM support on nucleo_u385rg_q

murali.karicheri
Associate III

Dear community,

I am looking for help to have TFM ported for nucleo_u385rg_q so that I can build the tfm secure and non secure images and do a secure boot on this board. The closest board is b_u585i_iot02a which is a stm32u5 variant. But there are many low level code required for this in trusted-firmware-m repo. Is there a work done by someone that I can use for my work? Any pointers as to how to accomplish this. Thanks in advance for your support.

1 ACCEPTED SOLUTION

Accepted Solutions
Jocelyn RICARD
ST Employee

Hello @murali.karicheri ,

A new TFM porting for STM32U3 is planned for end of first quarter. I suppose it is worth waiting for it.

Best regards

Jocelyn

View solution in original post

8 REPLIES 8
Jocelyn RICARD
ST Employee

Hello @murali.karicheri ,

A new TFM porting for STM32U3 is planned for end of first quarter. I suppose it is worth waiting for it.

Best regards

Jocelyn

Hi Jocelyn,

Thanks for your quick response!

Is there a chance for me to connect with the developer involved in this work? I can offer to test it on Nucleo u385 board and appreciate if I can have an early peak on the work.

Murali

murali.karicheri
Associate III

Hi Jocelyn,

Just want to be in sync. I assume end of first quarter means end of March. 2026. right? We are fine with that timeline. Also I am willing to help in the work by offering testing/review support when the work is under review in Zephyr. Is there a way you can connect me with relevant developers?  We at S&C had actually added support for Nucleo 755 in upstream Zephyr and love to help you in this effort.

Regards,

 

Murali

Jocelyn RICARD
ST Employee

Hi @murali.karicheri ,

Yes, end of march is the target. Thank you for your offer. Developers are already full time in the process of executing their test plan with many different configurations.

Best regards

Jocelyn

Hi Jocelyn,

It is April and wondering if the code for TFM support on nucleo_u385rg_q  is available for us to consume. Please provide me the details so that I can get started on this.

Thanks and regards,

Murali

Jocelyn RICARD
ST Employee

Hello @murali.karicheri ,

yes it is available in trustedfirmware.org

The target is the new STM32U3C5 with 2Mbytes flash.

For STM32U385 you will need to adapt the layout.

Best regards 

Jocelyn

 

Jocelyn,

Thanks for your response. I have pulled the latest zephyr main and tried to build with TFM and it failed as there is no support. When would be the zephyr port for TFM available in upstream?

Also it is surprising to me that it is a different SoC/board is supported than my original query about nucleo_u385rg_q. I know it is a variant of STM32U385 but flash layout is important for TFM since additional storage is needed for this. One of the challenge was to adapt TFM to a lower flash device since it requires additional partitions and 1MB is too tight. Do you have any other device with 1MB that supports or recommendations on what layout I should be able to use for STM32U385? It appears STM32U3C5 is pin compatible with STM32U385. Is it correct?

(.venv) sandc@US-PC-20887:~/proj/zephyrproject/zephyr (main)$ west build -p -b nucleo_u3c5zi_q/stm32u3c5xx/ns ../zephyr/samples/tfm_integration/tfm_ipc
-- west build: making build dir /home/sandc/proj/zephyrproject/zephyr/build pristine
-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: /home/sandc/proj/zephyrproject/zephyr/samples/tfm_integration/tfm_ipc
-- CMake version: 3.31.7
-- Found Python3: /home/sandc/zephyrproject/.venv/bin/python (found suitable version "3.12.3", minimum required is "3.12") found components: Interpreter
-- Cache files will be written to: /home/sandc/.cache/zephyr
-- Zephyr version: 4.4.0-rc2 (/home/sandc/proj/zephyrproject/zephyr)
-- Found west (found suitable version "1.5.0", minimum required is "0.14.0")
CMake Error at /home/sandc/proj/zephyrproject/zephyr/cmake/modules/boards.cmake:281 (message):
  Board qualifiers `stm32u3c5xx/ns` for board `nucleo_u3c5zi_q` not found.
  Please specify a valid board target.

  Valid board targets for nucleo_u3c5zi_q are:

  nucleo_u3c5zi_q/stm32u3c5xx

Call Stack (most recent call first):
  /home/sandc/proj/zephyrproject/zephyr/cmake/modules/zephyr_default.cmake:129 (include)
  /home/sandc/proj/zephyrproject/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
  /home/sandc/proj/zephyrproject/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
  CMakeLists.txt:5 (find_package)


-- Configuring incomplete, errors occurred!
FATAL ERROR: command exited with status 1: /usr/local/bin/cmake -DWEST_PYTHON=/home/sandc/zephyrproject/.venv/bin/python -B/home/sandc/proj/zephyrproject/zephyr/build -GNinja -DBOARD=nucleo_u3c5zi_q/stm32u3c5xx/ns -S/home/sandc/proj/zephyrproject/zephyr/samples/tfm_integration/tfm_ipc

 Also found no ns_ variant of the dts under the board folder as in b_u585i_iot02a

:~/proj/zephyrproject/zephyr (main)$ ls boards/st/nucleo_u3c5zi_q
Kconfig.nucleo_u3c5zi_q  arduino_r3_connector.dtsi  board.cmake  board.yml  doc  nucleo_u3c5zi_q.dts  nucleo_u3c5zi_q.yaml  nucleo_u3c5zi_q_defconfig
sandc@US-PC-20887:~/proj/zephyrproject/zephyr (main)$ ls boards/st/b_u585i_iot02a
Kconfig.b_u585i_iot02a  arduino_r3_connector.dtsi   b_u585i_iot02a.dts   b_u585i_iot02a_defconfig           b_u585i_iot02a_stm32u585xx_ns.yaml       board.cmake  doc
Kconfig.defconfig       b_u585i_iot02a-common.dtsi  b_u585i_iot02a.yaml  b_u585i_iot02a_stm32u585xx_ns.dts  b_u585i_iot02a_stm32u585xx_ns_defconfig  board.yml    support


 

Hello @murali.karicheri ,

I’m sorry, I was not precise enough in my feedback about availability. Reason is that I couldn’t disclose in advance the new STM32U3 2MB which was not public yet.

Regarding zephyr link to TF-M on STM32U3 this should come by end of this month.

Regarding flash size, yes 1MB may be tight depending on the application size. This is why the 2M version was used.

Regarding pin compatibility you can use STM32CubeMX and data sheet to double check with your setup.

Best regards 

Jocelyn