Thread (12 messages) 12 messages, 4 authors, 2020-02-26

Re: [RFC PATCH 0/2] AT8031 PHY timestamping support

From: Michael Walle <hidden>
Date: 2020-02-26 00:07:34
Also in: lkml

Am 26. Februar 2020 00:50:40 MEZ schrieb Andrew Lunn [off-list ref]:
On Wed, Feb 26, 2020 at 12:08:17AM +0100, Michael Walle wrote:
quoted
This patchset is the current state of my work for adding PHY
timestamping
quoted
support. I just wanted to post this to the mailinglist before I never
do
quoted
it. Maybe its a starting point for other people. That being said, I
wouldn't mind comments ;) The code basically works but there are
three
quoted
major caveats:

 (1) The reading of timestamps via MDIO sometimes return wrong
values. What
quoted
     I see is that a part of the timestamp corresponds to the new
timestamp
quoted
	 while another part still contains old values. Thus at the moment,
I'm
quoted
	 reading the registers twice. I don't know if the reading actually
	 affects the update of the timestamp or the different timing (my
MDIO
quoted
	 bus is rather slow, so reading the timestamp a second time take
some
quoted
	 amount of time; but I've also tested with some delays and it didn't
	 had any effects). There is also no possibility to read the
timestamp
quoted
	 atomically :(
Hi Michael

That sounds fundamentally broken. Which would be odd. Sometimes there
is a way to take a snapshot of the value. Reading the first word could
trigger this snapshot. Or the last word, or some status register. One
would hope the datasheet would talk about this.
Hi Andrew

This might be the case, but the datasheet (some older revision can be found on the internet, maybe you find something) doesn't mention it. Nor does the PTP "guide" (I don't know the exact name, I'd have to check at work) of this PHY. Besides the timestamp there's also the sequence number and the source port id which would need to be read atomically together with the timestamp. 

I might give it a try reading the whole tx or rx block (sequenceId, sourcePortId, timestamp) sequentially. 

-michael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help