Dear Richard,

Ah yes I have figured out that the problem is not ts2phc, it should be
fixed in igb_extts() at igb_main.c

        if (hw->mac <https://elixir.bootlin.com/linux/v5.19.17/C/ident/mac>.type
== e1000_82580 <https://elixir.bootlin.com/linux/v5.19.17/C/ident/e1000_82580>
||
>           hw->mac 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/mac>.type == e1000_i354 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/e1000_i354> ||
>           hw->mac 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/mac>.type == e1000_i350 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/e1000_i350>) {
>               s64 <https://elixir.bootlin.com/linux/v5.19.17/C/ident/s64> ns 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/ns> = rd32 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/rd32>(auxstmpl);
>
>               ns <https://elixir.bootlin.com/linux/v5.19.17/C/ident/ns> += 
> ((s64 <https://elixir.bootlin.com/linux/v5.19.17/C/ident/s64>)(rd32 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/rd32>(auxstmph) & 0xFF)) 
> << 32;
>               ts <https://elixir.bootlin.com/linux/v5.19.17/C/ident/ts> = 
> ns_to_timespec64 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/ns_to_timespec64>(ns 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/ns>);
>       } else {
>               ts 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/ts>.tv_nsec 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/tv_nsec> = rd32 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/rd32>(auxstmpl);
>               ts 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/ts>.tv_sec 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/tv_sec>  = rd32 
> <https://elixir.bootlin.com/linux/v5.19.17/C/ident/rd32>(auxstmph);
>       }
>
> here the driver does treat the AUXSTMPH resolution and valid bits in the
right way, but forgot to convert the raw circle counter value to
valid time stamp value.

I'll test the patch next week

Thanks for your attention

Richard Cochran <richardcoch...@gmail.com> 于2023年5月26日周五 22:09写道:

> On Fri, May 26, 2023 at 03:02:43PM +0800, egg car wrote:
>
> > It's a bit complicated to use, I see why they use 'struct timecounter'
> > instead of hardware PHC
> > counter, and in this case all the timestamp regs cannot be used directly.
> > Needs more time to find out how to fix this, either the driver or
> 'ts2phc'
> > program.
>
> Don't try to "fix" ts2phc.  That won't make the device driver work any
> better.
>
> Thanks,
> Richard
>
>
>
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to