mbox series

[net-next,v2,0/9] net: ethernet backplane support

Message ID 1587732391-3374-1-git-send-email-florinel.iordache@nxp.com
Headers show
Series net: ethernet backplane support | expand

Message

Florinel Iordache April 24, 2020, 12:46 p.m. UTC
Add support for Ethernet Backplane KR generic driver using link training
(ieee802.3ap/ba standards), equalization algorithms (bee, fixed) and
enable qoriq family of devices.
This driver is dependent on uboot Backplane KR support:
patchwork.ozlabs.org/project/uboot/list/?series=164627&state=*

v2 changes:
* phy.rst and ABI/testing/sysfs-class-net-phydev updates with new PHY
interface values according to Florian Fainelli feedback
* dt bindings updates according to Rob Herring feedback: fixed errors
occurred when running 'make dt_binding_check'
* bpdev log changes according to feedback from Joe Perches: use %pV
instead of an intermediate buffer and refactoring
* reverse christmas tree updates according to David Miller feedback
* use pr_info_once function in probe to display qoriq backplane driver
version according to Joe's feedback
* introduce helper function dt_serdes_type in qoriq backplane according
to Joe's feedback
* use standard linux defines to access AN control/status registers and
not indirect with internal variables according to Andrew's feedback
* dt bindings link training updates: pre-cursor, main-cursor, post-cursor
* change display format for tx equalization using C() standard notation
* add priv pointer in backplane_device and lane as device specific private
extension to be used by upper layer backplane drivers
* backplane refactoring: split backplane_phy_info struct in
backplane_device and backplane_driver, add backplane specific ops and
move amp_red as qoriq specific param
* lane refactoring: split kr_lane_info struct in lane_device and lane_kr
in order to separate lane kr specific data by generic device lane data,
lane kr parameters unification, extension params for custom device
specific
* equalization refactoring: replace eq_setup_info/equalizer_info with
equalizer_driver/equalizer_device data structures

Feedback not addressed yet:
* general solution for PCS representation: still working to find a
generic suitable solution, exploring alternatives, perhaps this
should be addressed in phy generic layer

Florinel Iordache (9):
  doc: net: add backplane documentation
  dt-bindings: net: add backplane dt bindings
  net: phy: add support for kr phy connection type
  net: fman: add kr support for dpaa1 mac
  net: dpaa2: add kr support for dpaa2 mac
  net: phy: add backplane kr driver support
  net: phy: enable qoriq backplane support
  net: phy: add bee algorithm for kr training
  arm64: dts: add serdes and mdio description

 Documentation/ABI/testing/sysfs-class-net-phydev   |    2 +-
 .../bindings/net/ethernet-controller.yaml          |    3 +-
 .../devicetree/bindings/net/ethernet-phy.yaml      |   50 +
 .../devicetree/bindings/net/serdes-lane.yaml       |   51 +
 Documentation/devicetree/bindings/net/serdes.yaml  |   44 +
 Documentation/networking/backplane.rst             |  165 ++
 Documentation/networking/phy.rst                   |   15 +-
 arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi     |   33 +-
 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi     |   97 +-
 arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi     |  160 +-
 arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi     |  128 +-
 .../boot/dts/freescale/qoriq-fman3-0-10g-0.dtsi    |    5 +-
 .../boot/dts/freescale/qoriq-fman3-0-10g-1.dtsi    |    5 +-
 drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c   |   10 +-
 drivers/net/ethernet/freescale/fman/mac.c          |   10 +-
 drivers/net/phy/Kconfig                            |    2 +
 drivers/net/phy/Makefile                           |    1 +
 drivers/net/phy/backplane/Kconfig                  |   40 +
 drivers/net/phy/backplane/Makefile                 |   12 +
 drivers/net/phy/backplane/backplane.c              | 1626 ++++++++++++++++++++
 drivers/net/phy/backplane/backplane.h              |  293 ++++
 drivers/net/phy/backplane/eq_bee.c                 | 1076 +++++++++++++
 drivers/net/phy/backplane/eq_fixed.c               |   83 +
 drivers/net/phy/backplane/equalization.h           |  283 ++++
 drivers/net/phy/backplane/link_training.c          | 1529 ++++++++++++++++++
 drivers/net/phy/backplane/link_training.h          |   32 +
 drivers/net/phy/backplane/qoriq_backplane.c        |  501 ++++++
 drivers/net/phy/backplane/qoriq_backplane.h        |   46 +
 drivers/net/phy/backplane/qoriq_serdes_10g.c       |  486 ++++++
 drivers/net/phy/backplane/qoriq_serdes_28g.c       |  547 +++++++
 drivers/net/phy/phylink.c                          |   15 +-
 include/linux/phy.h                                |    6 +-
 32 files changed, 7334 insertions(+), 22 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/serdes-lane.yaml
 create mode 100644 Documentation/devicetree/bindings/net/serdes.yaml
 create mode 100644 Documentation/networking/backplane.rst
 create mode 100644 drivers/net/phy/backplane/Kconfig
 create mode 100644 drivers/net/phy/backplane/Makefile
 create mode 100644 drivers/net/phy/backplane/backplane.c
 create mode 100644 drivers/net/phy/backplane/backplane.h
 create mode 100644 drivers/net/phy/backplane/eq_bee.c
 create mode 100644 drivers/net/phy/backplane/eq_fixed.c
 create mode 100644 drivers/net/phy/backplane/equalization.h
 create mode 100644 drivers/net/phy/backplane/link_training.c
 create mode 100644 drivers/net/phy/backplane/link_training.h
 create mode 100644 drivers/net/phy/backplane/qoriq_backplane.c
 create mode 100644 drivers/net/phy/backplane/qoriq_backplane.h
 create mode 100644 drivers/net/phy/backplane/qoriq_serdes_10g.c
 create mode 100644 drivers/net/phy/backplane/qoriq_serdes_28g.c

Comments

Andrew Lunn April 24, 2020, 1:26 p.m. UTC | #1
On Fri, Apr 24, 2020 at 03:46:22PM +0300, Florinel Iordache wrote:
> Add support for Ethernet Backplane KR generic driver using link training
> (ieee802.3ap/ba standards), equalization algorithms (bee, fixed) and
> enable qoriq family of devices.
> This driver is dependent on uboot Backplane KR support:
> patchwork.ozlabs.org/project/uboot/list/?series=164627&state=*
> 
> v2 changes:
> * phy.rst and ABI/testing/sysfs-class-net-phydev updates with new PHY
> interface values according to Florian Fainelli feedback
> * dt bindings updates according to Rob Herring feedback: fixed errors
> occurred when running 'make dt_binding_check'
> * bpdev log changes according to feedback from Joe Perches: use %pV
> instead of an intermediate buffer and refactoring
> * reverse christmas tree updates according to David Miller feedback
> * use pr_info_once function in probe to display qoriq backplane driver
> version according to Joe's feedback
> * introduce helper function dt_serdes_type in qoriq backplane according
> to Joe's feedback
> * use standard linux defines to access AN control/status registers and
> not indirect with internal variables according to Andrew's feedback
> * dt bindings link training updates: pre-cursor, main-cursor, post-cursor
> * change display format for tx equalization using C() standard notation
> * add priv pointer in backplane_device and lane as device specific private
> extension to be used by upper layer backplane drivers
> * backplane refactoring: split backplane_phy_info struct in
> backplane_device and backplane_driver, add backplane specific ops and
> move amp_red as qoriq specific param
> * lane refactoring: split kr_lane_info struct in lane_device and lane_kr
> in order to separate lane kr specific data by generic device lane data,
> lane kr parameters unification, extension params for custom device
> specific
> * equalization refactoring: replace eq_setup_info/equalizer_info with
> equalizer_driver/equalizer_device data structures

Hi Florinel
> 
> Feedback not addressed yet:
> * general solution for PCS representation: still working to find a
> generic suitable solution, exploring alternatives, perhaps this
> should be addressed in phy generic layer

I actually think this is the most important point. It makes a big
difference to the overall structure of this code, the APIs it needs to
export. So don't expect too detailed a review until this is decided.

	Andrew