Hi,
I have been working on a PTP solution for the the MSP432 Launchpad dev board. Things are starting to work but I still have a few issues.
So far:
I have a Trimble Thunderbolt GM200 PTP source connected to my Launchpad via a Netgear GS108E managed switch.
This allows me to set up a monitor port so I can see the traffic on Wireshark on a PC.
To set up PTP timestamping, I added a Net Start callback function in the config GUI (not sure if this is the best place but it seems to work):
void netStartHook(){ Display_printf(display, 0, 0, "Network Start hook: ");
uint32_t ui32Config; uint32_t ui32SubSecondInc = 40;
ui32Config = EMAC_TS_PTP_VERSION_2 | EMAC_TS_DIGITAL_ROLLOVER | EMAC_TS_MAC_FILTER_DISABLE | EMAC_TS_UPDATE_COARSE | EMAC_TS_ALL | EMAC_TS_PROCESS_IPV4_UDP;
EMACTimestampConfigSet(EMAC0_BASE, ui32Config, ui32SubSecondInc);
EMACTimestampEnable(EMAC0_BASE);}
I have joined the PTP multicast, receive the PTP sync messages every second, and respond to every other (arbitrary choice) SYNC with a DELAY_REQ message. The PTP server responds to the DELAY_REQ with a DELAY_RESP message.
All of these messages show up on Wirsehark as expected.
I have found the Tx and RX DMA descriptor blocks in the debugger and can see them updating as PTP messages come and go - see screenshot. The timestamps seconds and nanoseconds are in the 2nd and 3rd column from the right.

Problems:
1) The Tx descriptor timestamps are not getting updated whereas the Rx descriptor timestamps appear correct. I don't know if I need to do something else to request Tx message timestamps, or if my messages are faulty and don't look like proper PTP messages - Wireshark shows them as PTPv2.
2) I have found the DMA descriptors in the debugger and I assume I can get their addresses programmatically via the EMACRxDMADescriptorListGet() and EMACTxDMADescriptorListGet() functions.
There is an array of 4 descriptors each for Tx and Rx. As my network currently has very few messages, I can see the updates cycling through them, via the debugger.
I am not sure how I know which descriptor to read, to get the timestamp for the message I have just received or transmitted. I could read all 4 and take the highest timestamp, but I hope there might be some better way.
TIA
Jim