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

From: Florinel Iordache
Date: Fri Apr 24 2020 - 08:46:49 EST


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

--
1.9.1