Netdev List
 help / color / mirror / Atom feed
* [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7
@ 2026-08-09  9:39 Rafał Miłecki
  2026-08-09 10:22 ` Semih Baskan
  2026-08-09 10:39 ` Jonas Gorski
  0 siblings, 2 replies; 5+ messages in thread
From: Rafał Miłecki @ 2026-08-09  9:39 UTC (permalink / raw)
  To: Andrew Lunn, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni
  Cc: Florian Fainelli, Jonas Gorski, Vladimir Oltean, netdev,
	Rafał Miłecki, Semih Baskan

From: Rafał Miłecki <rafal@milecki.pl>

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 <strst.gs@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
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/ce4d9b7b-aaf6-4796-94fb-8c3d6a1dcd4d@gmail.com/
+	 */
+	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");
+		return;
+	}
+
 	if (is5325(dev) || is5365(dev) || dev->chip_id == BCM5389_DEVICE_ID)
 		return;
 
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7
  2026-08-09  9:39 [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7 Rafał Miłecki
@ 2026-08-09 10:22 ` Semih Baskan
  2026-08-09 10:39 ` Jonas Gorski
  1 sibling, 0 replies; 5+ messages in thread
From: Semih Baskan @ 2026-08-09 10:22 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Andrew Lunn, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Florian Fainelli, Jonas Gorski, Vladimir Oltean,
	netdev, Rafał Miłecki

Tested on an Asus RT-N18U (BCM53011 rev 5, CPU port 5). A build with
4227ea91e265 active and no workaround reproduces the regression: a
standalone port stops receiving entirely while its egress keeps working.
Untagged traffic on the wan port counted 9 frames out, all 9 arrived at
the peer, and 0 came back in. With this patch on the same build the port
receives again, untagged and tagged both, and the "skipping EAP setup
because of not using CPU port 8" line appears exactly once in dmesg.

Note on the setup: both builds also included my pending b53 standalone
VLAN series, the same on both sides, so the only difference between them
is this patch. The tagged test passes only because that series is
present; on plain mainline the tagged direction still fails for the
unrelated reason that series addresses. The untagged result does not
involve the series and shows this patch's effect on its own.

Tested-by: Semih Baskan <strst.gs@gmail.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7
  2026-08-09  9:39 [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7 Rafał Miłecki
  2026-08-09 10:22 ` Semih Baskan
@ 2026-08-09 10:39 ` Jonas Gorski
  2026-08-09 15:00   ` Andrew Lunn
  1 sibling, 1 reply; 5+ messages in thread
From: Jonas Gorski @ 2026-08-09 10:39 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Andrew Lunn, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Florian Fainelli, Vladimir Oltean, netdev,
	Rafał Miłecki, Semih Baskan

On Sun, Aug 9, 2026 at 11:39 AM Rafał Miłecki <zajec5@gmail.com> wrote:
>
> From: Rafał Miłecki <rafal@milecki.pl>
>
> 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 <strst.gs@gmail.com>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> 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/ce4d9b7b-aaf6-4796-94fb-8c3d6a1dcd4d@gmail.com/
> +        */
> +       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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7
  2026-08-09 10:39 ` Jonas Gorski
@ 2026-08-09 15:00   ` Andrew Lunn
  2026-08-09 17:48     ` Florian Fainelli
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Lunn @ 2026-08-09 15:00 UTC (permalink / raw)
  To: Jonas Gorski
  Cc: Rafał Miłecki, David S . Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Florian Fainelli, Vladimir Oltean,
	netdev, Rafał Miłecki, Semih Baskan

On Sun, Aug 09, 2026 at 12:39:58PM +0200, Jonas Gorski wrote:
> On Sun, Aug 9, 2026 at 11:39 AM Rafał Miłecki <zajec5@gmail.com> wrote:
> >
> > From: Rafał Miłecki <rafal@milecki.pl>
> >
> > 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.

> > +       /*
> > +        * 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/ce4d9b7b-aaf6-4796-94fb-8c3d6a1dcd4d@gmail.com/
> > +        */
> > +       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.

I was wondering how we got here, is it a device tree problem, but the
commit message is a bit vague.

I agree, for a DT problem, it should be reported at probe. After that,
the driver can do its best, but should be quiet.

> 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?

I agree. This should be changed into a patchset.

1. Move the warning into probe
2. Update the binding .yaml to indicate such a setup is invalid.
3. Fix all in tree .dts{i} files to make the new warning go away.

If there are any boards which cannot be fixed because the correct CPU
port is not wired up, we need to think further about what needs to
happen.

    Andrew

---
pw-bot: cr

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7
  2026-08-09 15:00   ` Andrew Lunn
@ 2026-08-09 17:48     ` Florian Fainelli
  0 siblings, 0 replies; 5+ messages in thread
From: Florian Fainelli @ 2026-08-09 17:48 UTC (permalink / raw)
  To: Andrew Lunn, Jonas Gorski
  Cc: Rafał Miłecki, David S . Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Vladimir Oltean, netdev,
	Rafał Miłecki, Semih Baskan



On 8/9/2026 8:00 AM, Andrew Lunn wrote:
> On Sun, Aug 09, 2026 at 12:39:58PM +0200, Jonas Gorski wrote:
>> On Sun, Aug 9, 2026 at 11:39 AM Rafał Miłecki <zajec5@gmail.com> wrote:
>>>
>>> From: Rafał Miłecki <rafal@milecki.pl>
>>>
>>> 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.
> 
>>> +       /*
>>> +        * 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/ce4d9b7b-aaf6-4796-94fb-8c3d6a1dcd4d@gmail.com/
>>> +        */
>>> +       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.
> 
> I was wondering how we got here, is it a device tree problem, but the
> commit message is a bit vague.
> 
> I agree, for a DT problem, it should be reported at probe. After that,
> the driver can do its best, but should be quiet.
> 
>> 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?
> 
> I agree. This should be changed into a patchset.

Also agree here, using ports 5 and 7 likely stemmed from limited 
understanding at the time, given all of these ports are internal and are 
all functional, there should really be no reason not to use port 8 
unconditionally as the IMP port, it's the most capable and it has no 
limitations.

> 
> 1. Move the warning into probe
> 2. Update the binding .yaml to indicate such a setup is invalid.
> 3. Fix all in tree .dts{i} files to make the new warning go away.

Sounds good to me.

> 
> If there are any boards which cannot be fixed because the correct CPU
> port is not wired up, we need to think further about what needs to
> happen.

I don't think that can happen.
-- 
Florian


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-08-09 17:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-09  9:39 [PATCH net] net: dsa: b53: skip EAP mode setup on Northstar SoCs when using port 5 or 7 Rafał Miłecki
2026-08-09 10:22 ` Semih Baskan
2026-08-09 10:39 ` Jonas Gorski
2026-08-09 15:00   ` Andrew Lunn
2026-08-09 17:48     ` Florian Fainelli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox