Ali Gholami Rudi wrote: > "Duyck, Alexander H" <[email protected]> wrote: >> Ali Gholami Rudi wrote: >>> But I tried reading E1000_RXSTMP[LH] registers as soon as >>> E1000_RXD_STAT_TS is set with no luck; ie. the timestamp was >>> activated only for ptp packets (even tried reading those registers >>> regardless of .._STAT_TS without success). So as you said, that >>> probably means HWTSTAMP_FILTER_ALL is not working on my HW. Is >>> there a way to find out if HWTSTAMP_FILTER_ALL is supported by the >>> HW so that the igb driver return -ERANGE from the ioctl()? >> >> I think I see the problem. If TSYNCRXCTL.TYPE=100b, aka >> HWTSTAMP_FILTER_ ALL, all the packets are time stamped; however, >> this bit is never set as the time stamp value is not locked. > > But I remember reading E1000_RXSTMP[LH] when packets arrived > regardless of E1000_RXD_STAT_TS and AFAIR, it contained all zeros or > something like that for non-ptp packets. > > Thanks, > Ali
The problem is that there is only one register. As a result when you read the E1000_RXSTMP[LH] you end up reading the last timestamp that was recorded, not necessarily the one for your packet. This is due to the fact that all locking of the registers is disabled when set to 100b. The next version of the hardware, the 82580 MAC, will have support for placing the timestamps into the packet header itself so then when you enable the timestamp all mode you will be able to differentiate the timestamps between packets. Thanks, Alex ------------------------------------------------------------------------------ Return on Information: Google Enterprise Search pays you back Get the facts. http://p.sf.net/sfu/google-dev2dev _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel
