> -----Original Message----- > From: Keller, Jacob E [mailto:jacob.e.kel...@intel.com] > Sent: Friday, August 09, 2019 8:31 AM > To: Matthew Via <v...@matthewvia.info>; linuxptp-users@lists.sourceforge.net > Subject: Re: [Linuxptp-users] ptp4l with freescale dpaa2 ethernet > > > -----Original Message----- > > From: Matthew Via [mailto:v...@matthewvia.info] > > Sent: Friday, August 09, 2019 8:07 AM > > To: linuxptp-users@lists.sourceforge.net > > Subject: [Linuxptp-users] ptp4l with freescale dpaa2 ethernet > > > > Hi, I am trying to get ptp4l working on an NXP Bluebox and the dpaa2 > > ethernet > driver. > > The kernel I'm using appears to have code for hardware timestamping in the > ethernet > > driver, though I needed to pull in patches from a more recent kernel to add > > support > > for ethtool to set the timestamping options. The relevent ethtool and > > dpaa2 drivers > > can be seen > > > https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/freescale/dpaa2 > > /dpaa2-eth.c and > > > https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/freescale/dpaa2 > > /dpaa2-ethtool.c . > > > > ethtool -T eno0 shows: > > Time stamping parameters for eno0: > > Capabilities: > > hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) > > hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) > > hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) > > PTP Hardware Clock: 0 > > Hardware Transmit Timestamp Modes: > > off (HWTSTAMP_TX_OFF) > > on (HWTSTAMP_TX_ON) > > Hardware Receive Filter Modes: > > none (HWTSTAMP_FILTER_NONE) > > all (HWTSTAMP_FILTER_ALL) > > > > > > But when I fire up ptp4l with `ptp4l -i eno0 -H -m`, I get: > > This is requesting hardware timestamping. > > > ptp4l[516.260]: selected /dev/ptp0 as PTP clock > > ptp4l[516.271]: driver changed our HWTSTAMP options > > ptp4l[516.271]: tx_type 1 not 1 > > ptp4l[516.271]: rx_filter 1 not 12 > > ptp4l[516.271]: port 1: INITIALIZING to LISTENING on INITIALIZE > > ptp4l[516.271]: port 0: INITIALIZING to LISTENING on INITIALIZE > > ptp4l[522.612]: port 1: LISTENING to MASTER on > > ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES > > ptp4l[522.612]: selected best master clock 00049f.fffe.052fee > > ptp4l[522.612]: assuming the grand master role > > ptp4l[523.613]: timed out while polling for tx timestamp > > ptp4l[523.614]: increasing tx_timestamp_timeout may correct this issue, but > > it is > > likely caused by a driver bug > > ptp4l[523.614]: port 1: send sync failed > > ptp4l[523.615]: port 1: MASTER to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED) > > ptp4l[539.634]: driver changed our HWTSTAMP options > > ptp4l[539.634]: tx_type 1 not 1 > > ptp4l[539.635]: rx_filter 1 not 12 > > ptp4l[539.635]: port 1: FAULTY to LISTENING on FAULT_CLEARED > > ptp4l[546.345]: port 1: LISTENING to MASTER on > > ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES > > ptp4l[546.346]: selected best master clock 00049f.fffe.052fee > > ptp4l[546.346]: assuming the grand master role > > ptp4l[547.347]: timed out while polling for tx timestamp > > ptp4l[547.347]: increasing tx_timestamp_timeout may correct this issue, but > > it is > > likely caused by a driver bug > > This usually indicates the driver is not sending the Tx timestamp back to the > stack, > especially if you increase it past a few milliseconds. > > > ptp4l[547.348]: port 1: send sync failed > > ptp4l[547.348]: port 1: MASTER to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED) > > ptp4l[563.367]: driver changed our HWTSTAMP options > > ptp4l[563.367]: tx_type 1 not 1 > > ptp4l[563.367]: rx_filter 1 not 12 > > ptp4l[563.367]: port 1: FAULTY to LISTENING on FAULT_CLEARED > > ptp4l[569.932]: port 1: LISTENING to MASTER on > > ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES > > > > > > Everything I've read suggests that this is usually the driver not using > > skb_tstamp_tx > in > > the right place, or in a buggy manner -- I've tried increasing the timeout > > to over > 1000 > > ms, and that had no effect. This happens consistently for each packet > > though. I > > added a netdev_info call in dpaa2-eth.c where it calls skb_tstamp_tx and I > > consistently get good looking timestamps each time ptp4l tries to send. > > Does > anyone > > have any idea what might not be working here? > > But skb_tstamp_tx is for software timestamping, if I recall correctly. >
I didn't. This is the correct function to call for reporting a Tx timestamp. The software timestamping function is skb_tx_timestamp(skb) Hmm, Jake > > > > Additionally, I added a skb_tx_timestamp call in the transmit path and the > > relevent > > software timestamping flags to the ethtool interface in the hopes that I > > could at > least > > use software timestamping, and I get the exact same output from ptp4l as > > above > > (with the -S option). > > > > If anyone has any guidance on how to getting either hardware or software > > timestamping working, I would appreciate it. > > Try using the software timestamping option for ptp4l, and see if that works > first. > (Should be -S) > > Thanks, > Jake > > > > > Thanks, Matthew > > -- > > Matthew Via > > v...@matthewvia.info > > > > > > _______________________________________________ > > Linuxptp-users mailing list > > Linuxptp-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/linuxptp-users > > > _______________________________________________ > Linuxptp-users mailing list > Linuxptp-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linuxptp-users _______________________________________________ Linuxptp-users mailing list Linuxptp-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-users