STM32N657 ETH DMA TX stuck in Secure-only configuration
Hello ST Support,
I reproduced an ETH TX DMA issue on STM32N6570-DK where the DMA never consumes the TX descriptor.
Environment
- Board: STM32N6570-DK
- Security: TrustZone enabled, Secure-only platform configuration
- PHY: ID1=0x001C, ID2=0xC916, link-up confirmed
- Interface: RGMII, 1G link
Observed behavior
- HAL_ETH_Transmit*() submit succeeds (st=0)
- TX descriptor OWN bit remains 1 (never cleared by DMA)
- TX complete callback/counter never increments
- DMA enters/keeps TBU state
- Key symptom: DMACCATXBR remains 0 (buffer base is never loaded)
Representative logs
- [eth][post-start] dlar=0x3402C1E0 dtpr=0x3402C1E0 rlr=0x00000003 txcr=0x00200001 dmacc=0x00080218 txqomr=0x0007000A
- [tx][path] st=0 own=0->1 catxdr=0x3402C1E0->0x3402C1E0 catxbr=0x00000000->0x00000000 csr=0x00000000->0x00000004
- [tx][stall] own=1 ... catxdr=0x3402C1E0 catxbr=0x00000000 csr=0x00000004 ... dmad=0x00006400 tps0=0x00006000 axr=0
axw=0
What we already tried (same result in all cases)
1. EDSE on/off (txcr=0x10200001 / 0x00200001)
2. DSL forced/unforced (0/64-bit skip)
3. Descriptor/buffer placement changes:
- ETHRAM (0x341F8xxx)
- AXI SRAM (0x3402xxxx, non-cacheable)
4. RIFSC/RISAF adjustments:
- forced RIMC_ATTR secure/privileged attributes
- widened RISAF2/RISAF6 region permissions
5. CH0-only bring-up attempts, CH1 disabled/separated
6. TBU clear + re-kick (rewrite DTPR)
7. Manual single-descriptor ring probe (DTPR=DLAR and DTPR=DLAR+stride)
Additional notes
- RIMC_ATTR sweep over indices 0..12 produced no hit
- RISAF illegal access latches show no meaningful fault for this path
- No meaningful AXI read/write error status (AXRHSTS/AXWHSTS=0)
Questions
1. On STM32N657, is ETH DMA outbound security attribute control actually under RIFSC RIMC_ATTR?
2. What is the exact outbound master index/mapping for ETH DMA?
3. Is there any known limitation/errata for ETH DMA descriptor fetch in Secure-only configurations?
4. Do you have a recommended initialization sequence for the pattern:
CATXBR=0 + TBU + OWN stuck?
