Hi Everyone,
I'm working on media clock generation using the GMAC PPS module and plan to use eDMA to update the target time (seconds and nanoseconds) dynamically. Here's a summary of my approach:
Implementation Overview:
The GMAC PTP reference clock is configured at 125 MHz, which starts the system time.
The Target Time Seconds and Nanoseconds registers are updated to generate a pulse every second.
PPS is configured in Media Clock Generation (MCGR) mode, which should assert the mcgr_dma_req_o signal.
I selected DMAMUX source 28 – “IEEE 1588 PTP timer ch[0]”, assuming it maps to mcgr_dma_req_o[0] and thus triggers an eDMA peripheral request.
The TCD is set up to copy the next target time when triggered.
Observed Behavior:
When the system time reaches or exceeds the configured target time, the TSTARGT0 bit in the MAC_Timestamp_Status register is correctly set — indicating that mcgr_dma_req_o[0] is asserted.

However, no DMA transfer is triggered; the current iteration count remains unchanged.
Questions:
Is this method valid for generating periodic clock pulses using the PPS module and eDMA?
Is the DMAMUX configuration (source 28: IEEE 1588 PTP timer ch[0]) correct for this scenario?
Does the assertion of mcgr_dma_req_o actually trigger an eDMA peripheral request?
The naming conventions seem inconsistent across resources:
DMAMUX sheet: IEEE 1588 PTP timer ch[i]
Reference Manual: mcgr_dma_req_o[i]
SDK Code: DMA_MUX_1_GMAC_0_PTP_TIMER_CH[i]
Conclusion:
I would like to confirm: when the system time meets the configured target time, the mcgr_dma_req_o signal is asserted — is this signal routed to eDMA as a valid peripheral request?
I have attached the sample main.c file for reference. Please have a look and let me know what is going wrong.
Any insights would be greatly appreciated.
Best Regards,
Sathish.