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
Can someone do me a favor?I need some help.I'm using the board of the stm32mp157 chip.When I try to restart the board, he occasionally prompts for some errors.[drm] ltdc fifo underrun: please verify display modeAnd at the same time, my hdmi monitor doesn't work.How do I solve this problem?
EVAL BOARD (stm32mp15-ddr.dtsi) #define DDR_PCFGR_0 0x00010000 #define DDR_PCFGR_1 0x00010001 My Board (TF-A/stm32mp15-mx-dtsi) #define DDR_PCFGR_0 0x00000000 #define DDR_PCFGR_1 0x00000000Why are these registers different even though I have the same configuration?
Actually, we are trying to reset the MAC registers by using DMA mode register (bit 0) in Ethernet section.As per reference manual, we are set the bit(swr bit) to 1 in ETH_DMAMR_REG register. but it is not reset automatically. In software we done // Enable eth clocks __HAL_RCC_ETH1CK_CLK_ENABLE(); __HAL_RCC_ETH1TX_CLK_ENABLE(); __HAL_RCC_ETH1RX_CLK_ENABLE(); __HAL_RCC_ETH1MAC_CLK_ENABLE();// Provide a software reset to reset all MAC internal registerswriteptr = (uint32_t*)(ETH_BASE_ADDRESS + ETH_DMAMR_REG);SET_BIT(*writeptr,ETH_DMAMR_SWR); // make 0 bit to 1 for sw resetreadptr = (uint32_t*)(ETH_BASE_ADDRESS + ETH_DMAMR_REG);while(READ_BIT(*readptr,ETH_DMAMR_SWR)); // checking the 0 bit till software reset has done( bit is reset).In this writing has completed but we are unable to read 0 from this register. May be what is the issue ? can help me in this regards.regardssrikanth
For my custom board, I will be using emmc on the sdmmc2 and wireless on sdmmc3 so according to this article I have to change linux kernel boot command. Since I am not going to have anything on the sdmmc1 (SD Card) isn't it suppose to boot from emmc without any commands?
I would like to bring up the openocd and gdb debugger on a custom board with STM32MP157D processor with 1 GB (2x512MB 16 bit DDR3 chips) x 32 bit. The modified device-tree and SPL gives me the following issue:U-Boot SPL 2022.01-rc3 (Sep 07 2022 - 16:35:59 +0200) RAM: EK470 DDR3-DDR3L 32bits 533000kHz stm32mp1_clk rcc@50000000: stm32mp1_clk_disable: id clock 228 has been disabled stm32mp1_clk rcc@50000000: stm32mp1_clk_enable: id clock 220 has been enabled stm32mp1_clk rcc@50000000: stm32mp1_clk_enable: id clock 222 has been enabled stm32mp1_clk rcc@50000000: stm32mp1_clk_enable: id clock 226 has been enabled stm32mp1_clk rcc@50000000: stm32mp1_clk_enable: id clock 229 has been enabled stm32mp1_clk rcc@50000000: stm32mp1_clk_enable: id clock 224 has been enabled id=15 clock = 1fc4ef40 : 533000 kHz stm32mp1_clk rcc@50000000: computed rate for id clock 224 is 533000000 (parent is PLL2_R) stm32mp1_clk rcc@50000000: stm32mp1_clk_enable: id clock 228 has been enabled get_ram_size(c0000000, 4
Hello,I am trying to bring up a custom board based on the STM32MP157D MPU via SDCard.I am using u-boot 2022-01-rc3 as bootloader and the boot is using SPL (I have an SDCard with a GPT Partition table with fsbl1, fsbl2 and ssbl named partitions).This is the 2nd time I am using this u-boot to bring up a custom STM32MP15x board.The first time was using a STM32MP151a and I needed to activate the clock tree for the USART1 and modified the low level setup in the stm32mp1_clk source code to enable the USART1 clocks and to activate the serial port #1 to have the SPL ready to print as soon it starts.But now, something goes wrong. I am using a DDR3 layout as the ED1 evaluation kit as 2x4GB (2x16 bit) 533Mhz DDR RAM. Using the same clk initialization stuff in the ddr3-1066-888-bin-g-2x4gb-533mhz device tree file, and the rcc configuration as follow:&rcc { status = "okay"; st,clksrc = < CLK_MPU_PLL1P CLK_AXI_PLL2P CLK_MCU_PLL3P CLK_PLL12_HSE CLK_PLL3_HSE CLK_PLL4_HSE CLK_RTC
Hi. Some examples use ltdc_ep0_out / reg 0, while others use ltdc_ep1_out / reg 1.e.g.https://community.st.com/s/question/0D50X0000BG0RAWSQ3/stm32mp1-ltdc-device-tree-for-rgb-displayWhere can I find more details on when to use reg 0 vs reg 1?&ltdc { port { ltdc_ep1_out: endpoint@1 { reg = <1>; remote-endpoint = <&panel_rgb_in>; }; }; };Thank you-- Peter
Hi, the image provided by ST, usb0 ethernet show up as well when try 'ifconfig'.We would like to try with buildroot. We pick kernel from ST: linux-5.15-stm32mp-r1.tar.gzWe pick config from ST: en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz (inside the zip has config-5.15.24.txt file) Building and boot are success. We expected to see "usb_gadget" in folder /sys/kernel/config to run "stm32_usbotg_eth_config.sh". But "usb_gadget" folder doesn't appear.But we tried:```mkdir -p /configmount -t configfs none /config```"usb_gadget" does appear inside /config as well.So, we change path in script "stm32_usbotg_eth_config.sh", instead of "/sys/kernel/config/usb_gadget" become "/config/usb_gadget".Script run look fine but all we see just:[ 45.084215] using random self ethernet address[ 45.087218] using random host ethernet addressAnyone know what we are missing or any hint?And why "usb_gadget" only appears when use mount, instead of default "/
I've put TF-A into verbose printing, resulting in prints regarding BSEC access.But the printouts from TF-A vs U-boot tell different, or atleast confusing information.What gives?(TF-A 2.6-r1, U-Boot 2020.10-r2)> stm32key readVERBOSE: BSEC: OTP 24 is locked and write will be ignoredOTP HASH 24: 0 lock : 0VERBOSE: BSEC: OTP 25 is locked and write will be ignoredOTP HASH 25: 0 lock : 0VERBOSE: BSEC: OTP 26 is locked and write will be ignoredOTP HASH 26: 0 lock : 0VERBOSE: BSEC: OTP 27 is locked and write will be ignoredOTP HASH 27: 0 lock : 0VERBOSE: BSEC: OTP 28 is locked and write will be ignoredOTP HASH 28: 0 lock : 0VERBOSE: BSEC: OTP 29 is locked and write will be ignoredOTP HASH 29: 0 lock : 0VERBOSE: BSEC: OTP 30 is locked and write will be ignoredOTP HASH 30: 0 lock : 0VERBOSE: BSEC: OTP 31 is locked and write will be ignoredOTP HASH 31: 0 lock : 0VERBOSE: BSEC: OTP 0 is locked and will not be refreshedVERBOSE: BSEC: OTP 0 is locked and write will be ignoredOTP 0: closed status:
I`ve built st-image-weston for stm32mp157f-disco board with flutter and clang layer. Then I built SDK with:bitbake core-image-weston -c populate_sdkThen I installed SDK with .tmp/deploy/sdk/core-image-weston-openstlinux-weston-stm32mp15-disco-x86_64-toolchain-4.0.1-snapshot.shAfter that I setup environment with source /opt/st/stm32mp15-disco/4.0.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi export CC=${CLANGCC} export CXX=${CLANGCXX}My question is how can I install a simple flutter app to my discovery board. What are the steps that I need to follow.
When I open it with this command,less README-CHECK-GPUCheck GPU ========= GPU can be deactivated by fuse or not present in some SOC So in case the GPU is not present, you must configure weston on pix-man by creating this file : /etc/default/weston with this content : OPTARGS=--use-pixman So what does this mean and what should I do?
Hello, I am trying to manage some interrupts in the M4, specifically the Tamper Interrupt. Using the STM32CubeIDE (CubeMX) I am unable to select the Tamper interrupt that shows in the NVIC peripheral, when I select it, it gets deselected automatically. What could be the cause of this behaviour? I am allocating the tamper peripheral to the non-secure world (A7) in SP-Min (Manually changed in source code) and enabling the external tampers. In M4 I try to enable the interrupt and set an IRQHandler with the following code: void tamp_init (void) { HAL_NVIC_SetPriority (TAMP_IRQn, 1, 0); HAL_NVIC_EnableIRQ (TAMP_IRQn); } void TAMP_IRQHandler (void) { // Do something (turn led on) } I have a button connected to the tamper input signal, when I press this button I expect to see the led light up but it does not. I know the tamper is triggered because the backup registers are cleared. What is missing in my configuration or how should I set up the inter
Hi,I have a problem with installing any directory or any files into /usr/local folder.Here my_receipt.bbDESCRIPTION = "My receipt" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" SRC_URI = "file://reset_led.sh " S = "${WORKDIR}" do_configure[noexec] = "1" do_compile[noexec] = "1" do_install() { install -d ${D}${prefix}/local/reset-led install -m 0755 ${WORKDIR}/reset_led.sh ${D}${prefix}/local/reset-led/ } FILES:${PN} += "${prefix}/local/reset-led/"In OpenSTLinx, those folders and files go to st-image-userfs...tar.xz.In /usr/local I can see only demos etc. folders and directories.The compilation is going well without any errors or warnings. What was missed, and where is the problem?
Does ST consider porting/providing support Automotive Grade Linux for STM32MP1's?
my stm32mp157f-dk2 board has a DSI (ECMF04-4HSWM10 filter) screen but my custom board is going to have a LVDS screen so what should I do different to protect the screen? (Filtering or ESD protection etc.)
I using a STM32MP-157F-EV1 eval board with linux Version 4.0.1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.CAN receive 500kBit/s fails, if I modify the sample point via an console command it works well. All other Bitrates 125kBit / 250kBit 1MBit are ok with the default values. How could I set the sample point permant, is there a linux config-File, to get the modyfied value even after a reboot?
I cannot get the QSPI NOR-Flash to work on my custom board using an STM32MP153CA + Adesto AT25SF128 NOR flash in U-BOOT. I'm working with 5-10-dunfell-mp1-21-11-17 files included on the 3.1.0 ecosystem.The schematic section is shown below:Is not that different from the STM32157-ev1 implementation.I activated MPU's internal pull-ups for IO[0..3] lines by configuring the pins as follows on the dts files: quadspi_pins_mx: quadspi_mx-0 { pins1 { pinmux = <STM32_PINMUX('B', 6, AF10)>; /* QUADSPI_BK1_NCS */ bias-disable; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = <STM32_PINMUX('F', 10, AF9)>; /* QUADSPI_CLK */ bias-disable; drive-push-pull; slew-rate = <2>; }; pins3 { pinmux = <STM32_PINMUX('F', 6, AF9)>, /* QUADSPI_BK1_IO3 */ <STM32_PINMUX('F', 7, AF9)>, /* QUADSPI_BK1_IO2 */ <STM32_PINMUX('F', 8, AF10)>, /* QUADSPI_BK1_IO0 */ <STM32_PINMUX('F', 9, AF10)>; /* QUADSPI_BK1_IO1 *
Hi,my system working fine from EMMC(written through cube programmer). I also have on my board an SD-Card slot and boot configuration pins. Is it possible to upgrade the system through SD-Card to EMMC via dd if=... from rootfs?How to prepare EMMC....raw file, is it possible?I try to write sd_card.....raw file using dd application to EMMC, but the system can't start. After powering on, nothing is shown on uart debug log (boot pins changes, of course).Thanks in advancedBR Michal
How can I remove QT5 from my build since there is a lot of dependencies and I am not going to be needing it. What is the best way to remove it?
Hi all ~I have STM32MP157C custom board. My custom board boot over eMMC. Occasionally, my board can not boot over eMMC with error message like below.Can I get some advice regarding this problem?Hardware of eMMC part is the same as EV1 board. Thanks for your support. NOTICE: CPU: STM32MP157CAA Rev.Z NOTICE: Model: STMicroelectronics custom STM32CubeMX board - openstlinux-5.10-dunfell-mp1-21-11-17 INFO: Reset reason (0x15): INFO: Power-on Reset (rst_por) INFO: PMIC version = 0x21 INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000 INFO: FCONF: Reading firmware configuration information for: stm32mp_io INFO: Using EMMC INFO: Instance 2 INFO: Boot used partition fsbl1 ERROR: CMD13 failed after 5 retries ERROR: SDMMC2 init failed PANIC at PC : 0x2ffea11b Exception mode=0x00000016 at: 0x2ffea11b
I've just made the switch for V4.0.0 (A-TF 2.6, Linux 5.15 but with Barebox instead of U-Boot) using Buildroot as before.I had trouble to bring the system up because of what has been changed in regard to SCMI.The DT node's compatible name was changed to force OP-TEE, which is a no go in my case for now.I'll just leave the solution here in case anyone faces the same issue.Simply override the scmi node with the old values:&scmi { // Revert OP-TEE to SP_MIN // Previously compatible = "linaro,scmi-optee"; compatible = "arm,scmi-smc"; arm,smc-id = <0x82002000>; };This will allow you to boot without any changes compared to V3.
I'm having trouble finding documentation on how to access the upper OTPs by the unsecure world. I see that I have to manage exceptions by using STM32CubeMX but its not very clear on how to manage the exceptions using STM32CubeMX.
I've upgraded from 5.10 to 5.15 and can't make GPIO work anymoreI've tried thisgpio_keys { compatible = "gpio-keys"; input-name = "gpio-keys"; status = "okay"; halt { label = "Halt"; linux,code = <KEY_POWER>; // Key event to match with poweroff daemon gpios = <&gpioa 2 GPIO_ACTIVE_LOW>; // WKUP2 on falling edge status = "okay"; }; wakeup { label = "Wakeup"; linux,code = <BTN_1>; gpios = <&gpioa 2 GPIO_ACTIVE_HIGH>; status = "okay"; wakeup-source; }; }but am getting[ 1.950701] gpio-keys gpio_keys: failed to get gpio: -16 [ 1.950728] gpio-keys: probe of gpio_keys failed with error -16 [ 2.205292] hci_uart_qca serial0-0: failed to acquire enable gpioI've also tried, according to the kernel documentation:wakeup { label = "Wakeup"; linux,code = <BTN_1>; // Can be anything, not used interrupt-parent = <&pwr_irq>; //cell 1: wake-up pin id from 0 to 5 //cell 2: IRQ_TYPE_EDGE_FALLING o
Hi ST Team,We are working on product built around STM32MP157C. We are trying to generate the trusted image with Yocto. However, somehow the Trusted Firmware Arm (TF-A) is not getting generated. We have added following options in machine.conf file:BOOTSCHEME_LABELS += "trusted"WKS_FILE_DEPENDS ?= " \ tf-a-stm32mp \Even with this, the image for TFA is not getting generated.Any pionters in this direction would be of great help. Thanks in advance.
Is this processor capable to drive by parallel interface an RGB666 LCD display?What could I set in the device tree?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.