[PATCH 0/4] phy-mode cleanup

Vladimir Oltean vladimir.oltean at nxp.com
Sat Sep 18 14:32:33 CEST 2021


Michael Walle did an excellent job in starting the process of bringing
U-Boot and Linux device tree bindings in sync for the NXP LS1028A:
https://patchwork.ozlabs.org/project/uboot/cover/20210902164558.1920849-1-michael@walle.cc/

but there still are some hairy issues which need to be addressed head
on, and which Michael said he'd rather leave for NXP to do, so here we
are /shrug/

NXP LS1028A has 2 Ethernet controllers:
drivers/net/fsl_enetc.c for the endpoint ports and DSA master
drivers/net/mscc_eswitch/felix_switch.c for the switch ports

but in fact, the MAC-side Physical Coding Sublayer (PCS) device used for
translating the MAC layer data into a serial bit stream is the same kind
between the enetc and the switch, as well as the same kind as the PCS
used in the other NXP SoCs (those based on DPAA1 and those based on DPAA2).
So most of the conclusions we draw about the LS1028A PCS apply equally
to the other NXP SoCs from the family.

There are 3 general directions in this patch series:

- the "sgmii-2500" idea was rejected in Linux due to the inability to
  explain what it is. Linux has standardized on "2500base-x" as a way to
  describe both fiber ports and MAC-to-PHY links. Convert the NXP
  devices to use the phy-mode accepted in Linux.

- the "xfi" phy-mode was rejected in Linux because it is an electrical
  standard covering more than a single SERDES protocol. For Ethernet
  things were standardized as "10gbase-r" which describes the 64b/66b
  coding scheme used there (the "R" in 10GBase-R).

- the "xgmii" phy-mode is pretty much bogus, there are no NXP devices
  with this pinout. This pretty much stems from the idea that the device
  tree should describe an internal set of wires between the MAC and the
  PCS (the much speculated semantic difference between "phy-mode" and
  "phy-connection-type"), which it should not. Even though I'm pretty
  sure that no NXP devices have an external pinout of XGMII, I have only
  replaced this usage in the LS1028A networking drivers, because I am
  not completely sure of all the implications my changes would have in
  the DPAA1 and DPAA2 drivers.

Vladimir Oltean (4):
  net: replace the "xfi" phy-mode with "10gbase-r"
  net: freescale: replace usage of phy-mode = "sgmii-2500" with
    "2500base-x"
  net: enetc: remove support for "xgmii" phy-mode
  net: dsa: felix: remove "xgmii" phy-mode

 arch/arm/cpu/armv8/fsl-layerscape/cpu.c       |  2 +-
 .../cpu/armv8/fsl-layerscape/doc/README.soc   |  8 +++----
 .../cpu/armv8/fsl-layerscape/ls1088a_serdes.c |  2 +-
 .../dts/fsl-ls1028a-qds-6xxx-sch-30842.dtsi   |  2 +-
 .../dts/fsl-ls1028a-qds-7777-sch-30841.dtsi   |  8 +++----
 .../dts/fsl-ls1028a-qds-7xx7-sch-30841R.dtsi  |  4 ++--
 .../dts/fsl-ls1028a-qds-x7xx-sch-30842.dtsi   |  2 +-
 .../dts/fsl-ls1028a-qds-xx7x-sch-30842.dtsi   |  2 +-
 arch/arm/dts/fsl-ls1088a-qds-sd1-21.dtsi      |  4 ++--
 arch/arm/dts/fsl-ls1088a-qds-sd1-29.dtsi      |  4 ++--
 arch/arm/dts/fsl-ls2080a-qds-sd1-42.dtsi      | 16 +++++++-------
 arch/arm/dts/fsl-ls2088a-rdb-qspi.dts         | 16 +++++++-------
 arch/arm/dts/fsl-sch-30841.dtsi               |  2 +-
 arch/arm/dts/fsl-sch-30842.dtsi               |  2 +-
 board/Marvell/octeon_ebb7304/board.c          |  6 ++---
 board/freescale/ls1012aqds/eth.c              |  4 ++--
 board/freescale/ls1012aqds/ls1012aqds.c       |  4 ++--
 board/freescale/ls1012aqds/ls1012aqds_pfe.h   |  2 +-
 board/freescale/ls1012ardb/eth.c              |  4 ++--
 board/freescale/ls1043aqds/README             |  2 +-
 board/freescale/ls1043aqds/eth.c              | 12 +++++-----
 board/freescale/ls1043ardb/README             |  2 +-
 board/freescale/ls1043ardb/eth.c              |  2 +-
 board/freescale/ls1046aqds/README             |  2 +-
 board/freescale/ls1046aqds/eth.c              |  8 +++----
 board/freescale/ls1046ardb/README             |  4 ++--
 board/freescale/ls1046ardb/eth.c              |  2 +-
 board/freescale/ls1088a/README                |  4 ++--
 board/freescale/ls1088a/eth_ls1088ardb.c      |  6 ++---
 board/freescale/ls2080aqds/README             |  2 +-
 board/freescale/ls2080aqds/eth.c              | 13 +++++------
 board/freescale/ls2080ardb/README             |  2 +-
 board/freescale/t102xrdb/README               |  2 +-
 board/freescale/t102xrdb/eth_t102xrdb.c       |  8 +++----
 board/freescale/t208xqds/README               | 18 +++++++--------
 board/freescale/t208xqds/eth_t208xqds.c       | 22 +++++++++----------
 board/freescale/t208xqds/t208xqds.c           |  8 +++----
 board/freescale/t208xrdb/README               |  4 ++--
 board/freescale/t4rdb/eth.c                   |  2 +-
 doc/device-tree-bindings/net/ethernet.txt     | 12 +++++++++-
 drivers/net/fm/b4860.c                        |  2 +-
 drivers/net/fm/eth.c                          | 10 ++++-----
 drivers/net/fm/ls1043.c                       |  4 ++--
 drivers/net/fm/ls1046.c                       |  2 +-
 drivers/net/fm/memac.c                        |  6 ++---
 drivers/net/fm/t1024.c                        |  2 +-
 drivers/net/fsl_enetc.c                       | 10 ++++-----
 drivers/net/mscc_eswitch/felix_switch.c       |  7 +++---
 drivers/net/pfe_eth/pfe_mdio.c                |  4 ++--
 drivers/net/phy/aquantia.c                    | 18 +++++++--------
 include/phy.h                                 |  2 +-
 include/phy_interface.h                       |  4 ++--
 52 files changed, 154 insertions(+), 148 deletions(-)

-- 
2.25.1



More information about the U-Boot mailing list