Re: [RFC PATCH net-next v2 01/10] net: dsa: b53: add support for FDB operations on 5325/5365
From: Florian Fainelli <florian.fainelli@broadcom.com>
Date: 2025-06-03 22:10:07
Also in:
lkml
From: Florian Fainelli <florian.fainelli@broadcom.com>
Date: 2025-06-03 22:10:07
Also in:
lkml
On 6/3/25 13:48, Álvaro Fernández Rojas wrote:
From: Florian Fainelli <f.fainelli@gmail.com> BCM5325 and BCM5365 are part of a much older generation of switches which, due to their limited number of ports and VLAN entries (up to 256) allowed a single 64-bit register to hold a full ARL entry. This requires a little bit of massaging when reading, writing and converting ARL entries in both directions. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Álvaro Fernández Rojas <redacted> ---
[snip]
static int b53_arl_op(struct b53_device *dev, int op, int port, const unsigned char *addr, u16 vid, bool is_valid) {@@ -1795,14 +1834,18 @@ static int b53_arl_op(struct b53_device *dev, int op, int port, /* Perform a read for the given MAC and VID */ b53_write48(dev, B53_ARLIO_PAGE, B53_MAC_ADDR_IDX, mac); - b53_write16(dev, B53_ARLIO_PAGE, B53_VLAN_ID_IDX, vid); + if (!is5325(dev)) + b53_write16(dev, B53_ARLIO_PAGE, B53_VLAN_ID_IDX, vid);
I used the 5325M-DS113-RDS datasheet for this code initially but the 5325E-DS14-R datasheet shows that this register is defined. It's not clear to me how to differentiate the two kinds of switches. The 5325M would report itself as: 0x00406330 in the integrated PHY PHYSID1/2 registers, whereas a 5325E would report itself as 0x0143bc30. Maybe we can use that to key off the very first generation 5325 switches? -- Florian