Ubiquiti DAC-SFP10-1M cable compatibility

I am trying to get an Ubiquiti DAC-SFP10-1M cable to work (connecting to an Ubiquiti switch). It seems to be recognised by the kernel:

[    7.647244] sfp dpmac2_sfp: module Ubiquiti Inc.    DAC-SFP10-1M     rev A3   sn AH25092006215    dc 250915  

However, I don’t get a link, and the “Module state” stays as “waitdev”:

# cat /sys/kernel/debug/dpmac2_sfp/state 
Module state: waitdev
Module probe attempts: 0 0
Device state: detached
Main state: down
Fault recovery remaining retries: 0
PHY probe remaining retries: 0
Signalling rate: 0 kBd
Rate select threshold: 0 kBd
moddef0: 1
rx_los: 0
tx_fault: 0
tx_disable: 1
rs0: 0
rs1: 0

Probing the module with ethtool doesn’t work either:

# ethtool -m eth8
netlink error: Operation not supported

I’m running Arch with kernel 6.19.6-1-aarch64-ARCH, and the SFP ports are configured in 10G mode. Interestingly, I previously had the ports configured in 1G mode, and when plugging in the cable in that mode, I got a working link. But after reflashing the bl2_qspi.pbl file, I end up in the state described above.

Is there anything else I can try to get the cable to work, or is this a fundamental compatibility issue?

My guess is that you have a 1G DPC (data path configuration) on your flash. In the past swapping to a 1G SFP setup required changing the DPC (to signal 1000BASE-X mode) alongside the BL2, but our (more recent) U-Boot now makes the required changes to the DPC at boot.

Flashing the dpc partition with the default dpc.0x1D-0x0D.dtb should fix it.

Usually the phylink driver will log a warning of “validation failed …” if the MAC mode (like 10gbase-r) does not match the SFP’s supported mode (1000base-x). My understanding is that waitdev is happening because the phylink is waiting for the MAC driver to change it’s mode to one compatible with the SFP. Unfortunately this version of DPAA2 hardware does not have that ability.

1 Like

Indeed, reflashing dpc fixed it - thanks a bunch! :smiley: