> So it seems like what is missing is the ability of genphy_config_init to > detect the bits in the extended status register for 1000Base-X and add > the corresponding mode flags. It appears bit 15 for 1000Base-X full > duplex is standardized in 802.3 Clause 22, so I would expect Linux > should be able to detect that and add it as a supported mode for the > PHY. genphy_config_init is dealing with the "legacy" 32-bit mode masks > that have no bit for 1000BaseX though.. how is that intended to work?
Hi Robert I think you are looking at an old genphy_config_init(). The u32 has been replaced. Adding: #define ESTATUS_1000_XFULL 0x8000 /* Can do 1000BX Full */ #define ESTATUS_1000_XHALF 0x4000 /* Can do 1000BT Half */ and if (val & ESTATUS_1000_XFULL) linkmode_set_bit(ETHTOOL_LINK_MODE_1000baseX_Full_BIT, features); should not be a problem. Andrew