Get ready for the STM32 Summit 2026 | Online, November 3
Join conversations with your peers and ST experts. Explore the full potential of STM32 microprocessors for your embedded design.
Most recent activity
I'm using the Yocto-based OpenSTLinux embedded software on a STM32MP25x and I don't understand which portion of the SRAM1/2 is free to use at runtime. Aside from the first 4kBytes of the SRAM1 reserved for OTP shadow, can the rest be fully used, or is it also reserved ? Additionally, in chapter 2.4.2 of the reference manual (RM0457), it states that SRAM1/2 can be accessed through the following address ranges [0x0A04 0000, 0x0A08 0000[, [0x0E04 0000, 0x0E08 0000[, [0x2004 0000, 0x2008 0000[ and [0x3004 0000, 0x3008 0000[. Why are there four physical addresses for SRAM ? Should Cortex-A35 and Cortex-M33 use specific regions to communicate with each other ?
Hello,I created already several SD-cards images (.raw) using the `create_sdcard_from_flashlayout.sh` script, from both starter kit and Yocto build.Note: Currently working on the STM32MP256 evaluation board.We would like to have something similar with USB:1) Create a *.raw image2) Use `dd` or Raspberry Pi Imager to flash the USB memory3) Select the boot pins on the evaluation board (all-zeros for USB boot)4) Insert the USB memory5) Power-on and wait until Linux is loaded.To my surprise, this process that works fine for sdcards does not work for USB (The card does not boot). This also makes sense considering that :* The script is called `create_sdcard....` and not `create_usb`* The *.tsv are either _emmc_ or _sdcard_But why there is not _usb_ tsv or create_usb script?All the documentation found about USB is by connecting the computer and using the USB link to flash the emmc. This is fine in some environments, but not in others.How to create a bootable OpenST-Linux USB memory ?
Hello,We had to switch out an SD card for eMMC and we kept with SDMMC1. I am aware of having to burn the fuses to get eMMC to default to SDMMC1 which I did. I was able to get it to flash successfully, and now when you switch it to 010 it will boot from SDMMC1 using eMMC. It will then get an error message, Terminal ready gNOTICE: CPU: STM32MP135A Rev.Y NOTICE: Model: STMicroelectronics custom STM32CubeMX board - openstlinux-6.1-yocto-mickledore-mpu-v24.06.26 INFO: PMIC version = 0x21 INFO: Reset reason (0x35): INFO: Power-on Reset (rst_por) INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe0000 INFO: FCONF: Reading firmware configuration information for: stm32mp_io INFO: FCONF: Reading firmware configuration information for: stm32mp_fuse INFO: Using EMMC INFO: Instance 1 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.8-stm32mp1-r2.0(debug):lts-v2.8.15-dirty(567af710) NOTICE: BL2: Built : 00:51:33, Jan 26 2024 INFO: BL2: Doing platform setup
Hello,I am running a Linux image based on meta-st-stm32mp (hardknott branch).I currently have the following in my host device tree:reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; mcuram2: mcuram2@10000000 { compatible = "shared-dma-pool"; reg = <0x10000000 0x40000>; no-map; }; vdev0vring0: vdev0vring0@10040000 { compatible = "shared-dma-pool"; reg = <0x10040000 0x1000>; no-map; }; vdev0vring1: vdev0vring1@10041000 { compatible = "shared-dma-pool"; reg = <0x10041000 0x1000>; no-map; }; vdev0buffer: vdev0buffer@10042000 { compatible = "shared-dma-pool"; reg = <0x10042000 0x4000>; no-map; }; mcuram: mcuram@30000000 { compatible = "shared-dma-pool"; reg = <0x30000000 0x40000>; no-map; }; retram: retram@38000000 { compatible = "shared-dma-pool"; reg = <0x38000000 0x10000>; no-map; }; gpu_reserved: gpu@d4000000 { reg = <0xd4000000 0x4000000>; no-map; }; }; mlahb: ahb { compatible = "st,mlahb", "simple-bus"; #address-cel
I need to migrate my project from STM32MP135F-DK board to custom hardware (SoM based on STM23MP135DAF7). To build images I use Yocto Project (Scarthgap) with meta-st-stm32 layer.As a begginer in device trees and BSPs world, I would like to get some review from more experienced developers, to ensure that the path and procedure I have chosen to follow is correct.I found bring-up guide on FAQ: STM32MP1 Bring-up Is this the most detailed and up-to-date guide I can find?According to that FAQ, the modification I have to make is tailoring device trees (for TF-A, Uboot, kernel) to my custom hardware. Is there a requirement to develop custom BSP for this hardware or the BSP stays the same (STM32MP135F-DK BSP, I guess it is the meta-st-stm32 layer)?I've also found this FAQ: How to create DT adapted to your design there is also link to LAB in which creating CubeMX project for some DK boards is presented. This lab is adapted to Ecosystem 5.0, are there any examples for 6.0? Or
Regarding OpenStLinux (yocto) for stm32mp257f. Mickledore: everything works fine for our custom stm32mp257f board. Scarthgap: everything works except 3D graphics. When loading module etnaviv we get the following system hangup (optee panic): [ 13.139084] etnaviv etnaviv: bound 48280000.gpu (ops gpu_ops [etnaviv]) [ 13.186566] videodev: Linux video capture interface: v2.00 E/TC:1 0 Panic at /usr/src/debug/optee-os-stm32mp/4.0.0-stm32mp-r1/core/drivers/clk/clk-stm32mp25.c:1976 <clk_stm32_pll_init> E/TC:1 0 TEE load address @ 0x82000000 E/TC:1 0 Call stack: E/TC:1 0 0x82007ed8 ...<cut>... E/TC:1 0 0x820064b0 I/TC: Halting CPU 0 We understand it can be hard to say "this is your problem", but any information on where to look would be much appreciated! Best regards,Anton
Hello,I am struggling with improper color management for our display connected as LTDC. I prompt for drm state with cat /sys/kernel/debug/dri/0/stateI wonder why I get format=RG16 (that is true, we use RGB565 LTDC interface) and color-encoding=ITU-R BT.601 YCbCrcolor-range=YCbCr limited rangeat the same time. I expect color encoding to be RGB. Am I right ?Here is the whole output:utc:~# cat /sys/kernel/debug/dri/0/state plane[33]: plane-0crtc=crtc-0fb=38allocated by = [fbcon]refcount=2format=RG16 little-endian (0x36314752)modifier=0x0size=1024x600layers:size[0]=1024x600pitch[0]=2048offset[0]=0obj[0]:name=0refcount=3start=00010000size=1228800imported=nocrtc-pos=1024x600+0+0src-pos=1024.000000x600.000000+0.000000+0.000000rotation=1normalized-zpos=0color-encoding=ITU-R BT.601 YCbCrcolor-range=YCbCr limited rangeuser_updates=1fpsplane[36]: plane-1crtc=(null)fb=0crtc-pos=0x0+0+0src-pos=0.000000x0.000000+0.000000+0.000000rotation=1normalized-zpos=0color-
Hello,Whenever I build OpenSt-Linux with Yocto, or download the starter kit, I get several flashlayouts:In images/stm32mp2/flashlayout_st-image-weston:* extensible* fastboot* fastboot-opteemin* optee* opteeminI can make some supposition about: optee, opteemin being a simplified or lighter version of optee, etc.Is there any documentation about:* What are the purpose of each layout* What are the differences between them* Links to documentation about related technologies* ...
Hello,Excuse me, has anyone had experience accelerating the Whisper-tiny model for speech-to-text tasks using the NPU on the STM32MP257-EV1 board? From my understanding, the process involves converting the PyTorch or TensorFlow Whisper model to TensorFlow Lite format and then using the ST Edge AI tool to convert it to .nb format for acceleration.I followed the approach provided by @nyadla-sys on GitHub to obtain the whisper-tiny.en.tflite model (https://github.com/nyadla-sys/whisper.tflite/blob/main/models/generate_tflite_from_whisper.ipynb). However, when I run the following command:./stedgeai generate --target stm32mp2 --model whisper-tiny.en.tfliteI encounter the following error: ST Edge AI Core v2.0.0-20049INTERNAL ERROR: 'NoneType' object has no attribute 'rank' I am unsure why this error occurs. Could it be due to an internal input being None? I am also uncertain whether this approach is correct, or if I should separate and accelerate the encoder and decoder modules ind
Dear all, we use custom board with STM32MP1 SoC onboard. We use Yocto with OE, STM, Qt and custom layers for building target images. In our device we utilize 7-inch display connected by LVDS with RGB666 wiring. If I load bitmap image from U-boot, all colors are fine, so I suggest, display wiring is correct. But if I load the same bitmap from Linux, some colors are spoiled. For example, grey colors (like 0xA0A0A0 in RGB888) become green (attachment: grey.bmp is original bitmap, grey.jpg is a screen photo). This is not a Qt issue, as I get the same result using Plymouth splash screen or Gstreamer tool for loading bitmap files. What might be the culprit ? Any help or hint is appreciated.
Hi, is it possible to know which is the Yocto configuration (manifest release, DISTRO and MACHINE used, other configurations, etc) used to generate the Starter Package of a board?I think it could be a useful information for everyone. In fact I'm in a situation where the Starter package for STM32MP15 eco 6.0.0 does some operations that fails on an image built using Yocto (Distribution Package) at the same Ecosystem. Thanks in advance Mauro
Is it possible to store keys generated by STM32MP_KeyGen_CLI in TPM and use them by STM32MP_SigningTool_CLI directly, without extracting?
I have been trying to port touchscreen with Stm32mp157c-dk2 without success. Actually, touchscreen has 15 pins but Stm32 has 20 pins and I handled the unmatched pins on Stm in logical way. Rest of the pins match but no screen seen. Do I have to make adjustment in the SW side? Best regards,Halil
I have seen a lot of videos on YouTube where STM32N6 demonstrates incredible AI features such as multiple pose estimation, multiple object detection and multiple object classification at the same time.But I haven't seen anything similar for STM32MP257. So my question is: If I want to start with AI on embedded systems, which one of them two should I use?
I am working on getting a new board design with a STM32MP153F to boot from parallel SLC NAND flash. The flash chip is 1 GB, using the FMC interface with 16-bit I/O. What happens when writing flash via STMCubeProgrammer is the first 2160 bytes of each page are written correctly, but after that byte 2160 is repeated until the end of the page, including through the OOB part of the page. The page size is 4096 + 256 bytes.As an example, I tried programming ARM Trusted Firmware at the beginning of flash. If I read back a page from u-boot using the nand dump command, the first 2160 bytes match exactly what is in the file. The remaining 2192 bytes will contain the same byte, whatever byte #2160 was. This happens for every page written. I get the same result if I write a page from the u-boot prompt using the nand write command.For the device tree setup, I am following the STM32MP157A-EV1 as an example.from the output from "nand info", the u-boot fl
Hi,I'm working on layout routing from STM32MC257AAK(Package: VFBGA424) to LPDDR4 (32bit).I have read the "Memory layout rules" in the App-Note AN5724.For a good LPDDR4 signal timing it is usefull to do a "Line-Length-Matching" on the LPDDR4 signals, as noted in the AN5724.Addidtionally:For calculating a good "Line-Length-Matching" from MCU to the LPDDR4, I want to know the internal line length from die to ball (Package: VFBGA424).Could you please provide the internal line length from die to ball (Package: VFBGA424).Reguards
Hi Everyone I am new member of ST device, now I face problem regarding SPI communication on STM32MP157F-DK2 kit.I am using the latest zephyr RTOS version (which primarily supported STM32157C-DK2 kit).Problem:- The Master Out pin does not output the dataNote:- The CS and CLK is working normally If anyone have the Zephyr reference, I am appreciated. Best regards,Tuan Do
Hi, As I communicated previously I am currently working on upgrading our EV charging solution from OpenSTLinux Ecosystem v4 (Linux kernel 5.15) to Ecosystem v6 (Linux kernel 6.6).The following are my targeted components abd versions to upgrade: Linux Kernel: 6.6-stm32mp-r1 (v6.6.48) Trusted Firmware-A (TF-A): v2.10-stm32mp-r1 U-Boot: v2023.10-stm32mp-r1 OP-TEE: 4.0.0-stm32mp-r1 Now, I started compiling the OP-TEE (4.0.0-stm32mp-r1) and I started getting the following error: Wrong CFG_DRAM_SIZE 1024MBytes, in device-tree: 512MBytes make[2]: *** [core/arch/arm/plat-stm32mp1/link.mk:17: check_build_variables] Error 1 After doing a bit of looking around I found someone had this issue and the following patch fixed it: core/arch/arm/plat-stm32mp1/conf.mk flavor_dts_file-157F_DK2 = stm32mp157f-dk2.dts flavor_dts_file-157F_ED1 = stm32mp157f-ed1.dts flavor_dts_file-157F_EV1 = stm32mp157f-ev1.dts +flavor_dts_file-custom = stm32mp157c-cc
Hi, I have made a custom board with stm32mp135f and I have encountered some problems:1. It seems like the stm32cubemx software is not generating .dts file when generating code, and I don't know the syntax for editing the stm32mp135f-dk dts file.2. I looked at the reference tutorial: bootlin embeded-linux-labs, and tried to follow their tutorial but for stm32mp135f-dk evb board but got stuck on:"We can now generate the bl32, dtb, and fip targets with a single command line:$ make ARM_ARCH_MAJOR=7 ARCH=aarch32 PLAT=stm32mp1 AARCH32_SP=sp_min \DTB_FILE_NAME=stm32mp157a-dk1.dtb BL33=../u-boot/u-boot-nodtb.bin \BL33_CFG=../u-boot/u-boot.dtb STM32MP_SDMMC=1 fip all"I tried to change some things that it will work on for stm32mp135f-dk but i got :Makefile:1702: *** "Platform 'stm32mp1' requires BL32. Please set BL32 to point to the right file". Stop.3. When I tried to boot up with yocto linux project i got "error: i2c device not ready" in the pmic check stage because there isn't a pmic in my bo
Hello everyone...I have issue after transmitting data to usb in host CDC the main function will not executes but it will executes after 20 micro Sec i don't know which is causing my main function to stop it's execution, I am using USB host fs with touch gfx, timer. I have enabled the timer interrupt to interrupt for every 500 ms, the main while loop will executes correctly untill the usb data transmitted to device after that the timer ISR and this function static void HCD_HC_IN_IRQHandler (HCD_HandleTypeDef *hhcd, uint8_t chnum) will executes one after another continuous ( I have checked by changing the interrupt priority also)and making main while loop to stop it's execution I don't know after transmitting usb data why it is happening like this any solution please let me know, and there is no reference for this issue
Hello,I have a custom board based on STM32MP257F-EV1 but with an eMMC (4 bits) connected on SDMM1.I have modify CubeMX configuration accordingly: I have also modify the device tree to declare the eMMC on SDMMC1:&sdmmc1 { pinctrl-names = "default", "opendrain", "sleep"; pinctrl-0 = <&sdmmc1_pins_mx>; pinctrl-1 = <&sdmmc1_opendrain_pins_mx>; pinctrl-2 = <&sdmmc1_sleep_pins_mx>; status = "okay"; /* USER CODE BEGIN sdmmc1 */ non-removable; no-sd; no-sdio; st,neg-edge; bus-width = <4>; vmmc-supply = <&scmi_vdd_emmc>; vqmmc-supply = <&scmi_vddio2>; mmc-ddr-1_8v; mmc-hs200-1_8v; /* USER CODE END sdmmc1 */ }; After booting the board using the USB interface, U-Boot doesn't find the eMMC.mmc rescan: gives nothingmmc list: no answerAnd to further error. Any clues on what's happening here ?
Hello everyone,we are using the STM32MPU Ecosystem v6.0.1 - scarthgap with the provided linux kernel version 6.6.48.We encountered the problem that sometimes after setting up the can0 interface we are not able to send or receive CAN frames. Rebooting the system solves the problem, if it does not appear again when setting up the interface.We mostly encountered the problem on high traffic CAN buses. Resetting the interface with ip link set up/down doesn´t work in most cases. When the setup works we are able to send and receive data normally.
Hello. I was playing around with Debian on the STM32mp157F-DK2 and stumble on this issue/bug when I tried to debug M4 from CubeIDE and got something like this:Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : STLINK V2J38M27 (API v2) VID:PID 0483:3752 Info : Target voltage: 3.238573 Info : clock speed 4000 kHz Info : stlink_dap_op_connect(connect) Info : SWD DPIDR 0x6ba02477 Info : stlink_dap_op_connect(connect) Info : SWD DPIDR 0x6ba02477 Info : STM32MP157AACx.cm4: hardware has 6 breakpoints, 4 watchpoints Info : STM32MP157AACx.cpu0: hardware has 6 breakpoints, 4 watchpoints Info : STM32MP157AACx.cpu1: hardware has 6 breakpoints, 4 watchpoints Info : STM32MP157AACx.cm4: external reset detected Info : starting gdb server for STM32MP157AACx.cpu0 on 3334 Info : Listening on port 3334 for gdb connections Info : starting gdb server for STM32MP157AACx.cm4 on 3333 Info : Listening on port 3333 for gdb connections Info : accepting 'g
Hi,I'm using an stm32mp257f-ev1 for the first time. I configured the board to boot from emmc: I flashed it using starter package image for fastboot with opteemin image. I noticed that at openSTlinux boot-time remoteproc starts M33 core with USBPD_DRP_UCSI_CM33_NonSecure_stripped.elf.I try to figured out if it's possible to avoid firmware starting at boot-time in some way without deleting it from /lib/firmware.I tried to search if there is something to change on DT or in kernel configuration, but I don't found anything usefulHere's the board boot log concerning firmware starting:[ 11.524092] remoteproc remoteproc0: powering up m33[ 11.529609] remoteproc remoteproc0: Booting fw image USBPD_DRP_UCSI_CM33_NonSecure_stripped.elf, size 144140[ 11.539164] rproc-virtio rproc-virtio.2.auto: assigned reserved memory node vdev0buffer@812fa000[ 11.550597] rproc-virtio rproc-virtio.2.auto: registered virtio0 (type 7)[ 11.551849] remoteproc remoteproc0: remote processor m33 is now up[ 11.564734] Boo
Hello, I have a problem after cross-compiling retroarch from my PC to an STM32MP135 (ARM32), after launching my ./retroarch -v I see that it will look for a video driver named "ext" root@stm32mp1:/home/emu# ./retroarch -v [INFO] [Config]: Looking for config in: "/home/root/.config/retroarch/retroarch.cfg". [WARN] [GameMode]: GameMode cannot be enabled on this system ("dlopen failed - libgamemode.so: cannot open shared object file: No such file or directory.") https://github.com/FeralInteractive/gamemode needs to be installed. [WARN] [Config]: GameMode unsupported - disabling.. [INFO] RetroArch 1.20.0 (Git b0999db) [INFO] === Build ======================================= [INFO] CPU Model Name: ARMv7 Processor rev 5 (v7l) [INFO] Capabilities: NEON VFPV3 VFPV4 [INFO] Version: 1.20.0 [INFO] Git: b0999db [INFO] Built: Feb 11 2025 [INFO] ================================================= [ERROR] Couldn't find any video driver named "ext" [INFO] Available video drivers are: [INFO]
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.