[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAOiHx==HkOqi4TY6v7bdzWoHEQxO4Q4=HH8kWe7hJiEdLTy3-g@mail.gmail.com>
Date: Wed, 4 Jun 2025 08:32:09 +0200
From: Jonas Gorski <jonas.gorski@...il.com>
To: Florian Fainelli <florian.fainelli@...adcom.com>
Cc: Álvaro Fernández Rojas <noltari@...il.com>,
andrew@...n.ch, olteanv@...il.com, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, vivien.didelot@...il.com,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org, dgcbueu@...il.com
Subject: Re: [RFC PATCH net-next v2 01/10] net: dsa: b53: add support for FDB
operations on 5325/5365
On Wed, Jun 4, 2025 at 12:10 AM Florian Fainelli
<florian.fainelli@...adcom.com> wrote:
>
> On 6/3/25 13:48, Álvaro Fernández Rojas wrote:
> > From: Florian Fainelli <f.fainelli@...il.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@...il.com>
> > Signed-off-by: Álvaro Fernández Rojas <noltari@...il.com>
> > ---
>
> [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?
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
Powered by blists - more mailing lists