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
Currently I am trying to set up the emmc boot on a stm32mp157. I have mirrored the partitions of a working SD card to the emmc with:sgdisk -e /dev/mmcblk1 sgdisk -R=/dev/mmcblk2 /dev/mmcblk1 sgdisk -G /dev/mmcblk2 dd if=/dev/mmcblk1p1 of=/dev/mmcblk2p1 bs=512 conv=fdatasync dd if=/dev/mmcblk1p2 of=/dev/mmcblk2p2 bs=512 conv=fdatasync dd if=/dev/mmcblk1p3 of=/dev/mmcblk2p3 bs=512 conv=fdatasync dd if=/dev/mmcblk1p4 of=/dev/mmcblk2p4 bs=512 conv=fdatasync dd if=/dev/mmcblk1p5 of=/dev/mmcblk2p5 bs=512 conv=fdatasync dd if=/dev/mmcblk1p6 of=/dev/mmcblk2p6 bs=512 conv=fdatasync echo 0 > /sys/block/mmcblk2boot0/force_ro dd if=/dev/mmcblk1p1 of=/dev/mmcblk2boot0 bs=512 conv=fdatasync echo 1 > /sys/block/mmcblk2boot0/force_ro echo 0 > /sys/block/mmcblk2boot1/force_ro dd if=/dev/mmcblk1p2 of=/dev/mmcblk2boot1 bs=512 conv=fdatasync echo 1 > /sys/block/mmcblk2boot1/force_ropartition is fsbl1, fsbl2, ssbl, boot, rootfs1, rootfs2.Then i used the OTP boot device conf
Hi everyone,I am using stm32mp157f-dk2 with openSTLinux-5.4-dunfell-eglf distribution.I would like to configure my device tree using cubeMX.The generated dts file seems OK to me. However, how can I tell yocto to use my newly generated device tree?The instruction on https://wiki.st.com/stm32mpu/wiki/How_to_create_your_own_machinedidn't mention anything about this.I have tried to modify the meta-st-stm32mp-addons/classes/cubemx-stm32mp.bbclass but it doesn't work.It seems to me that the default meta-st-stm32mp-addons/conf/machine/stm32mp1-mx.conf is not used.Regards, Leung
I've just watched a few tutorials on ADC, and I've enabled IN1 on ADC1 which seems to map to the connector labeled A3 as per this doc.I then added the following to my main.c within the CM4 project.uint32_t raw = 0; char msg[100]; HAL_ADC_Start(&hadc1); HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY); raw = HAL_ADC_GetValue(&hadc1); HAL_Delay(100); sprintf(msg, "%d\r\n", raw); VIRT_UART_Transmit(&huart0, msg, strlen(msg));Then I plugged pin A3 directly into GND so I could validate it's working by getting a reading of 0, but I get either 32768, 65518, or 0. I've also tried to supply it 1v and it seems to give 65518 constantly. I've also tried to switch to hdac2 by creating the same configurations in the IOC and I had the same results. It seems like it may be reading multiple different values from the different ports and displaying them all as they come in, but I don't even have anything defined in the other INs.Furthermore, if I did define multiple INs for one ADC (which
I have a 3rd party SOM (seeed studio Odyssey). When I edit the .dts file in the tf-a-stm32mp1/fdts directory and add: &pwr_regulators { system_suspend_supported_soc_modes = < STM32_PM_CSLEEP_RUN STM32_PM_CSTOP_ALLOW_LP_STOP STM32_PM_CSTOP_ALLOW_STANDBY_DDR_SR >; system_off_soc_mode = <STM32_PM_SHUTDOWN>; vdd-supply = <&vdd>; vdd_3v3_usbfs-supply = <&vdd_usb>; }; When I try to do a "shutdown -h 0" i eventually get a WDT timeout. One difference (from the DK2 board) is that they put the PMIC on i2c2 (rather than 4 or 6). Not sure if this is a red-herring or not.Here is their meta layer: https://github.com/Seeed-Studio/meta-st-odysseyThanks,Ben Beckwith
Hi all,I am trying to interface SN65DSI83 with STM32MP1.Below is my device tree:&ltdc{ status = "okay"; /* USER CODE BEGIN ltdc */ port { #address-cells = <1>; #size-cells = <0>; ltdc_ep0_out: endpoint@0 { reg = <0>; remote-endpoint = <&dsi_in>; }; }; /* USER CODE END ltdc */ }; &dsi { #address-cells = <1>; #size-cells = <0>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; dsi_in: endpoint { remote-endpoint = <&ltdc_ep0_out>; }; }; port@1 { reg = <1>; dsi_out: endpoint { remote-endpoint = <&dsi_lvds_bridge_in>; }; }; }; }; &i2c4 { dsi_lvds_bridge: sn65dsi83@2c { compatible = "ti,sn65dsi83"; reg = <0x2c>; ti,dsi-lanes = <2>; ti,lvds-format = <1>; ti,lvds-bpp = <24>; ti,width-mm = <217
Hello,What is the best (fastest and reliable) way to program a blank eMMC for mass production? In my custom board, the device will boot from eMMC, no SD card is available. The default pins are shown in the link below. For other data pins is there any restriction?https://wiki.st.com/stm32mpu/wiki/STM32MP15_ROM_code_overview#Boot_from_e-E2-80-A2MMC-E2-84-A2
I can monitor the SAI2 signals directly from the audio codec pins. The MCLK, SCLK, and Fs signals appear correctly based on my configuration but when I connect my oscilloscope to the GPIO header pins (CN2), the lines all appear low even though they are changing for the codec. This doesn't happen with the I2C1 pins connected to the audio codec. I can monitor those just fine from their respective GPIO header pins, which leads me to believe it isn't an issue with the pins being configured as alternate function. Is there a reason or solution for this?
I am using stm32mp157c and working initialize mtd nand flash w25n512.i was able to run it on kernel mode. Kernel device tree is;aliases { spinand0 = &qspi; }; ... &qspi { pinctrl-names = "default"; pinctrl-0 = <&quadspi_pins_mx>; num-cs = <0x1>; #address-cells = <1>; #size-cells = <0>; status = "okay"; flash0: w25n512@0 { compatible = "spi-nand"; reg = <0x0>; spi-rx-bus-width = <2>; spi-tx-bus-width = <2>; spi-max-frequency = <166000000>; #address-cells = <1>; #size-cells = <1>; }; }; ... &pinctrl { quadspi_pins_mx: quadspi_mx-0 { pins1 { pinmux = <STM32_PINMUX('B', 6, AF10)>, /* QUADSPI_BK1_NCS */ <STM32_PINMUX('F', 8, AF10)>, /* QUADSPI_BK1_IO0 */ <STM32_PINMUX('F', 9, AF10)>; /* QUADSPI_BK1_IO1 */ bias-disable; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = <STM32_PINMUX('F', 10, AF9)>
Learn how to protect OEM assets and ensure integrity using open-source softwareDownload our whitepaper to better understand these strategies:Secure Boot: How it works and why it is importantHow chain-of-trust mechanisms protect OEM and user dataSecuring OEM manufacturing facilities using Secure Secret ProvisioningIn-depth look at the benefits of the open-source approach to security
I flashed the board with dd command and tried either flashing whole SD card with the .raw image and each partition separately as well, it came up at panic mode. The image is en.FLASH-stm32mp1-openstlinux-5-10-dunfell-mp1-21-11-17_tar_v3.1.0. Does anyone have same problem?root@stm32mp1:~# PANIC at PC : 0x2fff1f4bException mode=0x00000016 at: 0x2fff1f4b
Hello , I am running this example in loop. : 5.1 Display a window with Python and weston/wayland↑and occasionally getting this error : Gdk-Message: 11:00:18.837: Error 71 (Protocol error) dispatching to Wayland display.What is this ? and how to fix?I am on 3.1 ecosystemBr,D.
I can able to display splash image from uboot. but once kernel boots it will disappeared, screen will become black . So i want avoid framebuffer clear of dispaly.
Hi,I am using stm32mp157c and working initialize mtd nand flash w25n512. I am following the https://wiki.st.com/stm32mpu/wiki/MTD_overview . I don't have choise "Support most SPI Flash chips (AT26DF, M25P, W25X, ...)" in chapter 3.1.2 in my kernel menuconfig. Did I not open a section that I should have opened or is there a different problem?Best Regards,Ali Mesut Ince
For example, in the KEIL uVision 5 IDE, it is possible to specify the starting address in the "Options for Target" window. I would like to know how to do the same in Cube IDE
Hardware: STM32MP1-DK1Software: Windows STM32Cube ProgrammerQuestion: Download hardware failed. NOTICE: CPU: STM32MP157AAC Rev.B NOTICE: Model: STMicroelectronics STM32MP157A-DK1 Discovery Board NOTICE: Board: MB1272 Var1.0 Rev.C-01 INFO: Reset reason (0x15): INFO: Power-on Reset (rst_por) INFO: PMIC version = 0x10 INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe3000 INFO: FCONF: Reading firmware configuration information for: stm32mp_io INFO: Using USB INFO: Instance 2 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.4-r1.0(debug):v2.4-dirty NOTICE: BL2: Built : 16:43:51, Nov 17 2020 INFO: BL2: Doing platform setup INFO: RAM: DDR3-DDR3L 16bits 533000Khz WARNING: Couldn't find property st,phy-cal in dtb ERROR: DDR addr bus test: can't access memory @ 0xc0000004 PANIC at PC : 0x2ffed949 Exception mode=0x00000016 at: 0x2ffed949
..
When I hit the build button, I get "Nothing to build for project DK2_TIMER1_OpenAmp_Solution", the Debug folder is also empty, should this be populated or do I need to generate it somehow?https://www.youtube.com/watch?v=PsiFDHH87vo&list=PLnMKNibPkDnFeV4sBarnsAtFTg7h6V-9_&index=11
I have tried the following on my DK2 dev board:Connect VBAT (verify that RTC is working as well)Set rtc alarm (30s into future or so)Power off via long press of "sleep" buttonWait for alarm to wake RTC...I have verified that the RTC is using the LSE clock, and that the RTC is working by powering system off for a bit and seeing that the RTC doesn't lose time. Thanks,Ben Beckwith
Hi everyone,I have encounter the following error when booting the stm32mp157f-dk2Starting Load/Save Screen …of backlight:5a000000.dsi.0... [FAILED] Failed to start Load/Save …s of backlight:5a000000.dsi.0. See 'systemctl status systemd-backlight…ht:5a000000.dsi.0.service' for details.the 'systemctl status systemd-backlight@5a000000' give me the following* systemd-backlight@5a000000.service - Load/Save Screen Backlight Brightness of 5a000000 Loaded: loaded (/lib/systemd/system/systemd-backlight@.service; static; vendor preset: disabled) Active: inactive (dead) Docs: man:systemd-backlight@.service(8)The screen is able to display the splash image during uboot, so I assume the hardware is OK. When calling a GUI application, it fail and report error as 'Could not initialize egl display'Any ideas?
I make st-example-image-qt image with openstlinux-5.10on the board, i can't run any qt exampls , when i run a qt app,i get this Could not open egl display Aborted (core dumped)do i miss something
Hi,I follow the tutorial "How to exchange data buffers with the coprocessor".Unfortunately, my board doesn't run the tutorial directly.I read the code "stm32_rpmsg_sdb.c","backend.c","main.c" and modified it slightly. Now M4 can receive the address sent by rpmsg-sdb, but when M4 writes directly to this address, it will enter"void HardFault_Handler(void)",also cannot read the correct data.I modified the code of "stm32_rpmsg_sdb.c" to test whether the applied memory can be used. After successfully applying for memory, data was written and correctly read in app, indicating that memory allocation and mapping should have been successful.Can M4 read and write the memory allocated from rpMSG-sdb directly?Or can you only use DMA to copy M4 memory into the requested memory?Thanks in advance.
Hello, I have to run a c application after the STM32MPU has booted up ( not before that).Is there a way to launch the terminal application with custom shell script running on it?How ?what is the name of the terminal application?May be I can put that in the /etc/profile.d/<some_shell_script>for normal ubuntu system it is generally xterm or gnome.What is it for OpenSTLinux?Br,D
I installed (OpenSTLinux-Distribution Package) openstlinux-eglfs/st-example-image-qt image to my stm32mp157c-dk2 board, and I successfully run my qt applications. I wonder how can I autostart my qt application after boot or during boot time? I mean I want to see my qt app open after booting process
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.