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
Hi,We are using stm32mp157a processorin Ubootv2018.11-stm32mp1-r2.1 version. In this DDR has 512MB of memory. We want to change DDR size 512MB to 1 GB ,how can we do that? and what are the files we need to modify for changing ddr size in uboot? Please help us.
I have been told that the STM32MP1 fit that criteria. ie if the board is deployed to the field, then it is not easy to reverse engineer the SD card, ripping code and configuration details.Is this indeed true?What is the equivalent model to the Pi in the STM32mp1 family of products?Please don't shoot me down, if this sounds a bit naïve, just learning...Any STM32 experts out there that can advice?
is there any way find dts config /sys/ file to check stm32mp1 in linux sdk ?cpu temp freq battery voltage vbat measurement.
We are using stm32mp157a_dk1. we want to know cortex_A7 core0 is in secure or non secure mode? How will come to know processor mode is in secure/non secure? If it is secure how to change it to non secure?
Hi,I tried to let "en.FLASH-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar_v3.0.0" work on the ODYSSEY STM32MP157C board.Please advise when will produce error : "Starting version 244.5+[ 5.236977] blk_update_request: I/O error, dev mmcblk1, sector 173056 op 0x1:(WRITE) flags 0x20800 phys_seg 1 prio class 0[ 5.246675] Buffer I/O error on dev mmcblk1p4, logical block 0, lost sync page write[ 5.254488] EXT4-fs (mmcblk1p4): I/O error while writing superblock[ 5.260725] EXT4-fs (mmcblk1p4): mount failed[ 5.269862] VFS: could not find a valid V7 on mmcblk1p4." and how to solve it.The attachment is the output log.Thanks,QiZhang
I am wondering what number I should expect in terms of encryption performance with STM32MP157C. Below is that I getOpenSSL 1.1.1l 24 Aug 2021 # openssl engine -c (devcrypto) /dev/crypto engine [DES-CBC, DES-EDE3-CBC, AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-CTR, AES-192-CTR, AES-256-CTR, AES-128-ECB, AES-192-ECB, AES-256-ECB, MD5, SHA1, SHA224, SHA256, SHA384, SHA512] (dynamic) Dynamic engine loading support ## without devcrypto openssl speed -evp aes-128-cbc -engine devcrypto -elapsed The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 7533.57k 9109.38k 9611.86k 9747.11k 9786.71k 9781.25k ## with devcrypto openssl speed -evp aes-128-cbc -elapsed type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 1898.27k 5383.32k 9960.87k 12648.11k 13443.07k 13538.65kAre these numbers to be expected?
Hi ST Community,We are using STM32MP157C-DK2 board and OpenSTlinux Firmware (v3.1-Openstlinux-5-4-dunfell-mp1-20-11-12) for our development. We have a requirement to drive the Blue LED (LD8) always ON even during sleep / suspend. Currently the GPIO PD11 connected to the LED becomes LOW when we issue "systemctl suspend" command in Linux.Below is the DTS snippet: led { compatible = "gpio-leds"; led-blue { label = "heartbeat"; gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; linux,default-trigger = "heartbeat"; default-state = "off"; &n
I ran into a warning for one section of code that I did not for a different section of code. So I simplified it into two function. I don't see why I get a warning for one and not the other.void test32(uint32_t *data) { uint32_t src_addr = (uint32_t) data; } void test16(uint16_t *data) { uint16_t src_addr = (uint16_t) data; }The compiler complains (also about unused variables, but I removed those)../Core/Src/main.c: In function 'test16': ../Core/Src/main.c:161:22: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 161 | uint16_t src_addr = (uint16_t) data; | ^ The compiler appears to be based on gcc 9.3.1.If I put these two functions in a simple C file and build it on straight Linux (gcc 9.3.0) the warning exists for both instances.main.c: In function ‘test16’: main.c:15:23: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 15 | uint16_t src_addr = (uint16_t) data; | ^ main.c: In function ‘test32’: main.c:20:2
Hello, I am working with STM32MP157C-DK2 board and trying to pass messages between the CM4 and the CPU (main processor) using the OpenAMP framework over the com ports ttyRPMSG0 and ttyRPMSG1. On the CPU I have the openstlinux-weston image, and a C program for reading and sending messages through ttyRPMSG ports. In this program for interacting with the ports, I pretty much followed this example. Here is my communication setup: CPU sends msgs --> ttyRPMSG0 --> CP4 Receives msgs CM4 sends msgs --> ttyRPMSG1 --> CPU Receives msgsThe CM4 firmware setups and configure OpenAMP and VIRT_UARTs very much as in the OpenAMP_TTY_echo. Here is the issue that I want to resolve.- The CM4 receives the messages sent from CPU. - However, on the CPU side, receiving messages only works if in a terminal I run echo 'some text' > /dev/ttyRPMSG1 This is quite annoying. Encapsulating this command in a shell script and launching a systemd service does not work (in t
I am stuck at step 6 inhttps://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157C-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-M4/Modify,_rebuild_and_reload_a_firmwareMPU Serial Console is operational, ethernet RJ45 also, and serial port is not opened elsewhere.I don't get passed this yellow light, "serial consol in use"/Peter
On the STM32MP1, when booting from serial NOR flash, the STM32 MPU Wiki states "In dual mode, BK1_NCS shall be connected to BK2_NCS on board." Should MPU BK1_NCS and BK2_NCS GPIOs actually be connected, or rather is BK2_NCS GPIO unused? I'm just confused since other kits (ex: STM32H750B-DK) have provisions for jumping the 2 lines together, but the wiki does not indicate the BK2_NCS GPIO (from the MPU) is even used by the BootROM. I wanted clarification of the statement made on the wiki article, mainly to be sure that shorting the BK1_NCS and BK2_NCS lines weren't required to put the QuadSPI in dual-bank mode. The statement on the wiki might be misleading.
Hi, i'm using Yocto to build a custom openstlinux image for a stm32mp157d-dk1, but i would like to upload the image using the mass storage mode, enabled with u-boot, or something like that.
My device tree is the following:&sdmmc1 { pinctrl-names = "default", "opendrain", "sleep"; pinctrl-0 = <&sdmmc1_b4_pins_a>; pinctrl-1 = <&sdmmc1_b4_od_pins_a>; pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; disable-wp; cd-debounce-delay-ms = <500>; no-1-8-v; max-frequency = <1000000>; //st,sig-dir; //st,neg-edge; //st,use-ckin; bus-width = <4>; vmmc-supply = <&vdd_sd>; //vqmmc-supply = <&sd_switch>; sd-uhs-sdr12; sd-uhs-sdr25; sd-uhs-sdr50; sd-uhs-ddr50; status = "okay"; };Sd schematics is the following:
Good afternoon, I wrote a program for controlling the railway scoreboard in Python 3 for the STM32MP157A-DK1 board. I have a problem. It is described by the link https://bugs.launchpad.net/ubuntu /+source/gnome-control-center/+bug/1264368Troubleshooting:Warning: Source ID *** was not found when attempting to remove it.I have a question which boards from the STM32MP157 family do not have this problem?Sincerely, Alexander.
Hi All,i'm having an issue with STM32MP157c and audio driver WM8994 (same as used into STM32MP15-DK).At boot time i'm still have the following error:[ 4.250237] ALSA device list:[ 4.251761] No soundcards found.I share the electrical drawing of our custom board and my custom DTS.I followed the steps described here:https://wiki.st.com/stm32mpu/wiki/Soundcard_configuration#Referencesbut i'm still get the same error.Kind regardsIlie
..
Hi there,I am struggling to understand and achieve a USB gadget with Mass Storage + Serial(cdc-acm) + 1 custom interface with one bulk in and one bulk out though functionfs. Every interface works fine when runs separately. Issue starts when i try to make a composite device because of the fifo configuration.I understand there is total of 4KB Fifo as described in reference manual and is configurable for each endpoint as needed.I believe in my case :MSG = I need 1 BULK IN + 1 BULK OUTCUSTOM = I need 1 BULK IN and 1 BULK OUTCDC ACM = needs 1 BULK IN and i BULK OUT + 1 interrupt endpointso my requirement is only for np-tx-fifo, is this correct?But alwasy in composite mode it fails with :dwc2 49000000.usb-otg: dwc2_hsotg_ep_enable: No suitable fifo found.. <<from stm32mp151.dtsi>> – and total of entries can be 952 dwords.g-rx-fifo-size = <128>;g-np-tx-fifo-size = <512>;g-tx-fifo-size = <128 128 64 64 64 64 32 32>;Can somebody please explain how to configure it p
Hey.. there I hope all are doing well I have just upgraded my Ubuntu desktop version from 18.0 to 20.04Right now, I'm playing with STM32MP1 and that's how to flash the new image i have downloaded the STM32Cube programmer Linux version 2.8.0After successfully downloading when i try to run the programmer from the search bar then it's unable to run When i try to run from the command line then, at the same time I'm getting following JRE errors Can any one leads me the right solution?All suggestions and comments welcome :)Many Thanks ./STM32CubeProgrammerLauncher /home/mahendra/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin chdir /home/mahendra/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/. current dir /home/mahendra/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin (java:10912): Gdk-CRITICAL **: 16:49:55.369: gdk_x11_display_set_window_scale: assertion 'GDK_IS_X11_DISPLAY (display)' failed # # A fatal error has been detected by the Java Runtime Environment: # # SIGS
Hello experts,I am in purpose of developing driver of the peripheral CRYP1 with MDMA on STM32MP157C-DK2 board.I refer to STM32MP157 advanced Arm®-based 32-bit MPUs - Reference manual(RM0436),firstly in page 1160, CRYP1 is AHB5 source, and two stream are supported to MDMA,and at page 2025, CRYP_DIN address must be fixed. However according to description of MDMA address update configure register(MDMA_CxTCR) at page 1181, configuring DINC and SINC , address pointer fix is forbidden when AHB bus setted.In addition, setting DBUS and SBUS in MDMA_CxTBR, cannot be writen even eEN bit is 0.I wonder how CRYP1 can be implemented with MDMA.
EDIT: Found the solution, read for implementationI'm trying to get the MPU to exit from standby. PWR_ON goes to 0 as expected on shutdown, so far so good.I'm using PA2 (WKUP2) but it's not working at all...Is there anything special to setup in the device tree?I am using discrete power supplies as instructed in the app notes. (PWR_ON to enable pins)Here's my dts config for TF-A&pwr_regulators{ status = "okay"; secure-status = "okay"; /* USER CODE BEGIN 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_CSTOP_ALLOW_STANDBY_DDR_OFF>; /* USER CODE END pwr_regulators */ };Linux config partwkup { compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0>; autorepeat; status = "okay"; button@2 { label = "WakeUp2"; linux,code = <BTN_1>; interrupts-extended = <&exti_pwr 56 IRQ_TYPE_E
Hi there, I am writing an application that requires large streams of IPCC. At the moment I have allocated the RPMSG vdev0 and vrings to SRAM3+4 and I have increased the buffer size of each ring to 1024. The device tree now looks like this: vdev0vring0: vdev0vring0@10040000 { compatible = "shared-dma-pool"; reg = <0x10040000 0x2000>; no-map; }; vdev0vring1: vdev0vring1@10042000 { compatible = "shared-dma-pool"; reg = <0x10042000 0x2000>; no-map; }; vdev0buffer: vdev0buffer@10044000 { compatible = "shared-dma-pool"; reg = <0x10044000 0x8000>; no-map; };On the M4 Linker Script:RAM2_ipc_shm (xrw) : ORIGIN = 0x10040000, LENGTH = 0x00012000 I am trying to increase the VRING_SIZE to more than 16 ( Ideally I would like to increase it to maximum possible value in my configuration). In Openapm_conf: #VRING_NUM_BUFFS 16I have increased the memory in my device tree but I can not find the remoteproc config declaration for VRING s
Hi When generating for CubeIDE firmware executes fine in both production and engineering mode. But for IAR/EWARM only engineering mode works. And, yes, I am aware of production mode not supported out of the box. Manual copy to target and start required. Target STM32MP1-DK2 STMCubeMX 6.3.0 STMCubeIDE 1.7.0 EWARM 9.10.1 /* USER CODE BEGIN WHILE */ while (1) { static int loopCounter; loopCounter++; HAL_GPIO_WritePin(LED_Y_GPIO_Port, LED_Y_Pin, GPIO_PIN_SET); if( loopCounter < 10 ) { for(volatile int i = 0; i < 5000000; i++); } else { HAL_Delay(500); } HAL_GPIO_WritePin(LED_Y_GPIO_Port, LED_Y_Pin, GPIO_PIN_RESET); if( loopCounter < 10 ) { for(volatile int i = 0; i < 5000000; i++); } else { HAL_Delay(500); } /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ Reproduction method Generate STMCubeIDE and EWARM projects by changing in MX Project Manager from attached HAL_Tick_TIM6.ioc. Add code snippet to
Hi, In the Distribution Package, I have created a new machine inside my own layer. I'm running the environment script like this: MACHINE=stm32mp1-my_machine DISTRO=openstlinux-eglfs source layers/meta-st/scripts/envsetup.shHowever, it's not possible to use the bitbake command after running the script as the bblayer.conf file is missing theese 3 layers: meta-openembedded/meta-oemeta-openembedded/meta-pythonmeta-st/meta-st-stm32mp-addonsThe problem is solved and I can use bitbake when I add them manually to BBLAYERS inside bblayer.conf. However, I would like to do this automatically. The regular way to add a layer is to use: bitbake-layers add-layer /layers/meta-my-layerBut as explained, bitbake doesn't work before adding the missing layers. I have tried to run:MACHINE=stm32mp1-my_machine DISTRO=openstlinux-eglfs BSP_DEPENDENCY='/OpenSTLinux/Distribution-Package/openstlinux-5.10-dunfell-mp1-21-03-31/layers/meta-st/meta-st-stm32mp-addons /OpenSTLinux/Distribution-Package/openstlinux-5.10-
This part uses 354LFBGA package that does not bring out PG4 or PG5 where RGMII clocks are brought out. This would not allow connection to the RGMII_GTX_CLK or RGMII_CLK125 signals.
I'm creating a project using STM32CubeIDE for the STM32MP1. I've followed the steps outlined in AN5630. I notice in the root project, under CA7\DeviceTree, that the directories for kernel, tf-a and u-boot are created. I'm planning on creating either a bare metal project or an RTOS based project, not a Linux based project. What caused the generation of these directories and how do I get rid of them, assuming I need to? ThanksLee Thalblum
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.