SPI clock not working on STM32MP257F-DK: CS toggles but SCK never clocks, despite firewall open and clocks running
OpenSTLinux: Starter Package, plain image (FlashLayout_sdcard_stm32mp257f-dk-optee.tsv), version 5.0.17-openstlinux-6.6-yocto-scarthgap-mpu-v26.06.10
M33 firmware: Zephyr RTOS (4.4.99), board target stm32mp257f_dk/stm32mp257fxx/m33, loaded and started from Linux via remoteproc.
Goal: Drive a SPI device (Qorvo DW3000) from the Cortex-M33 over SPI6, which is exposed on the CN5 header (GPIO10/SPI6_MOSI = PC7, GPIO9/SPI6_MISO = PC4, GPIO11/SPI6_SCK = PF7).
When the M33 firmware performs a SPI transfer, the GPIO chip-select line toggles correctly (verified on a logic analyzer), but SCK never produces any clock pulses & the line stays flat. Consequently no data is exchanged (MOSI/MISO flat). The transfer call itself returns; it just produces no clock.
What I have already checked:
-RIFSC firewall: SPI6 shows as NSEC, NPRIV, CID filtering disabled (from the RIFSC debug dump) — i.e. not blocked/assigned exclusively to the A35.
-Clocks: clk_summary shows both ck_icn_p_spi6 (~200 MHz) and ck_ker_spi6 (~133 MHz) present.
-Linux side: SPI6 is status = "disabled" in the running device tree, so Linux is not using it. In the Zephyr device tree, SPI6 is enabled with correct pinctrl (PF7/PC4/PC7) and the generated DTB confirms clocks + pinctrl resolved.
-From the M33 I manually set SPI6EN (bit 1) in RCC_SPI6CFGR (0x4420076C); the bit reads back as set (so the M33 can write RCC), but SCK still does not toggle.
-I do not see any obvious IAC/SERC firewall error on the Linux console when the M33 runs.
On the plain STM32MP257F-DK Starter Package image, with SPI6 disabled on the Linux side and the RIFSC firewall not blocking it, what is required for the Cortex-M33 to actually drive SPI6? thank you!
