Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and find answers on STM32 microprocessors, including hardware, power, DRAM, flashing, interfacing, device tree, and peripherals.
Most recent activity
"I want to download the STM32MP2 Developer SW Package.By visiting the page on the wiki (https://www.st.com/en/embedded-software/stm32mp2dev.html#get-software) and accessing the download link below, the file that opens is not 'SOURCE' but 'SDK(en.SDK-x86_64-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06.tar.gz)'.Where can I download the SOURCE?My location is South Korea."
Hi,I try to couple LCD TFT ili9881c (mipi dsi 2 lanes interface) with stm32mp157caa3. My custom driver seems to be loading correctly. When I type lsmod I getModule Size Used by cfg80211 651264 0 usb_f_rndis 24576 2 u_ether 20480 1 usb_f_rndis libcomposite 49152 10 usb_f_rndis galcore 516096 2 panel_ilitek_ili9881c 20480 0 dwmac_stm32 16384 0 stmmac_platform 20480 1 dwmac_stm32 stm32_adc_core 20480 0 spi_stm32 24576 0 sch_fq_codel 20480 3 ip_tables 24576 0 x_tables 24576 1 ip_tables ipv6 512000 42Unfortunately, the display is not working, only the backlight is working.I checked twice the dts and looks good, driver is loading well. I can't find anything with 'drm'. What I missed? Shall I add some additional driver in the kernel or something install in the roofs?In the log, I can see only[ 0.079013] platform 5a000000.dsi: Fixing up cyclic dependency with 5a001000.display-controllerand[ 13.730531] [drm] Initialized stm 1.0.0 20170330 for 5a001000.display-controller on minor 0
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,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
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, 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
Does anyone have a memory map for the STM32H743XGH6?
After my video data is encoded by H264 hardware, the picture becomes darker. This issue doesn't occur when displayed directly. Both the ISP and the camera preview are normal. I need some help.board : stm32mp257f-evalcamera: imx335hardware encoder parameters : encodebin profile="video/x-h264|element-properties,keyframe-interval=5,rate-control=0,qp-min=20,qp-max=20"
Hello,I am currently working on a custom board based on the STM32MP1. In my research, I found that flashing firmware over JTAG is not supported for the STM32MP1 series. Instead, we need to rely on USB or UART for flashing purposes.I came across this related issue on the forum: Flashing STM32MP1 Custom Board Over JTAG.Given this, I am concerned about the security implications of using USB for flashing firmware. Specifically:What security measures can be implemented to prevent unauthorized access or flashing through USB?Is it possible to enforce authentication during the USB boot and firmware flashing process?Are there recommended techniques to encrypt the firmware or restrict access to certain boot modes?And if I use the UART for flashing, then how can I do that? Which combination of boot mode selection switch should I use? Is there any specific documentation for flashing firmware using UART?I would greatly appreciate any guidance or best practices to enhance security when using USB as
Dear Friends, can anyone help me make a CNC lathe using the STM32 NUCLEO-F411RE microcontroller?
Hi I am trying to attach gdb using openocd to debug linux kernel, I am able to attach openocd.but when I start with gdb scripts https://github.com/STMicroelectronics/wiki-stm32mp-addons/blob/main/gdb-scripts/Path_env.pyGdb is not able to get symbols, after connecting, ,I have already build kernel with debug symbols and loaded on target gdb shows this: ype "apropos word" to search for commands related to "word"...Reading symbols from //home/nik/ws/boards/5_stm32mp2/STM32MPU-Ecosystem-v6.0/Developer-Package/stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06/sources/aarch64-ostl-linux/linux-stm32mp-6.6.48-stm32mp-r1-r0/build/vmlinux...(gdb) target extended-remote :3333Remote debugging using :33330x000000000e005bfc in ?? ()(gdb) bt#0 0x000000000e005bfc in ?? ()#1 0x000000000e011000 in ?? ()Backtrace stopped: not enough registers or memory available to unwind furtherCan someone please help here or share the detailed steps to use gdb and openocd?Thanks in advance.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.