lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 14 Jan 2021 05:43:26 +0100
From:   Marek Behún <>
Cc:     Russell King <>,
        Andrew Lunn <>, Jakub Kicinski <>,,,
        Marek Behún <>
Subject: [PATCH net-next v5 0/5] Support for RollBall 10G copper SFP modules


this is v5 of series adding support for RollBall/Hilink SFP modules.

Checked with: --max-line-length=80

Changes from v4:
- added patch adding SFP_PASSWORD = 0x7b to sfp.h
- patch adding RollBall MDIO I2C protocol support
  - removed forgotten comment that was no longer true
  - we now try to restore the page if the I2C transfer failed
  - unfortunately we cannot simply move the code to do paged I2C
    transfers to sfp.c, because sfp.c depends on code inmdio-i2c.c,
    and if we added dependency the other way, I don't know what
    would happen to module loader (since both SFP and MDIO_I2C can
    be compiled as modules).
    This can be refactored later, when someone needs paged I2C
    accesses in sfp.c
- added Reviewed-by tags

Changes from v3:
- RollBall mdio-i2c driver now sets/restores SFP_PAGE for every MDIO
  I first wanted to achieve this operation (setting
  SFP_PAGE/doing MDIO/restoring SFP_PAGE) via one call do i2c_transfer,
  by constructing msgs array in such a way, but it turned out that this
  doesn't work on RollBall SFPs, because changed SFP_PAGE takes into
  account only after i2c_transfer ends.
  So instead I use i2c_lock_bus/serveral __i2c_transfers/i2c_unlock_bus.
- I have removed the patch which changes MACTYPE in the marvell10g
  driver, since Russell has in his net-queue a better solution. I still
  think that my patch would have sufficed temporarily (and would not
  cause regressions), but nobody wanted to review it. If you think that
  I should sent this series again with that patch, please let me know.

Changes from v2:
- added comment into the patch adding support for RollBall I2C MDIO
  protocol, saying that we expect the SFP_PAGE not to be changed by
  the SFP code, as requested by Russell. If, in the future, SFP code
  starts modifying SFP_PAGE, we will have to handle it in mdio-i2c
- destruction of I2C MDIO bus in patch 3/5 now depends on whether the
  MDIO bus is not NULL, instead of whether PHY exists, as suggested by
- changed waiting time for RollBall module to initialize from 30 seconds
  to 25 seconds. Testing shows that it is never longer than 21-22
  seconds, so waiting 25 seconds instead of 30 is IMO safe enough
- added Russell's Reviewed-by tags where relevant

Changes from v1:
- wrapped to 80 columns as per Russell's request
- initialization of RollBall MDIO I2C protocol moved from sfp.c to
  mdio-i2c.c as per Russell's request
- second patch removes the 802.3z check also from phylink_sfp_config
  as suggested by Russell
- creation/destruction of mdiobus for SFP now occurs before probing
  for PHY/after releasing PHY (as suggested by Russell)
- the last patch became a little simpler after the above was done


Marek Behún (5):
  net: sfp: add SFP_PASSWORD address
  net: phy: mdio-i2c: support I2C MDIO protocol for RollBall SFP modules
  net: phylink: allow attaching phy for SFP modules on 802.3z mode
  net: sfp: create/destroy I2C mdiobus before PHY probe/after PHY
  net: sfp: add support for multigig RollBall transceivers

 drivers/net/mdio/mdio-i2c.c   | 308 +++++++++++++++++++++++++++++++++-
 drivers/net/phy/phylink.c     |   5 +-
 drivers/net/phy/sfp.c         |  66 ++++++--
 include/linux/mdio/mdio-i2c.h |   8 +-
 include/linux/sfp.h           |   1 +
 5 files changed, 368 insertions(+), 20 deletions(-)

base-commit: 0ae5b43d6dde6003070106e97cd0d41bace2eeb2

Powered by blists - more mailing lists