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 stm32mp157, I need two partitions for FSBL, and it is working correctly, but I want to make TFA redundant meaning I should be able to update the second partition of FSBL and then shift it on the second partition on restart.I have made roofs redundant, but then I used environment variables inside U-BOOT to switch partitions. TFA (BL2) runs instantly after the ROM code, and I cannot change that.Is there any solution that I can do here? What is the purpose of having two FSBL partitions if it is not for redundant TFA?
I am having trouble how to setup the Linux system on the STM32MP1 so that I can use sftp to upload data gathered by the device to an external server.What happens is that once the connection is established it immediately closes again, so there is no time between lines 13 and 14 in the console text below:root@stm32mp1:~# sftp user@server.com /usr/bin/ssh: Ignoring unknown configuration option 'ForwardX11 no' /usr/bin/ssh: Ignoring unknown configuration option 'PermitLocalCommand no' /usr/bin/ssh: Ignoring unknown configuration option 'ClearAllForwardings yes' /usr/bin/ssh: Ignoring unknown configuration option 'ForwardAgent no' WARNING: Ignoring unknown option -- Host 'server.com' is not in the trusted hosts file. (ssh-ed25519 fingerprint sha1!! .........) Do you want to continue connecting? (y/n) y user@server.com's password: Connected to server.com. sftp> root@stm32mp1:~#This does not happen when I try to reach the sftp server from another linux system with the same comman
..
I found the pin of PG8 on the GPIO pin map on the board. So I connected to PG8 and GND to connect with oscilloscope.In the picture, the blue line is the oscilloscope's GND port.I connected the board and the oscilloscope like the picture above. And I entered the command to output the PPS signal, but the waveform is not displayed.I looked up various answers and followed the answers such as PTP activation command and adding PG8 to AF11.What am I doing wrong?For your information, I used the following image when I uploaded the image.en.FLASH-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23\stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23\images\stm32mp1\flashlayout_st-image-weston\optee FlashLayout_emmc_stm32mp157d-ev1-optee.tsv
The Linux Kernel maintainers have just updated the longterm release kernels: https://www.kernel.org/category/releases.htmlCould someone from ST please give an information about which kernel version for STM32MP1 will be supported in the future until 2026? Will ST stay on v5.15 or go to v6.1?
Our product has a STM23MP151D, no security features (signed stuff or fuses blown) and the same QSPI NOR as the EV1 board.We have run the microcontroller style DDR tester (STM32DDRFW-UTIL) which took a bit of bashing to run on the 151 but did show our memory (interface) is good..But I cannot for the life of me get TF-A to load (along with U-Boot) via USB from the STCubeProgrammer. TF-A goes in and outputs stuff on the console but it's as if though the ROM knows how to drive the USB and get this far, TF-A does not on this device.I have had to stop TF-A concerning itself with the monotonic counter and bsec_probe(). Things I think this device does not have.What I would really like is confirmation that some version (which ?) of https://github.com/STMicroelectronics/arm-trusted-firmware.git works on the 151 and did you have to do anything to it ? Ideally its IOC and DTS files and anything else.The problem is that there does not appear to be a single dev board or reference design with the 151
Is possible to install ppp tools to connect internet using a GPRS modem ?We need pppd/chat and kernel support to get network interface, but I can't found them on OpenStLinux resources.
I am using DP83848 PHY RMII interface and 50MHz external oscillator and PA1 as ETH_RMII_REF_CLCK pin. I ignored 125MHz input pin.But when active ethernet, I see a problem similar to Stm32mp157 Ethernet problem, saying that there is no input clock.I check my pin and 50MHZ clock on scope, it is fine. When I read datasheet, the clock has to be 25MHz or 125MHz? and has to connect to 125MHz input clock pin?
Hello,Here's the context of my issue.I'm using buildroot 2022.11 to build a rootfs for a custom stm32mp157 board using a LCD display;the Linux kernel is 5.10.116 (https://github.com/STMicroelectronics/linux/tree/v5.10-stm32mp);the GUI app is built using the Qt5.15 QML framework.After the buildroot team upgraded the gcnano binaries package to v6.4.7 I'm facing flickering issues with the display. To figure out if the gcnano binaries are the root cause, I manually downgraded the gcnano to v6.4.3 in which the flickering issue is not present.I can confirm that the same rootfs/kernel with the gcnano binaries 6.4.3 has no flickering issue.Find attached to this post two videos :one showing that everything works fine with gcnano 6.4.3;one showing the flickering issue with gcnano 6.4.7.The display is mandatory for our product and we can not accept flickering issues like this one.How can we fix this issue ?Let me know if you need more traces or tests.Best RegardsAlexandre Gambier
Hello , This question belongs more to IAR community but still asking it .I was checking this project of OpenAMP : STM32Cube\Repository\STM32Cube_FW_MP1_V1.6.0\Projects\STM32MP157C-DK2\Applications\OpenAMP\OpenAMP_TTY_echo\STM32CubeIDE\CM4\DebugIt has the elf generated using the STM32CubeIDE project but using IAR or Keil how can we generate the elf file?Also is it possible to debug/run it using IAR on windows?(using STM32Cube Ide there is already a way : https://www.youtube.com/watch?v=YIhzzgJmop0 but I want to do it using IAR.Regards,Pv
Hi,I am experiencing a loss of about 2 seconds on the hwclock every time I reboot. Regardless of how long the system has been powered off, it is consistently the same amount of time lost. I have come across the following posts which seem to point to the issue being in the initialization of the LSE oscillator during startup. STM32 RTC loses one second after each resetStm32L452 RTC Clock Drift with use---related to entering/exiting shutdown mode?My question is, since the RCC initialization is handled by the A7 core, where do I prevent the LSE from re-initializing on each boot? Below is a snippet from my device tree//tfa device tree clk_lse: clk-lse { st,drive = < LSEDRV_MEDIUM_HIGH >; /* USER CODE BEGIN clk_lse */ #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <32768>; /* USER CODE END clk_lse */ };Any suggestions would be appreciated.
Hello, Using the stock image I've found I can manipulate the red LED on PA13 by using gpio commands:gpioset gpiochip0 13=0 gpioset gpiochip0 13=1I need to access Pin 38 and Pin 40 on the 40 pin header, which are PI6 and PF11.These are both tied to the SAI2 device. I removed the device, and the modules and set these pins as outputs and they are unused:# gpioinfo |grep PI6 line 6: "PI6" unused output active-high # gpioinfo |grep PF11 line 11: "PF11" unused output active-highManipulation of these is done the same way:root@stm32mp1:~# gpioset gpiochip5 11=0 root@stm32mp1:~# gpioset gpiochip5 11=1 root@stm32mp1:~# gpioset gpiochip8 6=0 root@stm32mp1:~# gpioset gpiochip8 6=1 However, Neither of these pins go "high" and they are always "low". And since they are set to active-high, like PA13, I would expect them to be "on" at boot. Am I doing something wrong, or do I have a misunderstanding of how this works?
Hi, we would like to change from 24MHz to 8MHz which is available in our stock, I see in device tree, file stm32mp151.dtsiclocks { clk_hse: clk-hse { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <24000000>; }; .....I changed clock-frequency = <8000000>;Is that enough or I do have to set some other config? If there is some other places need to change, could you tell me which ones should be, please?
I am trying to use the 40 pin GPIO, namely pin 48 and pin 40 which are PF11 and PI6. PI6 is assigned to sai2. I've disabled sai2. However, the DTB will not compile because there is still a reference to the sai2 pins here:sound:sound{ compatible = "audio-graph-card"; label = "STM32MP15-DK"; routing = "Playback", "MCLK", "Capture", "MCLK", "MICL", "Mic Bias"; dais = <&sai2a_port &sai2b_port &i2s2_port>; status = "okay"; };I've tried removing I2S2, which in turn removes SPI2. But the section still exists.What do I need to do to have this section not generated from CubeMX?
Hello, I bought STM32MP157D-DK1 design kit. But I would like to buy the display board from ST. is it possible?Because I only saw that if you buy the STM32MP157F version.Many thanks,Mauricio
We modified the device tree file corresponding to our development board based on stm32mp157d-ev1.dts.We did not use a PMIC chip, so we added our own power node and modified the default serial port output.This is my device tree file:The following errors will occur during the burning process:
We want to change default uart from UART4 to UART8,from:aliases { ethernet0 = &ethernet0; serial0 = &uart4; .... };we changedserial0 = &uart8;and implement uart8 as below:&uart8 { pinctrl-names = "default", "sleep", "idle"; pinctrl-0 = <&uart8_pins_a>; pinctrl-1 = <&uart8_sleep_pins_a>; pinctrl-2 = <&uart8_idle_pins_a>; status = "okay";};uart8_pins_a: uart8-0 { pins1 { pinmux = <STM32_PINMUX('E', 1, AF8)>; /* UART8_TX */ bias-disable; drive-push-pull; slew-rate = <0>; }; pins2 { pinmux = <STM32_PINMUX('E', 0, AF8)>; /* UART8_RX */ bias-disable; }; }; uart8_idle_pins_a: uart8-1 { pins1 { pinmux = <STM32_PINMUX('E', 1, ANALOG)>; /* UART8_TX */ }; pins2 { pinmux = <STM32_PINMUX('E', 0, AF8)>; /* UART8_RX */ bias-disable; }; }; uart8_sleep_pins_a: uart8-2 { pins { pinmux = <STM32_PINMUX('E', 1, ANALOG)>, /* UART8_TX */ <STM32_PINMUX('E', 0, ANALOG)>; /* UART8_RX */ };
I've been trying for hours to read an analog value from a pin and write it over UART with no success on my STM32MP1. I've assigned PF14 to ADC2_INN2 and set IN2 to "IN2 Differential", then I generate the code and when I try to build I get a bunch of errors with regards to HAL functions. I have "#define HAL_ADC_MODULE_ENABLED" in my stm32mp1xx_hal_conf.h, which I thought would be what I needed.
when I Build kernel images (uImage and vmlinux) and device tree (dtbs)$> make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040 O="$PWD/../build"Got the following error WRAP arch/arm/include/generated/asm/simd.h UPD include/config/kernel.release UPD include/generated/uapi/linux/version.h UPD include/generated/utsrelease.h SYSNR arch/arm/include/generated/asm/unistd-nr.h GEN arch/arm/include/generated/asm/mach-types.h SYSTBL arch/arm/include/generated/calls-oabi.S SYSTBL arch/arm/include/generated/calls-eabi.S CC scripts/mod/empty.occ1: error: cannot load plugin ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so ./scripts/gcc-plugins/arm_ssp_per_task_plugin.so: undefined symbol: _ZN8opt_pass14set_pass_paramEjb/home/fenggq/linux/stm32MP1/developer_package/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm
Hi @OlivierK ,I am using openstlinux ecosystem release v3.1.1 and trying to use secure boot feature with yocto and as per https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/TF-A_overview we need to set "TRUSTED_BOARD_BOOT=1".We need use "TF_A_SIGN_ENABLE=1" to use "TRUSTED_BOARD_BOOT=1" in meta-st-stm32mp.https://github.com/STMicroelectronics/meta-st-stm32mp/blob/dunfell-3.0.x/recipes-bsp/trusted-firmware-a/tf-a-stm32mp-common.inc#L84. https://github.com/STMicroelectronics/meta-st-stm32mp/blob/dunfell-3.0.x/conf/machine/include/st-machine-common-stm32mp.inc#L524.If TF_A_SIGN_ENABLE=1 then FIP_SIGN_ENABLE will get set as per ecosystem release v3.1.1 and which force to set FIP_SIGN_KEY_EXTERNAL FIP_SIGN_KEY FIP_SIGN_KEY_PASS and TF_A_SIGN_ENABLE as per https://wiki.st.com/stm32mpu/wiki/How_to_perform_Secure_Boot_from_Distribution_package.I do not want set FIP_SIGN_KEY_EXTERNAL FIP_SIGN_KEY FIP_SIGN_KEY_PASS at the time of build and want set after build seperatly with "cert_create". For
On an STM32MP157C the IWDG is setup correctly, but when I trigger an endless loop in U-Boot or a panic in the Kernel, after the timeout the reset does not work. All I know is that the debugger shows a Vector catch. In OPTEE OS the reset works. Is this due to the fact, that OPTEE OS is in trusted world and U-Boot isn't?
hi st expertI am porting openstlinux for my robot board, I found that the system froze after uboot selected the extlinux file, and then rebooted after a while,the uart log :Do I have any debugging means to analyze where the current problem is? thanks advance!my extlinux.conf context:
I followed the instructions here with a STM32MP157F-DK2 board till before step 8, with a serial console to the board set up. However, instead of booting into "root" as described, from the console output my board enters "emergency mode", and the last outputs are related to "EXT4-fs error".I then tried the guide here, generated the image specified by the "FlashLayout_sdcard_stm32mp157f-dk2-trusted.tsv" (I changed that "c" to "f" myself) provided in the starter package and loaded the image into the SD card from my laptop to the SD card. The board still failed to boot from the SD card with the same outputs.I will put the last error prints here and attach the full output since reset:[ 14.704163] EXT4-fs error: 2 callbacks suppressed [ 14.724165] EXT4-fs error (device mmcblk0p10): ext4_readdir:258: inode #6601: block 86816: comm systemd-sysctl: path /usr/lib/sysctl.d: bad entry in directory: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, size=4096 fake=0 [ OK ] Created slice
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.