On 17 Mar 2018 at 15:50, Andrew Lunn wrote: > On Sat, Mar 17, 2018 at 08:39:00AM +0100, Frantisek Rysanek wrote: > > On 16 Mar 2018 at 22:02, Andrew Lunn wrote: > > > > > > Does ethtool -m show anything useful? > > > > > > > Not much. "unsupported". > > static int igb_get_module_info(struct net_device *netdev, > struct ethtool_modinfo *modinfo) > { > struct igb_adapter *adapter = netdev_priv(netdev); > struct e1000_hw *hw = &adapter->hw; > u32 status = 0; > u16 sff8472_rev, addr_mode; > bool page_swap = false; > > if ((hw->phy.media_type == e1000_media_type_copper) || > (hw->phy.media_type == e1000_media_type_unknown)) > return -EOPNOTSUPP; > > Suggests that the driver does not know you have a fibre module. > Good! I'll check this out. Even if it means that I have to hack the "sequence of initialization" in the flow of driver code... (again.) > > Right now I've modded igb_init_i2c() to engage the bit-banging > > i2c driver for the i210 too > > I don't think that will work. The datasheet for the i210 talks about > two registers for I2C/MDIO which are not bit-banging. Only the i350 > uses bit-banging. > >From the i210 datasheet, page 477: chapter 8.17.9 "SFP I2C Parameters" - reg. I2CPARAMS (0x102C; R/W) bit 8 "I2CBB_EN" = I2C bit-bang enable. And about 6 more bits for SDA and SCL direction, input and output. Looking through existing code of the bit-banging callbacks for i350, their function would seem identical between the i210 and i350. I may check the bit definition macros again, if the scope shows nothing.
If the HW implementation of the I2C protocol doesn't work for some reason, I can as well try bit-banging it. Thanks for your continued input :-) Frank