[PATCH net-next v4 00/14] net: dsa: b53: fix BCM5325 support

Álvaro Fernández Rojas posted 14 patches 3 months, 3 weeks ago
drivers/net/dsa/b53/Kconfig      |   1 +
drivers/net/dsa/b53/b53_common.c | 284 ++++++++++++++++++++++++-------
drivers/net/dsa/b53/b53_priv.h   |  48 ++++++
drivers/net/dsa/b53/b53_regs.h   |  27 ++-
include/net/dsa.h                |   2 +
net/dsa/Kconfig                  |  16 +-
net/dsa/tag_brcm.c               | 119 ++++++++++---
7 files changed, 408 insertions(+), 89 deletions(-)
[PATCH net-next v4 00/14] net: dsa: b53: fix BCM5325 support
Posted by Álvaro Fernández Rojas 3 months, 3 weeks ago
These patches get the BCM5325 switch working with b53.

The existing brcm legacy tag only works with BCM63xx switches.
We need to add a new legacy tag for BCM5325 and BCM5365 switches, which
require including the FCS and length.

I'm not really sure that everything here is correct since I don't work for
Broadcom and all this is based on the public datasheet available for the
BCM5325 and my own experiments with a Huawei HG556a (BCM6358).

Both sets of patches have been merged due to the change requested by Jonas
about BRCM_HDR register access depending on legacy tags.

 v4: introduce changes requested by Jonas and other improvements:
  - Fix line length warning.
  - Introduce variant_id field in b53_device.
  - Move B53_VLAN_ID_IDX BCM5325M check to variants patch.
  - Reduce number of ARL buckets for BCM5325E.
  - Disable ARLIO_PAGE->VLAN_ID_IDX access for BCM5325M.
  - Avoid in_range() confusion.
  - Ensure PD_MODE_POWER_DOWN_PORT(0) is cleared.
  - Improve B53_PD_MODE_CTRL_25 register defines.

 v3: introduce changes requested by Florian, Jonas and Jakub:
  - Improve brcm legacy tag Kconfig description, use __le32 and crc32_le().
  - Detect BCM5325 variants as requested by Florian.
  - B53_VLAN_ID_IDX exists in newer BCM5325E switches.
  - Check for legacy tag protocols instead of is5325() for B53_BRCM_HDR.
  - Use in_range() helper for B53_PD_MODE_CTRL_25.

 v2: introduce changes requested by Jonas, Florian and Vladimir:
  - Add b53_arl_to_entry_25 function.
  - Add b53_arl_from_entry_25 function.
  - Add b53_arl_read_25 function, fixing usage of ARLTBL_VALID_25 and
    ARLTBL_VID_MASK_25.
  - Change b53_set_forwarding function flow.
  - Disallow BR_LEARNING on b53_br_flags_pre() for BCM5325.
  - Drop rate control registers.
  - Move B53_PD_MODE_CTRL_25 to b53_setup_port().
  - Replace swab32 with cpu_to_le32.

Florian Fainelli (1):
  net: dsa: b53: add support for FDB operations on 5325/5365

Álvaro Fernández Rojas (13):
  net: dsa: tag_brcm: legacy: reorganize functions
  net: dsa: tag_brcm: add support for legacy FCS tags
  net: dsa: b53: support legacy FCS tags
  net: dsa: b53: detect BCM5325 variants
  net: dsa: b53: prevent FAST_AGE access on BCM5325
  net: dsa: b53: prevent SWITCH_CTRL access on BCM5325
  net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325
  net: dsa: b53: prevent DIS_LEARNING access on BCM5325
  net: dsa: b53: prevent BRCM_HDR access on older devices
  net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on BCM5325
  net: dsa: b53: fix unicast/multicast flooding on BCM5325
  net: dsa: b53: fix b53_imp_vlan_setup for BCM5325
  net: dsa: b53: ensure BCM5325 PHYs are enabled

 drivers/net/dsa/b53/Kconfig      |   1 +
 drivers/net/dsa/b53/b53_common.c | 284 ++++++++++++++++++++++++-------
 drivers/net/dsa/b53/b53_priv.h   |  48 ++++++
 drivers/net/dsa/b53/b53_regs.h   |  27 ++-
 include/net/dsa.h                |   2 +
 net/dsa/Kconfig                  |  16 +-
 net/dsa/tag_brcm.c               | 119 ++++++++++---
 7 files changed, 408 insertions(+), 89 deletions(-)

-- 
2.39.5

Re: [PATCH net-next v4 00/14] net: dsa: b53: fix BCM5325 support
Posted by Jakub Kicinski 3 months, 3 weeks ago
On Sat, 14 Jun 2025 09:59:46 +0200 Álvaro Fernández Rojas wrote:
> These patches get the BCM5325 switch working with b53.
> 
> The existing brcm legacy tag only works with BCM63xx switches.
> We need to add a new legacy tag for BCM5325 and BCM5365 switches, which
> require including the FCS and length.
> 
> I'm not really sure that everything here is correct since I don't work for
> Broadcom and all this is based on the public datasheet available for the
> BCM5325 and my own experiments with a Huawei HG556a (BCM6358).
> 
> Both sets of patches have been merged due to the change requested by Jonas
> about BRCM_HDR register access depending on legacy tags.

From the commit messages sounds like the support for these switches
never really worked properly. So I'll drop the Fixes tag when applying.
No objection if you'd like to argue with stable folks for stable
inclusion once these reach Linus, given what lands in stable these days.
But I don't want to implicitly support that by applying with the Fixes
tags.