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 all,We are currently trying to add a QSPI device to the STM32MP135F-DK board. Using STM32CubeMX, we selected PB2, PF8, PF9, and PF10 as the QSPI pins and generated the Device Tree accordingly. We then built the image using openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.However, the QSPI initialization failed, and we encountered the following messages during boot:[ 0.623919] stm32mp135-pinctrl soc:pinctrl@50002000: Can't access gpio 88[ 0.623944] stm32mp135-pinctrl soc:pinctrl@50002000: request() failed for pin 88[ 0.623953] stm32mp135-pinctrl soc:pinctrl@50002000: pin-88 (58003000.spi) status -13[ 0.623964] stm32mp135-pinctrl soc:pinctrl@50002000: could not request pin 88 (PF8) from group PF8 on device soc:pinctrl@50002000[ 0.623974] stm32-qspi 58003000.spi: Error applying setting, reverse things backAdditional information: We are using SD boot. To address the absence of PWR_WKUP caused by the reassignment of PF8, we replaced it with PI3.
Is it possible to use an STM32MP257F-EV1 miniPCIe with an external low-speed graphics card? I want to use it to run the PS2 emulator.
HelloI currently run on hardware STM32MP135f-DK and am preparing for running a custom HW.When assigning PA12 as a gpio-key in the devicetree,I get this error on boot:[ 3.544391] genirq: Flags mismatch irq 45. 00000083 (my-input) vs. 00002088 (0-0021)[ 3.551110] gpio-keys gpio-keys: Unable to claim irq 45; error -16[ 3.557446] gpio-keys: probe of gpio-keys failed with error -16The result is that nothing from that gpio-keys-node is initialized (if I run gpioinfo) PA12 is also referenced by ETH2 by default, and all references to eth2 are removed from my devicetree This is how I add the new gpio to the devicetree, basically the same as the default user-pa13, but with 12 instead of 13.gpio-keys {compatible = "gpio-keys";my-input {label = "my-input";linux,code = <BTN_2>;gpios = <&gpioa 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;};};I cannot find anything else pointing at PA12 in the devicetree.Other pins that I define as gpio-keys work. Does anyone know what is inter
Hello,I am using meta-st-stm32mp which points to mickledore and is using linux 6.1.82.I would like to use linux 5.10.xx instead, so I got the kernel recipe from Dunfell Branch and put itin a custom recipe, after that I set in my local.conf the following variable PREFERRED_VERSION_linux-yocto := "5.10.%". However after doing bitbake -c cleasstate virtual/kernel and bitbake virtual/kernel it is still using linux 6.1.82!! Does anyone have any idea please how to set this correctly? local.conf# PREFERRED_VERSION_linux-stm32mp ??= "5.1%"PREFERRED_VERSION_linux-yocto := "5.1%"PREFERRED_VERSION_linux-yocto-rt := "5.1%" bitbake -e virtual/kernel | grep PREFERRED_VERSION_linux-yocto# $PREFERRED_VERSION_linux-yoctoPREFERRED_VERSION_linux-yocto="6.1%"# $PREFERRED_VERSION_linux-yocto-rtPREFERRED_VERSION_linux-yocto-rt="6.1%"Kind regards,Souhail
Hello,I am currently working with an STM32MP131 in a bare-metal environment and utilizing external DDR3. For this, I am using the HAL library, and in most cases, it works as expected. However, I occasionally encounter an issue where the HAL_DDR_Init function returns an error intermittently.Below is a portion of the code where the error occurs: HAL_StatusTypeDef HAL_DDR_Init(DDR_InitTypeDef *iddr) { ... ... ... if ((static_ddr_config.c_reg.MSTR & DDRCTRL_MSTR_DDR3) != 0U) { iret = HAL_DDR_MspInit(STM32MP_DDR3); } else if ((static_ddr_config.c_reg.MSTR & DDRCTRL_MSTR_LPDDR2) != 0U) { if (bus_width == 32U) { iret = HAL_DDR_MspInit(STM32MP_LPDDR2_32); } else { iret = HAL_DDR_MspInit(STM32MP_LPDDR2_16); } } else if ((static_ddr_config.c_reg.MSTR & DDRCTRL_MSTR_LPDDR3) != 0U) { if (bus_width == 32U) { iret = HAL_DDR_MspInit(STM32MP_LPDDR3_32); } else { iret = HAL_DDR_MspInit(STM32MP_LPDDR3_16); } } else { /* Unsupported DDR type */ return H
We are working on building a gateway using the STM32MP1 and the RAK5146 concentrator module with the RAK5146 Pi Hat, utilizing the OpenSTLinux Dunfell distribution (v3.1.11).While building the st-image-weston, we encountered an error during the compilation of m4-native-1.4.18. Below is a brief summary of the error:ERROR: m4-native-1.4.18-r0 do_compile: oe_runmake failedERROR: Task (/.../m4-native_1.4.18.bb:do_compile) failed with exit code '1'The reference used for integrating lorawan is https://wiki.st.com/stm32mpu-ecosystem-v3/wiki/How_to_integrate_LoRaWAN_gateway#ST_hardware
Dears,I'm using STM32MP151 and have a uncertain quesion.In my cases, Both A7 and M4 need to access the register ETH_MACSTSR and ETH_MACSTNR to get time stamp.It's required to enable the ethernet clock on both side before accessing these registers, i.e. the bit7 in RCC_MP_AHB6ENCLRR and RCC_MC_AHB6ENCLRR.It seems workable now. But I'm not sure whether it have any potential problem.If this method is not practical, do you have any suggestions? ThanksRegards,
Deaers,I'm using stm32mp151fad and would like to transfter sram data to ddr in M4 side. I refer to the logic analyzer example https://github.com/STMicroelectronics/logicanalyser. The sram data could be copied into ddr immediately. // mask and transfer first SRAM buff uint32_t * pSource = (uint32_t *)&mSampBuff[0]; uint32_t * pDest = (uint32_t *)(mArrayDdrBuff[mArrayDdrBuffIndex].physAddr+mRollingCompSampCount); // we have a buffer of mSramPacketSize/2 bytes, to send by packet of 4 => loop on mSramPacketSize/8 for (int i=0; i<mSramPacketSize/8; i++) { *(pDest+i) = *(pSource+i) & 0x7F7F7F7F; // 76µs to perform this operation, a memcpy takes 104µs } But when I tried it, the program will go to crash. The destination address is 0xf7841000. Here is my etzpc configuration in tf
Hi:Recently, while developing an application on the STM32MP257, I tried to remove Weston. After removing the weston-start application, other apps could no longer be displayed. Additionally, when using modetest to check, I noticed that the CRTC section shows all zeros. Could you please help me understand the reason for this?
Hi,I have a custom board with STM32MP151 and have been trying to run it for quite some time. I have been fixing one mistake after another. But now I can't solve the last problem: [13:11:36:338] F/TC:0 0 probe_driver_node:436 Probing stm32-tamp on node tamp@5c00a000 [13:11:36:344] D/TC:0 0 probe_driver_node:449 element: stm32-tamp on node tamp@5c00a000 deferred 2 time(s) [13:11:36:354] F/TC:0 0 probe_driver_node:436 Probing stm32-cpu-opp on node cpu0-opp-table [13:11:36:357] D/TC:0 0 probe_driver_node:449 element: stm32-cpu-opp on node cpu0-opp-table deferred 3 time(s) [13:11:36:368] D/TC:0 0 process_probe_list:590 Unresolved dependencies after 3 rounds, 3 deferred [13:11:36:377] D/TC:0 0 probe_dt_drivers_early:774 Deferred drivers probing [13:11:36:377] D/TC:0 0 print_probe_list:397 Probe list: 2 elements [13:11:36:388] D/TC:0 0 print_probe_list:399 |- Driver stm32-tamp probes on node tamp@5c00a000 [13:11:36:392] D/TC:0 0 print_probe_list:399 |- Driver stm32-cpu-opp probes on
Hi:Recently, I need to display the logo during the Kenel phase. I have tried adding the following configuration, but still cannot see any logo when the kernel starts. How can I enable the logo to be displayed on the ST platform (drivers/video/logo/):CONFIG_DUMMY_CONSOLE=yCONFIG_DUMMY_CONSOLE_COLUMNS=80CONFIG_DUMMY_CONSOLE_ROWS=25CONFIG_FRAMEBUFFER_CONSOLE=yCONFIG_LOGO=yCONFIG_LOGO_LINUX_MONO=yCONFIG_LOGO_LINUX_VGA16=yCONFIG_LOGO_LINUX_CLUT224=y
Dear ST Community,I am currently modifying an existing schematic to meet my specific requirements for the STM32MP135 Linux board. In line with these hardware changes, I would like to reconfigure and modify the Linux kernel image file accordingly. I need guidance on how to adjust the pin configurations and generate a new kernel image file.Could you please provide a step-by-step procedure for the following:Schematic Modifications:How to align the software configuration with hardware changes made to the schematic (e.g., GPIO, peripherals, or pin functions).Reconfiguration of Pin Settings in Kernel:How to locate and modify the required device tree files or pin control configurations to reflect changes in the schematic.Steps to adjust GPIO pin settings and peripherals in the kernel.Kernel Compilation:Commands or toolchains required to recompile the kernel after modifications.Guidance on rebuilding the Device Tree Blob (DTB) and compiling the kernel image.Deploying the New Kernel Image:How t
I am a newcomer and not very good at using Linux. I hope to try running the model on the device. I am using a third-party development board. Is the tutorial on the official website applicable or can I use an API
How can I enable the HDMI output log at boot? I want to see the login promt at the HDMI output.
Hi,I am using internal temp sensor DTS and have critical trip point of 120 C configured. I wonder how interrupt work in this case? Where and how should it be handled? Are trip points the only cases when interrupt from DTS happens?
Hello forum;I needed help to do some SI simulation on ESDALC6V1-5M6 and LD39150PU33R Hyperlynx/Altium Designer SI simulator. Hence my question is does this ibis model exist? If yes where can I download it?
hello,st friends. My board use TIM2_CH1 pwm to drive a led.dts configure as:but the led can not light on.use these command byw: I use gpio test led hardware is ok
Hi,is it possible to swap the DSI lanes so that lane 0 becomes lane 1 and the other way around? This would simplify routing on our PCB. I've found there are configuration bits in the DSI_WPCR0 register for custom lane configuration (SWDL0 and SWDL1), but as far as I understood, these can only swap the pin order within a lane. Have I overlooked something or is the STM32MP157 not capable of swapping lanes?Best regards,Robert
Hello,With the new OpenSTLinux 5.1, I noticed that there is no longer any flickering between the splash-screens. I would like to know what the Yocto configurations are so I can use it for building an st-image-core, since there is still a delay. I added the psplash-drm recipe, and also looked at the differences between st-image-core.bb and st-image-weston.bb and really only found splash to be the difference for bootsplash and kernelsplash which I try adding but nothing changed. Any help would be appreciated thank you.
Hi,I want to boot my image from the user data area partition in the eMMC of my stm32mp257f-ev1 board by disabling the eMMC hardware partitions (the mmcblk1boot0/1) in U-Boot like this: mmc partconf 1 0 0 0 Unfortunately, the ROM code can't load my image (even TF-A). Here's my WIC file:part --part-name fsbla1 --fixed-size 256K --source rawcopy --sourceparams="file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware/tf-a-${STM32MP_DT_FILES_EMMC}-optee-emmc.stm32" --align 4096 part --part-name fsbla2 --fixed-size 256K --source rawcopy --sourceparams="file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware/tf-a-${STM32MP_DT_FILES_EMMC}-optee-emmc.stm32" --align 4096 # metadata for fsbla update part --part-name metadata1 --fixed-size 256K --source rawcopy --sourceparams="file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware/metadata.bin" --part-type 8DA63339-0007-60C0-C436-083AC8230908 part --part-name metadata2 --fixed-size 256K --source rawcopy --sourceparams="file=${DEPLOY_DIR_IMAGE}/arm-
I want to display the loop log at start up from UART to the HDMI. How can i achieve that?Is it something I need to change in the device tree for linux or something?My HDMI and UART works excellent. Now I want to connect them...or in other words, display the start up log at the HDMI.
I would like to access a SPI Device (Ethercat Shield) over the Arduino Headers (SPI4). What do i have to do to get the /dev/spidev... device file in Linux ? Sorry, but i'm still confused what is enabled, what do i have to enable in DTS files and when i have to rebuild the kernel (that works :) )Thanks Daniel
I'm trying to boot from SD-card and u-boot doesn't seem to find device tree. I have built my system with buildroot (bootlin st/2023.02.2) overriding the sources for tf-a, u-boot, op-tee and kernel, to be able to boot at least to u-boot (I did write another posts of my problems).The files in SD-cardboot ├── extlinux │ └── extlinux.conf ├── myb-stm32mp135x-512m.dtb └── zImageextlinux.conflabel myb-stm32mp135x-512m-buildroot kernel /boot/zImage devicetree /boot/myb-stm32mp135x-512m.dtb append root=/dev/mmcblk0p5 rootwait rw console=ttySTM0,115200genimageimage sdcard.img { hdimage { partition-table-type = "gpt" } partition fsbl1 { image = "%ATFBIN%" } partition fsbl2 { image = "%ATFBIN%" } partition fip { image = "fip.bin" } partition u-boot-env { size = 2M } partition rootfs { image = "rootfs.ext4" bootable = "yes" } }So any ideas why it doesn't work?
PA13 and PA14 seems to support Coresight. Is there more information how this can be used and how to connect these pins ? currently I use PA13 to connect a LED, for PA14 there is less information.
Hi,I am successfully able to cross-compile a Qt application and run it on a STM32MP157F-DK2 using the various tutorials on this site.Problem is, I want to view the application using the internal LCD of the board (800*480), but the application is designed for a 1920*1080 screen.It runs, but only half of the window is visible. I tried to run it on Weston and EGLFS, same result.Is it possible to zoom out/rescale the application using some Weston/EGLFS parameters, so that the whole window is visible? I am aware that the contents are gonna be tiny, that's not a problem.I tried QT_SCALE_FACTOR=0.5 using EGLFS, but that didn't work.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.