Skip to main content
Associate II
February 9, 2026
Solved

Zephyr TFM support on nucleo_u385rg_q

  • February 9, 2026
  • 4 replies
  • 426 views

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.

Best answer by Jocelyn RICARD

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

4 replies

Jocelyn RICARD
Jocelyn RICARDBest answer
ST Employee
February 10, 2026

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

Associate II
February 10, 2026

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

Associate II
February 19, 2026

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
February 26, 2026

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

Associate II
April 2, 2026

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
April 2, 2026

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

 

Associate II
April 6, 2026

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


 

Jocelyn RICARD
ST Employee
April 10, 2026

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