Re: [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7

Jonas Gorski <[email protected]>
Newsgroups gmane.linux.network
Message-ID <CAOiHx==_HzdmNN5BY4DMh3Cr6JK5oQri3ZCNWN9v+xQPjzQZkg@mail.gmail.com>
On Sun, Aug 9, 2026 at 11:39 AM Rafał Miłecki <[email protected]> wrote:
>
> From: Rafał Miłecki <[email protected]>
>
> Northstar devices have 3 CPU ports. This design was meant for dual IMP
> setups when WAN traffic goes to port 5 (IMP1) and LAN traffic goes to
> port 8 (IMP0). While all 3 ports support Broadcom header some features
> are not available for ports 5 and 7. Trying to set EAP mode when using
> those ports breaks standalone ports.
>
> Fixes: 4227ea91e265 ("net: dsa: b53: prevent standalone from trying to forward to other ports")
> Cc: Semih Baskan <[email protected]>
> Signed-off-by: Rafał Miłecki <[email protected]>
> ---
> This fixes a regression. A very similar fix was carried by OpenWrt for
> about half a year now.
>
> A recent discussion in
> [PATCH net 0/2] net: dsa: b53: fix 8021q uppers on standalone ports
> allowed understanding the issue a bit better so I decided to send an
> upstream PATCH finally.
>
>  drivers/net/dsa/b53/b53_common.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
>
> diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c
> index 3f5b9592794d..4b4a9258ecd4 100644
> --- a/drivers/net/dsa/b53/b53_common.c
> +++ b/drivers/net/dsa/b53/b53_common.c
> @@ -332,6 +332,21 @@ static void b53_set_eap_mode(struct b53_device *dev, int port, int mode)
>  {
>         u64 eap_conf;
>
> +       /*
> +        * Northstar devices (SoCs with BCM53011 / BCM53012) have 3 Ethernet
> +        * controllers connected to 3 switch ports: 5 (IMP1), 7 and 8 (IMP0).
> +        * Each of those ports can be used as CPU one as all support Broadcom
> +        * header but ports 5 and 7 have some limitations.
> +        *
> +        * Setting EAP_MODE_SIMPLIFIED with port 5/7 used as CPU port breaks
> +        * standalone ports, see:
> +        * https://lore.kernel.org/netdev/[email protected]/
> +        */
> +       if (is5301x(dev) && !dsa_is_cpu_port(dev->ds, B53_CPU_PORT)) {
> +               dev_warn_once(dev->dev, "skipping EAP setup because of not using CPU port 8\n");

We should print a bit fat warning at probe time, since this is
essentially a broken device tree configuration.

EAP isn't the only feature not working, anything that relies on trap
to CPU is broken. E.g STP also won't work, likely (if ever
implemented) bonding would not work (LACP frames won't be correctly
trapped), I assume LLDP would be broken, and any other protocols that
rely on reserved multicast addresses as well.

So we should strongly encourage users to fix the device tree and use
port 8 as CPU port.

Also can you try to move the CPU port on all devices you have access
to and send patches for that where it works successfully?

Best regards,
Jonas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.