[U-Boot] [RFC PATCH 0/2] Add a driver for the Felix Ethernet switch on NXP LS1028A

Alex Marginean alexm.osslist at gmail.com
Thu Aug 8 19:18:28 UTC 2019


On 8/8/2019 7:07 PM, Alex Marginean wrote:
> The driver sets up the switch during probe making external and internal ports
> available to use.  It does not support direct I/O through these switch ports
> in this version and I'm not sure that is a feature useful in U-Boot.  Instead
> ENETC ethernet interfaces that are internally linked to the switch can be used
> after the switch is set up.
> 
> This is where the RFC part comes in.  Both the switch as a device and its ports
> are probed as ethernet devices.  That's handy as accessors to connect to the PHY
> can be used but otherwise they are useful as the user can't ping to these
^ I mean to say useless, not useful :)

> interfaces.  I'd like to get some feedback on whether this is acceptable or
> instead I should use some other structure for describing the switch and its
> ports, maybe have a new DM uclass.  Other switch devices are registered as PHYs
> but that's not too useful if the external ports of the switch have PHYs of their
> own and they need to be driven too.
> 
> Using a complete DTS the switch looks like this:
> 
> => dm tree
>   Class     Index  Probed  Driver                Name
> -----------------------------------------------------------
> ....
>   pci          2  [ + ]   pci_generic_ecam      |-- pcie at 1f0000000
>   eth          1  [ + ]   enetc_eth             |   |-- enetc-0
>   eth          2  [ + ]   enetc_eth             |   |-- enetc-1
>   eth          3  [ + ]   enetc_eth             |   |-- enetc-2
>   mdio         5  [ + ]   enetc_mdio            |   |-- emdio-3
>   pci_generi   0  [   ]   pci_generic_drv       |   |-- pci_3:0.4
>   eth          4  [ + ]   felix_ethsw           |   |-- felix_ethsw
>   eth          6  [ + ]   felix-port            |   |   |-- port at 0
>   eth          7  [ + ]   felix-port            |   |   |-- port at 1
>   eth          8  [ + ]   felix-port            |   |   |-- port at 2
>   eth          9  [ + ]   felix-port            |   |   |-- port at 3
>   eth         10  [ + ]   felix-port            |   |   |-- port at 4
>   eth         11  [ + ]   felix-port            |   |   `-- port at 5
>   eth          5  [ + ]   enetc_eth             |   |-- enetc-6
>   pci_generi   1  [   ]   pci_generic_drv       |   `-- pci_3:1f.0
> 
> => mdio list
> felix_ethsw:
> emdio-3:
> mdio at 50:
> 0 - Aquantia AQR412 <--> port at 0
> 1 - Aquantia AQR412 <--> port at 1
> 2 - Aquantia AQR412 <--> port at 2
> 3 - Aquantia AQR412 <--> port at 3
> mdio at 00:
> 5 - AR8035 <--> enetc-1
> mdio at 40:
> 2 - Aquantia AQR112 <--> enetc-0
> mdio at 60:
> mdio at 70:
> 
> Any feedback is welcome, of course :)
> 
> Thank you!
> Alex
> 
> Depends on https://patchwork.ozlabs.org/project/uboot/list/?series=123813
> 
> 
> Alex Marginean (2):
>    drivers: net: Add a driver for the Felix Ethernet switch on NXP
>      LS1028A
>    arm: dts: ls1028a: add node for the integrated Ethernet switch
> 
>   arch/arm/dts/fsl-ls1028a.dtsi |  31 +++
>   drivers/net/Kconfig           |   7 +
>   drivers/net/Makefile          |   1 +
>   drivers/net/fsl_enetc.h       |   5 +
>   drivers/net/fsl_felix.c       | 414 ++++++++++++++++++++++++++++++++++
>   5 files changed, 458 insertions(+)
>   create mode 100644 drivers/net/fsl_felix.c
> 



More information about the U-Boot mailing list