2025-07-24 10:22 AM
I started a fresh CubeMX project with board selector "STM32MP257F-EV1 board", chose A35 as master, and initialized all peripherals to their defaults.
Now, I'm trying to kill PCIE entirely from the board. I removed it from both U-boot and Linux contexts (where it's present by default), and I also reset its corresponding GPIO pins to reset state (PCIE_NRST and PCIe_NWAKE_WKUP2). When I try to put system into low power mode, it does go to sleep as normal:
root@stm32mp2-e3-d8-80unknownunknown:~# systemctl suspend
root@stm32mp2-e3-d8-80unknownunknown:~#
[ 615.683459] PM: suspend entry (deep)
[ 615.687390] Filesystems sync: 0.003 seconds
[ 615.693558] Freezing user space processes
[ 615.695767] Freezing user space processes completed (elapsed 0.002 seconds)
[ 615.699929] OOM killer disabled.
[ 615.702971] Freezing remaining freezable tasks
[ 615.708837] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 615.714911] printk: Suspending console(s) (use no_console_suspend to debug)
However, when I wake it up with WAKE_UP button, I see this output after which the board stalls:
NOTICE: CPU: STM32MP257FAI Rev.Y
NOTICE: Model: STMicroelectronics STM32MP257F-EV1 STM32CubeMX board - openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11
NOTICE: Board: MB1936 Var1.0 Rev.D-01
NOTICE: Reset reason: System exits from Standby for CA35 (0xd02030)
INFO: PMIC2 version = 0x11
INFO: PMIC2 product ID = 0x20
INFO: FCONF: Reading TB_FW firmware configuration file from: 0xe011000
INFO: FCONF: Reading firmware configuration information for: stm32mp_fuse
INFO: FCONF: Reading firmware configuration information for: stm32mp_io
INFO: Using EMMC
INFO: Instance 2
INFO: Boot used partition fsbl1
NOTICE: BL2: v2.10-stm32mp2-r2.0(debug):()
NOTICE: BL2: Built : 20:06:37, Jul 10 2025
INFO: BL2: Skip loading image id 26
INFO: BL2: Doing platform setup
INFO: RAM: DDR4 32bits 1200000kHz
INFO: BL2: Loading image id 1
INFO: Loading image id=1 at address 0xe000000
INFO: Image id=1 loaded: 0xe000000 - 0xe000326
INFO: FCONF: Reading FW_CONFIG firmware configuration file from: 0xe000000
INFO: FCONF: Reading firmware configuration information for: risaf_config
INFO: RISAF2: No configuration in DT, use default
INFO: FCONF: Reading firmware configuration information for: dyn_cfg
INFO: BL31 max size = 0x17000 (94208B)
INFO: BL2: Loading image id 3
INFO: Loading image id=3 at address 0xe000000
INFO: Image id=3 loaded: 0xe000000 - 0xe0144c5
INFO: BL2: Skip loading image id 19
INFO: BL2: Skip loading image id 4
INFO: BL2: Skip loading image id 8
INFO: BL2: Skip loading image id 2
INFO: BL2: Skip loading image id 5
NOTICE: BL2: Booting BL31
INFO: Entry point address = 0xe000000
INFO: SPSR = 0x3cd
INFO: ARM GICv2 driver initialized
Then, it reboots with this reset reason:
NOTICE: Reset reason: IWDG system reset (iwdgX_out_rst) (0x802134)
Any help would be much appreciated.
2025-07-25 6:05 AM - edited 2025-07-25 6:05 AM
Hello,
Was this sequence functional before removing the PCIE device? If so, maybe there's a clock management issue for the RISAF that shares its clock with the PCIE device. You can try setting this clock as critical in core/drivers/clk/clk-stm32mp25.c (OP-TEE).
There's an array clk_stm32_clock_is_critical where you can add ck_icn_p_pcie.
Are there still RISAF5 RIF configuration present in the RIF configuration board file in OP-TEE?
I hope this helps,
Gatien
2025-07-25 6:06 AM
If the RISAF5 is still enabled in OP-TEE device tree, please disable it as it's of no use. That might even be better.