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
Hi there, I'm developing on a STM32MP157 custom board. I'm trying to work with power modes, and I tried to import the OpenAMP_TTY_echo_wakeup example inside our M4 firmware. I already had the IPCC module set up and I use virtUart periperal without any problem. I can send the "*stop" message and I can see that the M4 stops working (and also consumes less), however if I try to send "echo "wakeup" >/dev/ttyRPMSG0" the M4 won't wakeup (the last trace says [00033.410][INFO ]Going into CStop mode ). Is there anything that may be set in the devicetree that i'm not setting? I have a wakeup button to exit from A7 Cstop that works fine. Thanks so much EDIT: probably the clocks (specially M4 side) are not the same. Is there any configuration preferable?
Greetings,in the video STM32MP1 workshop - 9 OpenSTLinux BSP pin Muxing - STM32CubeMX lab after modifying the DK2_TIMER_A7 project in the mx cube directly open the project in workbench from generate code, open the file.On my pc this doesn't happen, this file opens:<?xml version="1.0" encoding="UTF-8"?><workspace> <project> <path>$WS_DIR$\DK2_TIMER_A7.ewp</path> </project> <batchBuild /></workspace>And if I try to open the project directly from workbench I can't open it.When I open workbench it tries to install GCC GNU COMPILER but failsI attach some screenshots
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
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, 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 */ };
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
Hello We are implementing WWDG watchdog in our custom board to cortex-M4 core in cubeIDE tool. We initialise the following registers -> enable the clock to WWDG -> In control register enable the Watchdog enable bit and watchdog counter. -> In configuration register enabled Early wakeup interrupt and timer base , window value. while updating the watchdog counter before reaching window value, code is working fine. While not updating watchdog counter , After some time we are getting Early wakeup interrupt read in status register. In this case code has not restarted. May be what is the issue ? Is this followed sequence ok/Not ?. Help me in this regards.regardssrikanth
When I design the FPGA interface, I need the detail timing para. when M4 in memory map mod. Where can I get the docu? thank you
The board is set up as follows, and USB of ST-Link V2-1 is connected to Host PC. when using Linux host pc , /dev/ATM* devices not recognized.So I used a Windows PC, but it is not recognized either.Do I need to install a special driver to recognize the Uart serial?Or is there a problem with the Jumper setting?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.