Re: [RFC PATCH net-next v2 01/10] net: dsa: b53: add support for FDB operations on 5325/5365

From: Florian Fainelli
Date: Tue Jun 03 2025 - 18:10:43 EST


On 6/3/25 13:48, Álvaro Fernández Rojas wrote:
From: Florian Fainelli <f.fainelli@xxxxxxxxx>

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@xxxxxxxxx>
Signed-off-by: Álvaro Fernández Rojas <noltari@xxxxxxxxx>
---

[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