CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]  2026/04/22 13:11:04

Modified files:
        sys/arch/octeon/dev: cn30xxgmx.c cn30xxgmxvar.h if_cnmac.c 

Log message:
sys/cnmac: support CN71xx 1000BASE-X ports

Some CN71xx boards describe active GMX ports only in the PIP device
tree, and mark the CPU facing link as cavium,sgmii-mac-1000x-mode with
cavium,disable-autonegotiation, but without a PHY handle. OpenBSD
otherwise trusts GMX0_INF_MODE for port discovery and insists on a PHY
attach in cn30xxgmx_attach(), so such ports never reach cnmac with a
usable media setup.

Enumerate CN71xx SGMII ports from pip/interface@N when that description
is present, carry the 1000x and disable-autonegotiation flags into the
per port state, and let cnmac seed fixed 1000baseT full duplex media for
that case. Ports that still use a normal SGMII PHY path continue to go
through cn30xxsmi_get_phy() and mii_attach() unchanged.

Tested on two CN71xx Octeon systems: Juniper SRX300, which uses
1000BASE-X DT ports, and Ubiquiti EdgeRouter 4, which does not.

OK: visa@

Reply via email to