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
In the RM0506 rev. 1 file in chapter 14 (DDRPHYC), the DDR3L pins don't match the reference schematic in the examples-of-ddr-memory-routing-on-stm32mpus.zip file.In the STM32MP21XXAN_DDR3L-[No Variations]-A01_Schematic.PDF project, the DDR_A8-DDR_A31 pins have different functions.Which version is correct?RM0506STM32MP21XXAN_DDR3L-[No Variations]-A01_Schematic.PDF
Hi all,I'm trying to get a USB Gadget device working in Linux on the STM32MP257F-DK board to expose a Mass Storage device to another system. I'm trying to use CN15 for this function but I can't get the bound gadget to show up on the other side of the USB connection.I'm using a fork of github.com/STMicroelectronics/linux?branch=v6.6-stm32mp where I've modified the usb3dr node of the dk.dts file with the following things:1. 836 &usb3dr { 837 status = "okay"; 838 839 dwc3: usb@48300000 { 840 phys = <&usb2_phy2>, <&combophy PHY_TYPE_USB3>; 841 phy-names = "usb2-phy", "usb3-phy"; 842 usb-role-switch; 843 dr_mode = "peripheral"; 844 port { 845 dwc3_ep: endpoint { 846 remote-endpoint = <&typec_ep>; 847 }; 848 }; 849 }; 850 };2. 840 - phys = <&usb2_phy2>, <&combophy PHY_TYPE_USB3>; 841 - phy-names = "usb2-phy", "usb3-phy"; 842 840 usb-role-switch; 843 - dr_mode = "peripheral"; 841 + role-switch-default-mod
Hi, I'm using a STM32MPU157C with linux 6.6, uboot, OP-TEE 4.0 and TF-A 2.10 and I have a Device Tree (for linux and uboot) which declares the USB OTG node as following : &usbotg_hs { compatible = "st,stm32mp15-fsotg", "snps,dwc2"; pinctrl-names = "default"; dr_mode = "host"; pinctrl-0 = <&usbotg_hs_pins &usbotg_fs_dp_dm_pins>; vbus-supply = <&vbus_sw>; /delete-property/ wakeup-source; }; usbotg_hs_pins: usbotg-hs-0 { pins { pinmux = <STM32_PINMUX('A', 10, ANALOG)>; /* OTG_ID */ }; }; usbotg_fs_dp_dm_pins: usbotg-fs-dp-dm-0 { pins { pinmux = <STM32_PINMUX('A', 11, ANALOG)>, /* OTG_FS_DM */ <STM32_PINMUX('A', 12, ANALOG)>; /* OTG_FS_DP */ }; };I explicitly use it in FS as a Host and remove the wakeup-source declared by the stm32mpu151.dtsi.My problem is that I can see that when entering in suspend, there is a difference of ~4-5mW in power consumption depending on if the USB node is enabled or not in the device t
Hi,Greeting!I am working on the STM32MP135F-DK board and trying to interface a 4x5 matrix keypad using GPIOs.I configured the keypad as follows:Columns (C1–C5):C1 → PE1 (Pin 37)C2 → PF11 (Pin 35)C3 → PF9 (Pin 33)C4 → PD13 (Pin 31)C5 → PE6 (Pin 29)Rows (R1–R4):R1 → PA0 (Pin 40)R2 → PA5 (Pin 38)R3 → PA7 (Pin 36)R4 → PE5 (Pin 32)After modifying the device tree and flashing the updated .dtb, I observe the following issues:The display becomes glitchy.The boot logo appears corrupted.The system becomes unresponsive after boot.Recovery is only possible after reflashing the starter package using STM32CubeProgrammer.From my analysis:Manual GPIO control seems to work correctly.The matrix_keypad driver is loaded not properly.matrix_keypad 20480 0 matrix_keymap 12288 1 matrix_keypadI suspect this might be related to incorrect GPIO or pinmux configuration, possibly causing a conflict with other peripherals (e.g., display).Could you please help identify:The root cause of this issue?Whether these GPIO
I entered the lengths of the DDR traces from the ST official evaluation board into Excel, and the maximum length deviation is 3 mm. Is the trace routing on the evaluation board reasonable, and can I reuse it directly on my own board?
It's telling me (for example) there's a "Path Entry Problem":Invalid project path: Include path not found (C:\Users\xxx\Documents\xxx\USB_CDC\USB_Device\Target).The Tool Settings / MCU GCC Compiler / Include paths contains"${workspace_loc:/${ProjName}/Application/USB_Device/Target}"and in my project there is a folder Application/USB_Device/Target, it links to a folder C:\Users\xxx\Documents\xxx\USB_CDC\STM32CubeIDE\Application\USB_Device\TargetHow can I figure out where this warning is coming from?(notice - the project builds just fine, it's just a warning, but company policy is to build without warnings)
I am running into issues building for the eMMC storage target for the `stm32mp25-disco` MACHINE type.I thought that adding "emmc" to `BOOTDEVICE_LABELS` should be enough to trigger building emmc flashlayout files. Is that not the case? I haven't found clear documentation on the subject.I tried making modifications to both `local.conf` and the machine conf directly. I was able to confirm the change takes affect with `bitbake -e`. Each time I build an image it only builds the flashlayout files for `sdcard`. What am I missing?mkdir yocto cd yocto repo init -u https://github.com/STMicroelectronics/oe-manifest -b refs/tags/openstlinux-6.6-yocto-scarthgap-mpu-v25.08.27 repo sync DISTRO=openstlinux-weston MACHINE=stm32mp25-disco source layers/meta-st/scripts/envsetup.sh printf "%s\n" 'BOOTDEVICE_LABELS = "emmc"' >>conf/local.conf bitbake core-image-minimal ls -l tmp-glibc/deploy/images/stm32mp25-disco/flashlayout_core-image-minimal/optee/ FlashLayout_sdcard_stm32mp257f-dk-ca35tdcid-os
I am trying to run my QT app directly on HDMI without wayland but for some reason it doesnt work. I am using the EGLFS root@stm32mp1:~# export QT_QPA_PLATFORM=eglfsroot@stm32mp1:~# export QT_QPA_EGLFS_ALWAYS_SET_MODE=1root@stm32mp1:~# export QT_QPA_EGLFS_INTEGRATION=eglfs_kmsroot@stm32mp1:~# export QT_QPA_EGLFS_KMS_DEVICE=/dev/dri/card1root@stm32mp1:~# ./appFridGui-sh: ./appFridGui: not foundroot@stm32mp1:~# appFridGuiDetected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.If this causes problems, reconfigure your locale. See the locale(1) manualfor more information.drmModeGetResources failed (Operation not supported)[ 406.915847] appFridGui[760]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL setCannot create window: no screens availableAbortedPlease help.
I was excited to see the Rust support for the Developer Package (seen here and here)However, I am having some issues with the fact that the provided toolchain is version 1.75 rustc and cargo. Mostly the fact that this version cannot use dependencies which use Rust edition 2024.I know I can go through dependencies one by one and downgrade them to earlier versions until there are no edition 2024 dependencies, but this is pretty tedious and doesn't seem like a great solution in the long run.Is there any chance that the MP2 Dev Rust addon could be updated to a more recent version?Or if that isn't possible, is there any advice on other ways to update the provided toolchain or create a custom rust toolchain using the mp2 dev tools?Thanks!
Several links on page about CRA are broken:https://wiki.st.com/stm32mcu/wiki/Security:Q%26A_for_CRA https://wiki.st.com/stm32mcu/wiki/Security:Deep_dive_on_CRAFor this item, and in addition to solutions explained in (e), ST proposes several solutions of Secure storage.
Hi,We use the USB OTG controller in host mode with its internal FS PHY.Our DT node is the following:&i2c4 { ... pmic: stpmic@33 { compatible = "st,stpmic1"; ... regulators { compatible = "st,stpmic1-regulators"; ... pwr_sw2-supply = <&vin>; ... vbus_sw: pwr_sw2 { regulator-name = "vbus_sw"; regulator-active-discharge = <1>; }; }; };};&usbotg_hs { compatible = "st,stm32mp15-fsotg", "snps,dwc2"; pinctrl-names = "default"; pinctrl-0 = <&usbotg_hs_pins &usbotg_fs_dp_dm_pins>; dr_mode = "host"; vbus-supply = <&vbus_sw>;};&pinctrl { usbotg_hs_pins: usbotg-hs-0 { pins { pinmux = <STM32_PINMUX('A', 10, ANALOG)>; /* OTG_ID */ }; }; usbotg_fs_dp_dm_pins: usbotg-fs-dp-dm-0 { pins { pinmux = <STM32_PINMUX('A', 11, ANALOG)>, /* OTG_FS_DM */ <STM32_PINMUX('A', 12, ANALOG)>; /* OTG_FS_DP */ }; };};This configuration was perfecly working with ST linux v5.10-stm32mp-r2.1.We bumped ST linux to v6.6-stm32mp-r1 and issues appeared with
1. Qt6 Multimedia (PySide6) – 1080p Video Playback RequirementOur application requires smooth video playback using Qt Multimedia with PySide6 at resolutions up to 1080p.I understand that Qt6 supports hardware acceleration for 3D graphics through the GPU, but I was unable to find confirmation regarding hardware-accelerated video decoding specifically for QtMultimedia.Could you please confirm whether the STM32MP257 series supports:Hardware-accelerated video decoding at 1080pIntegration of QtMultimedia with the hardware video pipelineSupport through OpenSTLinux / Yocto2. Chromium Browser – GPU-Accelerated Video PlaybackWe also require GPU-accelerated HTML5 video playback (1080p) in the Chromium browser.Please confirm whether the STM32MP257 series provides:A Video Processing Unit (VPU) or dedicated hardware decoderGPU acceleration support within Chromium (ANGLE / EGL / GStreamer backend)Hardware-offloaded 1080p video decoding for browser playback3. Requirement Summary (for confirmation)We
Dear ST Support Team, I am seeking technical assistance for two critical issues I am encountering while developing on the STM32MP157F-DK2 (Kernel 5.10.61, Ecosystem v3.1). Issue 1: GLIBC Compatibility When running applications compiled on my host machine, I receive the error: /lib/libc.so.6: version 'GLIBC_2.34' not found. I am attempting to cross-compile using the correct SDK for Ecosystem v3.1, but I am struggling to locate the compatible toolchain/environment for my specific kernel version (5.10.61). Issue 2: Device Tree (.dts) Configuration I am unable to enable additional peripherals (specifically UART7). Despite updating the .dts file to set status = "okay", the peripheral remains disabled on the target board (verified via cat /sys/firmware/devicetree/base/soc/.../status). It appears the system is ignoring my device tree updates and defaulting to the internal bootloader configuration. Attachments:Screenshot showing the GLIBC error on the board.Screenshot of th
We are pleased to announce that the minor version 2.1.1 of STM32CubeIDE is available. What is new in 2.1.1: This release covers the topics listed below: SEGGER J-Link GDB server updated to 9.24 to fix an issue with the Live Expression view during the debug session Cmake updated to 3.30.8 to support "QUOTE" expression Main fixed issues in 2.1.1: Refer to the STM32 microcontroller wiki at: https://wiki.st.com/stm32mcu/wiki/STM32CubeIDE:STM32CubeIDE_errata_2.1.x Known problems and limitations in 2.1.1: Refer to the STM32 microcontroller wiki at: https://wiki.st.com/stm32mcu/wiki/STM32CubeIDE:STM32CubeIDE_errata_2.1.x How to get STM32CubeIDE 2.1.1: Under this link Or update your current installation of STM32CubeIDE using: Help > Check for updates (The in-tool update does not allow updating the drivers and STLINK server tool. Full installation is required for this to be done).
Following the guide for the Developer Package, it describes creating a helper script for your custom board. Thhat works great and helps get you going. So, I generated a STM32CubeMX project and built it. Device Tree files are generated accordingly. STM32CubeMX gives them names of the format <device>-<stm32cubemx proj name>-mx. These names cannot be changed as the dts files include each other.The helper script lets you set names for all these files e.g.# Name of devicetree to use # Optee dt name optee_dt_name=$your_board_name optee_dt_programmer_name=$your_board_name # U-boot dt name uboot_defconfig=${your_soc_name}_defconfig uboot_dt_name=$your_board_name uboot_programmer_dt_name=$your_board_name # TF-A dt name tfa_dt_name=$your_board_name tfa_dt_programmer_name=$your_board_name # Linux kernel dt name # linux linux_dtb_name=$your_board_nameBy default, these do not match the names generated by stm32cubemx. Even if I change the entries to mat
Hi STM32Community,i am currently trying to build openSTLinux using the STM32CubeMX (6.17.0) generated device tree files with the yocto build process.For this I am using the STM32MPU Distribution Package. (stm32mp-openstlinux-6.6-yocto-scarthgap-mpu-v26.02.18)I set up the Distribution Package according your Wiki Installing_the_OpenSTLinux_distribution and I have set up the STM32CubeMX Project according How_to_create_your_own_machine :I created the STM32CubeMX project directory "mx" /layers/meta-st/meta-st-stm32mp-addons and generated the project filesI created a new machine config file under /layers/meta-st/meta-st-stm32mp-addons/conf/machine, using the example stm32mp25-mx.conf as a template.I created the symlink for the EULAI modified the cubemx class accordingly under <STM32MP BSP layer addons>/classes/cubemx-stm32mp.bbclass and started the build process withsource layers/meta-st/scripts/envsetup.shbitbake st-image-core The buildprocess runs fine until it t
Following the tutorial here, when I get to the step "To generate binary to flashing via Cortex-A", the helper script fails to build when given the 'programmer' argument. The problem appears to be incorrect configuration of the path to a device tree file. All other steps in the tutorial build correctly using the device tree files given, just not the programmer step fails.The output is shown below. In it you can see the following paths are supplied:EXTDT_DIR=/home/ashley/STM32MPU-Ecosystem-v6.2.0/Developer-Package/stm32mp2-openstlinux-26.02.18/sources/STM32MP215DK-AshMX EXTDT_DIR_OPTEE=CA35/DeviceTree/STM32MP215DK-AshMX/optee-osThe correct path to the dts file is ${EXT_DIR}/${EXTDIR_DIR_OPTEE}, but the path actually searched for the dts file is (refer line 58 in the log below):/home/ashley/STM32MPU-Ecosystem-v6.2.0/Developer-Package/stm32mp2-openstlinux-26.02.18/sources/STM32MP215DK-AshMX/stm32mp2/a35-td/optee/Full log is:sdk_compilation-stm32mp2-mx-my-custom-board
We have a custom stm32mp25 board. On Mickledore we were able to create a/b partitions in our machine conf doing the following: PARTITIONS_IMAGES += "tc-appfs-a tc-appfs-b" STM32MP_TCFS_IMAGE ?= "ti-tc-appfs" STM32MP_TCFS_LABEL_A ?= "tc-appfs-a" STM32MP_TCFS_LABEL_B ?= "tc-appfs-b" STM32MP_TCFS_MOUNTPOINT ?= "/tc-apps" # Proposed value for tc-appfs is 150MB STM32MP_TCFS_SIZE ?= "153600" PARTITIONS_IMAGES[tc-appfs-a] ?= "${STM32MP_TCFS_IMAGE},${STM32MP_TCFS_LABEL_A},${STM32MP_TCFS_MOUNTPOINT},${STM32MP_TCFS_SIZE},FileSystem" PARTITIONS_IMAGES[tc-appfs-b] ?= "${STM32MP_TCFS_IMAGE},${STM32MP_TCFS_LABEL_B},${STM32MP_TCFS_MOUNTPOINT},${STM32MP_TCFS_SIZE},FileSystem" PARTITIONS_LIST += "tc-appfs-a tc-appfs-b" However, in scarthgap this no longer works. We are getting the following error:Cannot generate FlashLayout_emmc_stm32mp257f-m670-optee.tsv file: the ti-tc-appfs-ti-linux-stm32mp25-m670.tc-appfs-a.ext4 binary for tc-appfs-a partition is missing in deplo
Hi everyone,I have recently upgraded from openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11 to openstlinux-6.6-yocto-scarthgap-mpu-v26.02.18 of the meta-st-stm32mp layer.I am using a custom board based on a STM32MP157 MPU.With the previous revision, my board booted fine but since I updated to the new version it is stuck during boot. Here are the boot logs I got after enabling the early console:Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 6.6.116 (oe-user@oe-host) (arm-oe-linux-gnueabi-gcc (GCC) 13.4.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT Sun Nov 2 13:14:42 UTC 2025 [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt: Machine model: Eaton Machine [ 0.000000] earlycon: stm32 at MMIO 0x40011000 (options '115200n8') [ 0.00000
I get this issue. I don't know why the GPU and CPU is considered deferred by op-tee.I think this is a configuration issue, but I don't know what need to be done. I have tried stm32mp257f-dk device treee and it still gives the same error. Notice that I'm not using LSE.So any suggestion? Enable something in RIF?D/TC:0 0 dt_stm32_gpio_bank:1176 Bank name gpio@442b0000 D/TC:0 0 firewall_dt_controller_register:289 Registering gpio-bank-H firewall controller D/TC:0 0 dt_stm32_gpio_bank:1176 Bank name gpio@442c0000 D/TC:0 0 firewall_dt_controller_register:289 Registering gpio-bank-I firewall controller D/TC:0 0 probe_driver_node:550 element: stm32_gpio-pinctrl on node pinctrl@44240000 initialized F/TC:0 0 probe_driver_node:543 Probing stm32-rtc on node rtc@46000000 D/TC:0 0 probe_driver_node:556 element: stm32-rtc on node rtc@46000000 deferred 2 time(s) F/TC:0 0 probe_driver_node:543 Probing stm32_gpio-pinctrl on node pinctrl-z@46200000 D/TC:0 0 dt_stm32_gpio_bank:1176 Bank name gpio@46200000
Platform:SoC: STM32MP257Sensor: GC05A2 (5MP)Interface: CSI-2 Issue:I'm working on camera integration with GC05A2 on STM32MP257. The raw image quality is acceptable, but after enabling AWB and CCM in the ISP pipeline, the output image shows severe noise (both luminance and color noise), especially in low-light conditions (<300 Lux) or shadow areas.Questions:Where is the noise reduction? Does STM32MP257 ISP have built-in hardware noise reduction (2D/3D NR)? If yes, how do I enable and control it through V4L2 or the driver?
Hello everyone,I have a custom board based on STM32MP157A (rev. Z) and I am trying to boot from emmc; I am able to boot sucessfully from SD card; I flashed the same image to the emmc with the ST MX Cube Programmer and, if get into u-boot from SD card, I am able to inspect the partitions and information of the emmc (see below), but whenever I set the boot pins to 010 I get no messages on the serial UART, while the emmc seems to be powered. STM32MP> mmc list STM32 SD/MMC: 0 (SD) STM32 SD/MMC: 1 (eMMC) STM32MP> mmc info Device: STM32 SD/MMC Manufacturer ID: 2 OEM: 544d Name: SA04G Bus Speed: 50000000 Mode: SD High Speed (50MHz) Rd Block Len: 512 SD version 3.0 High Capacity: Yes Capacity: 3.6 GiB Bus Width: 4-bit Erase Group Size: 512 Bytes STM32MP> mmc dev 1 switch to partitions #0, OK mmc1(part 0) is current device STM32MP> mmc info Device: STM32 SD/MMC Manufacturer ID: 45 OEM: 100 Name: DG400 Bus Speed: 52000000 Mode: MMC High Speed (52MHz) Rd Block Len: 512 MMC version 5.1
STM32MP151 is a PTP slave clock, and the master clock is correctly determined and configured. In the same network, multicast, E2E, and one-step configuration modes are used. Run ptp4l,Output prompt: "Received SYNC without timestamp". the actual SYNC message of the main clock has a hardware timestamp.Other relevant information can be found in the info1. log file.STM32MP151 is the PTP slave clock IP: 192.168.1.251, the PTP master clock IP: 192.168.1.3, Captured data packet shows that the master clock has a timestamp, and the slave clock DELAY_REQ has no timestamp.翻译搜索复制
I'd like to move from mickledore to the current ST offering on scarthgap. We are using the STM32MP157D.We require a web browser, and WebKit worked well for us on mickledore using QT5.Since QT has been spun out to a plug-in and it is unclear how well-supported it is (ST's documentation seems lagging), I decided to go with Weston/Wayland and use a simple GTK/GDK app.Westion is working - the GPU `/usr/local/demo/bin/weston-st-egl-cube-tex` runs nicely. Simple apps using GDK are also working.Sadly, though, the app embedding a WebKit view has a hard-to-describe random flickering issue. It renders the page but then randomly overlays a white screen that occasionally flashes on and off. Anyone able to offer some experience:- Has anyone got a lightweight browser working on the STM32MP1 using the GPU and the recent ST scarthgap releases?- Or got QT6 working on STM32MP1. Did you use the ST's "QT plug-in"?- Any advice for configuring webkitgtk3 (found in meta-oe)? 
I am trying to follow getting started document for X-LINUX-GNSS1At Step 4.Add a layer (recipes-gnss1).of section 5.2.1 I am getting below error. ERROR: Layer meta-gnss1 is not compatible with the core layer which only supports these series: scarthgap (layer is compatible with mickledore)
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.