mbox series

[net,v3,0/3] net: dsa: mv88e6xxx: fix MV88E6393X PHC frequency on internal clock

Message ID 20241020063833.5425-1-me@shenghaoyang.info (mailing list archive)
Headers show
Series net: dsa: mv88e6xxx: fix MV88E6393X PHC frequency on internal clock | expand

Message

Shenghao Yang Oct. 20, 2024, 6:38 a.m. UTC
The MV88E6393X family of switches can additionally run their cycle
counters using a 250MHz internal clock instead of the usual 125MHz
external clock [1].

The driver currently assumes all designs utilize that external clock,
but MikroTik's RB5009 uses the internal source - causing the PHC to be
seen running at 2x real time in userspace, making synchronization
with ptp4l impossible.

This series adds support for reading off the cycle counter frequency
known to the hardware in the TAI_CLOCK_PERIOD register and picking an
appropriate set of scaling coefficients instead of using a fixed set
for each switch family.

Patch 1 groups those cycle counter coefficients into a new structure to
make it easier to pass them around.

Patch 2 modifies PTP initialization to probe TAI_CLOCK_PERIOD and
use an appropriate set of coefficients.

Patch 3 adds support for 4000ps cycle counter periods.

Changes since v2 [2]:

- Patch 1: "net: dsa: mv88e6xxx: group cycle counter coefficients"
  - Moved declaration of mv88e6xxx_cc_coeffs to avoid moving that in
    Patch 2.

- Patch 2: "net: dsa: mv88e6xxx: read cycle counter period from hardware"
  - Removed move of mv88e6xxx_cc_coeffs declaration.

- Patch 3: "net: dsa: mv88e6xxx: support 4000ps cycle counter periods"
  - No change.

Thanks,

Shenghao

[1] https://lore.kernel.org/netdev/d6622575-bf1b-445a-b08f-2739e3642aae@lunn.ch/
[2] https://lore.kernel.org/netdev/20241006145951.719162-1-me@shenghaoyang.info/

Shenghao Yang (3):
  net: dsa: mv88e6xxx: group cycle counter coefficients
  net: dsa: mv88e6xxx: read cycle counter period from hardware
  net: dsa: mv88e6xxx: support 4000ps cycle counter period

 drivers/net/dsa/mv88e6xxx/chip.h |   6 +-
 drivers/net/dsa/mv88e6xxx/ptp.c  | 108 +++++++++++++++++++++----------
 2 files changed, 77 insertions(+), 37 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Oct. 24, 2024, 11 a.m. UTC | #1
Hello:

This series was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Sun, 20 Oct 2024 14:38:27 +0800 you wrote:
> The MV88E6393X family of switches can additionally run their cycle
> counters using a 250MHz internal clock instead of the usual 125MHz
> external clock [1].
> 
> The driver currently assumes all designs utilize that external clock,
> but MikroTik's RB5009 uses the internal source - causing the PHC to be
> seen running at 2x real time in userspace, making synchronization
> with ptp4l impossible.
> 
> [...]

Here is the summary with links:
  - [net,v3,1/3] net: dsa: mv88e6xxx: group cycle counter coefficients
    https://git.kernel.org/netdev/net/c/67af86afff74
  - [net,v3,2/3] net: dsa: mv88e6xxx: read cycle counter period from hardware
    https://git.kernel.org/netdev/net/c/7e3c18097a70
  - [net,v3,3/3] net: dsa: mv88e6xxx: support 4000ps cycle counter period
    https://git.kernel.org/netdev/net/c/3e65ede526cf

You are awesome, thank you!