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
Hello! I use STM32CubeIDE for STM32MP157A-DK1 board. I want to deploy the kernel directly from the development environment. To do this, I set up local and remote paths for the device tree and for the uImage file (see the screenshot). At first, I tried to update only the device tree - I changed the heartbeat LED from blue to yellow - everything works correctly, the extlinux.conf file is changed automatically. But when I tried to update not only the device tree but also the uImage file, SSH stopped working for me. In the UART console, I see the message "disagrees about version of symbol module_layout". My kernel version has been updated. The cat /proc/version command gives this result: "Linux version 5.10.10 (ubuntu@ubuntu-H410M-H) (arm-ostl-linux-gnueabi-gcc (GCC) 9.3.0, GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP PREEMPT Thu Jun 17 17: 59:33 MSK 2021". In the wiki (https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm ® _Cortex ® -A7/Modify,
Hi,I'm interested how to change CPU frequency from 650MHz to lower frequency. I looked those two links:https://wiki.st.com/stm32mpu/wiki/How_to_change_the_CPU_frequencyhttps://wiki.st.com/stm32mpu/wiki/Clock_device_tree_configuration_-_Bootloader_specificI went for PLL1 static configuration and added those lines to TF-A device tree, in RCC node pll1: st,pll@0 { compatible = "st,stm32mp1-pll"; reg = <0>; cfg = < 4 80 0 0 0 PQR(1,0,0) >; frac = < 0x800 >; };So If I'm right CPU freq should be: 24000000 / (4+1) * (80+1) = 388 800 000 = 388.8 Mhz.I changed OPP nodes in tf-a device tree and Linux device tree to:&cpu0_opp_table { opp-388000000 { opp-hz = /bits/ 64 <388000000>; opp-microvolt = <1200000>; opp-supported-hw = <0x1>; };};When I wanted to boot the board I got this:PANIC at PC : 0x2ffd7e53Exception mode=0x00000016 at: 0x0000f295What should I do to get lower CPU frequency?Best regards,Nenad
We follow this: https://wiki.st.com/stm32mpu/wiki/How_to_exchange_large_data_buffers_with_the_coprocessor_-_principle and this: https://wiki.st.com/stm32mpu/wiki/How_to_exchange_large_data_buffers_with_the_coprocessor_-_example#Linux_driversarticles for exchanging M4-A7 except for DMA : in our case we write from M4 directly into DDR without DMA transfer. Every time A7 needs new portion of data, it sends request via rpmsg and polls on eventfd for ready data from M4. It works fine for a number of runs but very soon we get old data. We have checked buffers on M4 side and correctness of poll-read on A7 side. For me it looks like coherence issue. So, my question is : how can I mark mmaped region as non-cacheable area ?PS. As far as I know linux UIO driver maps non-cached memory region, RPMSG SDB - not.
I have set up the device, 5V 3A wall PSU and connected to the USB stlink connection. Connecting to the onboard stlink I can recognize the board serial number but the programmer fails to recognize the device. What am I missing? The device works perfectly in stand alone mode. As it would not identify the device I upgraded the firmware to V2J37M26 to see if that would correct it. This was the output in the programmer if it helps. 12:26:58 : ST-LINK SN : 0669FF333536414257062332 12:26:58 : ST-LINK FW : V2J37M26 12:26:58 : Board : -- 12:26:58 : Voltage : 3.27V 12:26:58 : SWD freq : 4000 KHz 12:26:58 : Connect mode: Normal 12:26:58 : Reset mode : Hardware reset 12:26:58 : Error: Cannot identify the device
Hello everyone!I’ve tested wake up from standby mode with Wake up pins PI11 (and PI8). But it is not work I have remove all definitions about wake up pins in dts except place where it defines as wake up pins in stm32mp151.dtsi Entering in standby mode by putting ‘echo mem > /sys/power/state’. And after that MPU no wakes by I acting on pins PI11 or PI8.I do not see any WAKE UP Pins in /sys/kernel/debug/wakeup_sources, maybe I need activate it before going to standby?Do I need set MPU_BEN bit in RCC_MP_BOOTCR before going to standby mode? If yes — how?Maybe another my misunderstanding?
my board have not use pmic and i use poweroff close the board. it will reboot and tf-a report reset reason (0x814) for NRST
We boot up the odyssey Stm32mp157c board with distribution package. While booting the display is working but when i try to run qt examples it gives core dump error. Also there is no connector or encoder in the output of modetest. I could't figure out where to look. Thanks in advance.
Hi all,I am currently using VisionSoM board : STM32MP157AAB3 board.I am trying to drive an LVDS display via a RGB to LVDS converter. Here is the datasheet link for it.The panel settings are as follows : panel { u-boot,dm-pre-reloc; status = "okay"; display-timings { timing0: timing0 { clock-frequency = <72400000>; hactive = <1280>; vactive = <800>; hfront-porch = <22>; hback-porch = <150>; hsync-len = <160>; vback-porch = <32>; vfront-porch = <22>; vsync-len = <38>; hsync-active = <0>; vsync-active = <0>; de-active = <0>; pixelclk-active = <1>; }; }; };I also modified the driver : panel-simple.c file in kernel/drivers/gpu/drm/panel and added support for this custom display there.When i run qt demo for playing video on the RGB out i can see on oscilloscope that the clock signal frequency is not going beyond 66.6Mhz . Earlier I was stuck at clock generation frequency of 33.3Mhz since my ch
Hello,we try to access the I2C4-Bus under barebox, we use:CPU: STM32MP151CAA Rev.ZTF-A: v2.4-r1.0-nofip(release):b5d0088b9-dirtybarebox: barebox 2021.04.0-02204-gaa9b7b34b8e-dirtyIn the TF-A the I2C4 is unlocked by: DECPROT(STM32MP1_ETZPC_I2C4_ID, DECPROT_NS_RW, DECPROT_UNLOCK)When I start the board the TF-A initializes the PMIC successfully viaI2C4-bus.The Pinmux for I2C4 is: i2c4_pins_a: i2c4-0 { pins { pinmux = <STM32_PINMUX('H', 11, AF4)>, /* I2C4_SCL */ <STM32_PINMUX('H', 12, AF4)>; /* I2C4_SDA */ bias-disable; drive-open-drain; slew-rate = <0>; }; };the bus setup i
I've been having this problem for a while now. I open one of the trusted flashlayout (.tsv) files in STM32CubeProgrammer. I can connect to the target board over USB without issue. I click "Download" and it successfully downloads tf-a-stm32mp-serialboot and also successfully downloads u-boot-stm32mp.However, when U-Boot is executed, the target board fails to reconnect over USB. Here is the dmesg output:Eventually, STM32CubeProgrammer times out because it is unable to connect to the target to download the kernel.What could the cause for this be? I have looked at the USB configuration in the u-boot device tree many times and have followed the wiki, and it all looks correct.
Hi,I'm trying to create a debug configuration in STM32CubeIDE to debug Linux Kernel but I can't find any related article about the issue. I want to use gdb with ST-LINK (OpenOCD) as JTAG device to debug the Kernel that I have already compiled.Any suggestion?
Hello , On Page : https://wiki.st.com/stm32mpu/wiki/How_to_customize_the_Linux_kernel cd <build dir>/workspace/sources/<name of kernel recipe>/PC $> git format-patch -2Is this correct?I can find the source inside the build/tmp-glibc/work/....and not the above path.Please clarify.Best !
HiI'm designing a custom PCB with a STM32MP157F and a DP83867 PHY connected over MDIO and RGMII. The problem is, the communication between the two is completely dead. No data or clock can be measured on either the MDIO or MDC line, MDIO is constant HIGH and MDC is constant LOW, even when explicitly reading/writing data using the mii or mdio u-boot subsystem.The following code is my u-boot device tree configuration:&ethernet0 { status = "okay"; pinctrl-0 = <&ethernet0_rgmii_pins_a>; pinctrl-1 = <&ethernet0_rgmii_sleep_pins_a>; pinctrl-names = "default", "sleep"; phy-mode = "rgmii-id"; max-speed = <1000>; phy-handle = <&phy0>; mdio0 { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; phy0: ethernet-phy@0 { reg = <0>; ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>; ti,fifo-depth = <DP83867_PHYC
..
Hi ,I am trying to follow the tutorial which is here : https://www.youtube.com/watch?list=PLnMKNibPkDnFeV4sBarnsAtFTg7h6V-9_&v=XhB0rGLjl_Q&feature=youtu.beThis is one of the workshop which i am trying to recreate. At 11:50 , the commands are listed to generate the dtb file from dts file. But when i try to follow it , it is not working and unable to generate dtb file from dts file.I have OpenSTLinux dunfell 5.10.10 flashed on the STM32MPU.I also tried folllowing this tutorial but this also does not seem to work on latest version : https://wiki.st.com/stm32mpu/wiki/How_to_compile_the_device_tree_with_the_Developer_PackageAny leads will be appreciated how to achieve it as in latest SDK it is not working.
I try to use the STM32MP1 in engeneering boot mode to develop the co-processor's firmware. Unfortunately the code generation is not complete, meaning initialization for all GPIO pins (exept MCO Pins) are missing. Is it possible to activate the code generation for the GPIO pins which are used only by the M4 co-processor? Thanks an best regards
Hello i wanted to use the GPIOLib to control my pin manualy. so i added this in my device tree.&usart3 { pinctrl-names = "default", "sleep", "idle"; pinctrl-0 = <&usart3_pins_c>; pinctrl-1 = <&usart3_sleep_pins_c>; pinctrl-2 = <&usart3_idle_pins_c>; uart-has-rtscts; status = "ok"; ethernet { compatible = "st,stm32_usart_net"; local-mac-address = [ A0 B0 C0 D0 E0 F0 ]; pinctrl-names = "default"; rts-gpios = <&gpioa 11 GPIO_ACTIVE_LOW>; cts-gpios = <&gpioa 12 GPIO_ACTIVE_LOW>; };};and in my code i wanted to change the pin state like that:rtsGpio = devm_gpiod_get(&serdev->dev, "rts-gpios", GPIOD_OUT_HIGH); ssleep(1); gpiod_set_value(rtsGpio, 1);but when i look at it the pin is not changing the status. and i get this log message:gpiod_set_value: invalid GPIO (errorpointer)
I work on Win10. DFU is seen in the settings. I use the programmer to transfer the linux image to the customer MP1 board. The transfer is very instable and break on different files/positions. Very seldom the complete *.tsv image is transfered and I can start the linux system.set TOOL=C:\ST\STM32CubeIDE_1.6.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_1.6.0.202101291314\tools\bin\STM32_Programmer_CLI.exe %TOOL% -c port=USB1 -d tf-a-u-boot-kernel-initrd.tsv %TOOL% -c port=USB1 -detach pauseC:\Projekte\30088\EMOTAS>C:\ST\STM32CubeIDE_1.6.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_1.6.0.202101291314\tools\bin\STM32_Programmer_CLI.exe -c port=USB1 -detach ------------------------------------------------------------------- STM32CubeProgrammer v2.7.0-RC1 ------------------------------------------------------------------- USB speed : High Speed (480MBit/s) Manuf. ID : STMicroelectronics Pr
I've noticed when booting one of our board designs with a STM32MP157C in openstlinux-5.4-dunfell-mp1-20-11-12 with Weston Wayland under the STM32MP157-Ecosystem-v2.1.0 that multiple times when the kernel is loading I'll see the following messages output via std-out..[ 1.661544] 4000e000.serial: ttySTM0 at MMIO 0x4000e000 (irq = 45, base_baud = 6250000) is a stm32-usart [ 2.824397] printk: console [ttySTM0] enabled [ 2.830231] stm32-usart 4000f000.serial: failed to get alias id, errno -19..additionally, later on in the after the Weston Wayland Compositor initializes, I begin getting the following output...[ OK ] Started Weston Wayland Compositor (on tty7). [ 21.050754] dma dma1chan0: Request not allowe[ 21.056455] stm32-usart 4000e000.serial: rx dma pre[ 21.122445] dma dma1chan0: Request not allowe[ 21.126782] stm32-usart 4000e000.serial: rx dma pre[ 31.177662] dma dma1chan0: Request not allowe[ 31.181949] stm32-usart 4000e000.serial: rx dma pre[ 31.213137] dma dma1chan0: Request not al
Hello,I tried to apply the step by step "Modify, rebuild and reload the Linux® kernel" form wiki.st .https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Modify,_rebuild_and_reload_the_Linux%C2%AE_kernelEverything works fine from the first step of the "Getting started " until i uncoutered the error bellow.Unfortunately i am a complete beginner on these tools and don't understand whats happen.Thank you by advance for any help.@PC:~/STM32MPU_workspace/STM32MP15-Ecosystem-v2.0.0/Developer-Package/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.4.31-r0/linux-5.4.31$ make ARCH=arm multi_v7_defconfig "fragment*.config" HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o LEX scripts/kconfig/lexer.lex.c/bin/sh: 1: flex: not foundscripts/Makefile.hos
Has the RT_preempt Patch been tested with OpenSTLinux on a STM32MP1 device? Are there any instructions on how to apply it?
Hi everyone.I'm using a STM32MP151CAC and I have the following DTS:// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) /* * Copyright (C) STMicroelectronics 2018 - All Rights Reserved * Author: Alexandre Torgue <alexandre.torgue@st.com>. */ /dts-v1/; #include "stm32mp157a-dk1.dts" #include <dt-bindings/rtc/rtc-stm32.h> / { model = "NNBoard IT2"; compatible = "st,stm32mp157c-dk2", "st,stm32mp157"; aliases { serial3 = &usart2; serial4 = &usart6; }; wifi_pwrseq: wifi-pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&gpioh 4 GPIO_ACTIVE_LOW>; }; led { compatible = "gpio-leds"; blue { status = "disabled"; }; ledtxrx { label ="ledtxrx"; gpios = <&gpioh 7 GPIO_ACTIVE_HIGH>; default-state = "off"; }; ledtxrs485 { label ="ledtxrs485"; gpios = <&gpioe 11 GPIO_ACTIVE_HIGH>; default-state = "off"; }; ledrxrs485 { sta
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.