Re: [PATCH spi for-5.4 0/5] Deterministic SPI latency with NXP DSPI driver
From: Richard Cochran <richardcochran@gmail.com>
Date: 2019-08-22 14:16:41
Also in:
linux-spi
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