Re: [RFC PATCH net-next v2 01/10] net: dsa: b53: add support for FDB operations on 5325/5365
From: Jonas Gorski <jonas.gorski@gmail.com>
Date: 2025-06-04 06:32:21
Also in:
lkml
On Wed, Jun 4, 2025 at 12:10 AM Florian Fainelli [off-list ref] wrote:
On 6/3/25 13:48, Álvaro Fernández Rojas wrote:quoted
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]quoted
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?
According to the product brief and other documents BCM5325M does not support 802.1Q VLANs, which would explain the missing register descriptions. It does have 2k ARL entries compared to 1k for the 5325E though, so I now see where that value comes from. If it really doesn't support 802.1Q, then checking if related registers are writable might also work. Jonas