On Wed, Aug 21, 2019 at 11:17:23PM +0300, Vladimir Oltean wrote: > Of course PPS with a dedicated hardware receiver that can take input > compare timestamps is always preferable. However non-Ethernet > synchronization in the field looks to me like "make do with whatever > you can". I'm not sure a plain GPIO that raises an interrupt is better > than an interrupt-driven serial protocol controller - it's (mostly) > the interrupts that throw off the precision of the software timestamp. > And use Miroslav's pps-gpio-poll module and you're back from where you > started (try to make a sw timestamp as precise as possible). Right, it might be better, might not. You can consider hacking a local time stamp into the ISR. Also, if one of your MACs has a input event pin, you can feed the switch's PPS output in there. > wouldn't be my first choice. But DSA could have that built-in, and > with the added latency benefit of a MAC-to-MAC connection. > Too bad the mv88e6xxx driver can't do loopback timestamping, that's > already 50% of the DSA drivers that support PTP at all. An embedded > solution for this is less compelling now. Let me back track on my statement about mv88e6xxx. At the time, I didn't see any practical way to use the CPU port for synchronization, but I forget exactly the details. Maybe it is indeed possible, somehow. If you can find a way that will work on your switch and on the Marvell, then I'd like to hear about it. Thinking back... One problem is this. PTP requires a delay measurement. You can send a delay request from the host, but there will never be a reply. Another problem is this. A Sync message arriving on an external port is time stamped there, but then it is encapsulated as a tagged DSA management message and delivered out the CPU port. At this point, it is no longer a PTP frame and will not be time stamped at the CPU port on egress. Thanks, Richard