[U-Boot] [RFC PATCH v3 0/3] Felix Eth switch driver and questions on DSA switches
Bin Meng
bmeng.cn at gmail.com
Fri Nov 15 14:32:05 UTC 2019
Hi Alex,
On Fri, Nov 15, 2019 at 8:57 PM Alex Marginean
<alexandru.marginean at nxp.com> 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, instead ENETC ethernet interfaces that are internally linked to
> the switch can be used after the switch is set up.
>
Thanks for the efforts!
> 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 on switch ports, but otherwise they are useless as the user can't
> ping to these interfaces directly. We're not running STP in U-Boot either, so
> turning on the switch is a problem if there are loops in the network.
> The Linux driver for this piece of HW is now moving under DSA and this leads to
> my question. Does anyone here think that DSA support is something useful in
> U-Boot?
>
> DSA is described here:
> https://www.kernel.org/doc/Documentation/networking/dsa/dsa.txt
>
> From the doc:
>
> Summarized, this is basically how DSA looks like from a network device
> perspective:
>
>
> |---------------------------
> | CPU network device (eth0)|
> ----------------------------
> | <tag added by switch |
> | |
> | |
> | tag added by CPU> |
> |--------------------------------------------|
> | Switch driver |
> |--------------------------------------------|
> || || ||
> |-------| |-------| |-------|
> | sw0p0 | | sw0p1 | | sw0p2 |
> |-------| |-------| |-------|
>
>
> If we do DSA in U-Boot we would use the same bindings as in Linux. The switch
>From the perspective of reusing the same bindings as Linux, yes, I
would like to see the same DSA support in U-Boot :)
> would be associated with a master network device which is a regular ethernet,
> this is part of the DSA binding in Linux.
> Whenever the user pings through swp0pN in background that would _start swp0pN,
> the switch port connected to the master network device and the master network
> device (eth0 in the picture above). Any frames sent through a switch port would
> have the DSA tag inserted and then actually sent though the mater network
> device. Similarly for Rx, polling swp0pN would in fact poll on the master
> network device and for any frame received the DSA code would check and remove
> the DSA tag.
> Switching between switch ports would be by default disabled.
> This kind of switch drivers should go under a new class, DSA or ETH_DSA, or
> something along those lines.
>
> I'd like to get some feedback from networking people on this list, if adding DSA
> support in U-Boot is something that could be useful, or the existing support is
> good enough. Currently U-Boot does support a few switches either as PHYs or
> as ETH devices with various limitations. Feel free to share any thoughts on
> this topic.
>
> With these patches applied the switch on LS1028A 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
>
>
> This patch set replaces this v2 series:
> https://patchwork.ozlabs.org/project/uboot/list/?series=126977&state=*
> and depends on:
> https://patchwork.ozlabs.org/project/uboot/list/?series=142858
> https://patchwork.ozlabs.org/project/uboot/list/?series=142879
>
> Thank you!
Regards,
Bin
More information about the U-Boot
mailing list