Messages in this thread | | | From | Rafal Ozieblo <> | Subject | RE: [RFC PATCH net-next v4 1/2] macb: Add 1588 support in Cadence GEM. | Date | Mon, 2 Jan 2017 09:36:10 +0000 |
| |
> -----Original Message----- > From: Rafal Ozieblo > Sent: 28 grudnia 2016 14:23 > Subject: RE: [RFC PATCH net-next v4 1/2] macb: Add 1588 support in Cadence GEM. > > > +static void gem_ptp_tx_hwtstamp(struct macb *bp, struct sk_buff *skb, > > + int peer_ev) > > +{ > > + struct skb_shared_hwtstamps *shhwtstamps = skb_hwtstamps(skb); > > + struct timespec64 ts; > > + u64 ns; > > + > > + /* PTP Peer Event Frame packets */ > > + if (peer_ev) { > > + ts.tv_sec = gem_readl(bp, PEFTSL); > > + ts.tv_nsec = gem_readl(bp, PEFTN); > > + > > + /* PTP Event Frame packets */ > > + } else { > > + ts.tv_sec = gem_readl(bp, EFTSL); > > + ts.tv_nsec = gem_readl(bp, EFTN); > > + } > I'm wondering what is a difference between timestamp in transmit buffer descriptor (Word 2 and 3) and PTP Event Frame Transmitted Seconds/Nanoseconds Register (0x1E0, 0x1E4). > According Cadence Hardware team: "It is just that some customers prefer to have the time in the descriptors as that is provided per frame. The registers are simply overwritten when a new event frame is transmitted/received and so software could miss it." The question is are you sure that you read timestamp for current frame? (not for the next frame).
| |