From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86D071F30AD; Sat, 14 Jun 2025 08:00:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888008; cv=none; b=Ckq8IDz7xvsFbgNLZYr7IzUSVqdUKqh12MKZNUmozq8lJ8xvEdr1klM61BdZDSYnW9Zg2Y/kQRRXHDNhzW9Pu8i4D1wiGIROybKZTQBnhhNO+xTPw24ilyQhsyiLnC3Js/A+GdEvughm9XFEgZMzqmUszlIQMj+7zQB6AL5+hIM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888008; c=relaxed/simple; bh=0zq/TBMQ0h6/euIYrbBmM05NhQPI9XGhBj8ed7ggSEQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=pesr/9cGtRdkmVXwO6rhrlmL50PCMsxIaF6XngaK+KP4LMqKUoJMPLHv5ML5XGNTyfG8wSRpWP/AA2P2pDtxaW/hvQH2rk34BZVGp7VVZ/8bkzo65j3BvdrrylaoyZYEcHsvewmRCoW+sLn9KLZVvCzxQwCAP2m/RRaAPF3/OFg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bPbHsoKI; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bPbHsoKI" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-451e2f0d9c2so23680375e9.1; Sat, 14 Jun 2025 01:00:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888005; x=1750492805; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=v2mrrQAJP2ZT0f72PJf2BD+Zq1hLndIkmyPUWVMOj4U=; b=bPbHsoKIATv7CXeBYYytCYBupLfp42sO+k5CiZKrBsHKFHgSwvC0cNtQFwsriEKItd DbxJLPE7ZbsvmKF4fb45oz32qGrDwNSp6Qo7STrajtAeCwbeU8+NgNxjSOvqZQN8mhSd U9vDgzVBAeFOrAmswro6pHMd/oQ6XwFVjjt3G/8Pw5mYtvxYBA3YlNa1CC0G9KofphUX 4turq8QuJjgRBuZt1BxYpS9rFWm6Xow68lX2RgFOW2aYxEYJ6WsYOJrX3GP/CSEEbkrN lI2aQ+9pTZaSb/KoL+Tk3A3FMbCQTcnWf5NQA2j7os3AalrDSBW60/zg22nlkpvPJnVW wRDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888005; x=1750492805; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=v2mrrQAJP2ZT0f72PJf2BD+Zq1hLndIkmyPUWVMOj4U=; b=nXOnbnMr+d3oTUgDiEgTnqNl/Lp65PJG4/fpBHMaPUOYcJIjPfHLsK+Ctq5zg6RnEC fONVpDRN92JtIg4RlQSB1Py0J30sIkDjqzXytnoEOHO6U6nSJ+DlBd3R9auXAeaOkbEN qHkv6LNzXZiW3vhWp9fsiYTHVQBuVoSZaIzb5ybnf0bJLWeKlJ6OP5+KbwPGbpsyt1pj /Lj6j90s9SWs7Vg89Z0HFQXv+qF30KzeYj66I7dmK5tkPa7D2SmGiWEgP7zVWW7GLcEK 1q41OaxgVsr0stmq3amLxwL38lLXda88hUse34XOgd3qK2948VVaSDn8a+WpFUe2eDFq ggoA== X-Forwarded-Encrypted: i=1; AJvYcCV1TpFRO4xPnRq+G1fLXlKbo19Mqp+4rOti2WBIRI5p4RH0bvFtyL9tXgZlqp7b6UKXM3JVbmaobrCyG0w=@vger.kernel.org, AJvYcCXNq1rQ4RF1GWOr4DYLI/CmjvnSccGF6+o4oYv3I3r2o9QaGKkgEGsGceNPqjYBwHmIaFd3VmjD@vger.kernel.org X-Gm-Message-State: AOJu0YyDsam/DIo94JaRwwzfOjuQXrG4eqQ43sI2b4sL2daNgLZ8WfGP LF2dsvFULmiXUEvdsz6CdvbgsMKlW/zyOvf29N3NuGzJoGtP+qd7MKsX X-Gm-Gg: ASbGncs7qIZgvXTlse2I8wUT1yFlvtqnUvRD9DV6cXEbAw8XCCcHSzf8YwhFED9QYyi xHp4Ux7dZYcrZ37kF2qfy1a+AtpCxeWFIQ6yT0f0rc7t6DWZq3OE5VADfXHkySPQV0JdKRW7rgd 7mIwYxSTf5QGwWr+3RphbQ1g4ohOKn9yDp1Lyh9o32A30u9U1PvssmNGLWTj84NxVxQsIWgjoX9 a4hXvymBAVq8OVQ48FxqIWUDaTJL9drN0p3RU1uYqetvMut0I1EjS3tNxgt1tRxY86+kOFjqUWc fTMtXBQHv5ZfIT7/lFG7cmhIY08QsXpSbkoO80Ywbdb+R+ySNZQacXdSDAOT4vyzkqvFKPIJwSP QBxOzgbM/qRf0SvTi8k3We9Kls+Iwisuw/+/Tgoz7FIuond7QV8Hw9NV40mgGTCI= X-Google-Smtp-Source: AGHT+IE7mQE+jvBl8Tin5bL2po4lvYhyUmsLvlHwqbaV9ncV5YD81UfnXoofYrKq/uso8iHGuFhnvw== X-Received: by 2002:a05:600c:1549:b0:43d:fa5f:7d30 with SMTP id 5b1f17b1804b1-4533c97c5eamr25773535e9.16.1749888004695; Sat, 14 Jun 2025 01:00:04 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:04 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 01/14] net: dsa: tag_brcm: legacy: reorganize functions Date: Sat, 14 Jun 2025 09:59:47 +0200 Message-Id: <20250614080000.1884236-2-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Move brcm_leg_tag_rcv() definition to top. This function is going to be shared between two different tags. Reviewed-by: Florian Fainelli Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- net/dsa/tag_brcm.c | 64 +++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 32 deletions(-) v4: no changes v3: no changes v2: no changes diff --git a/net/dsa/tag_brcm.c b/net/dsa/tag_brcm.c index fe75821623a4..9f4b0bcd95cd 100644 --- a/net/dsa/tag_brcm.c +++ b/net/dsa/tag_brcm.c @@ -213,6 +213,38 @@ MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_BRCM, BRCM_N= AME); #endif =20 #if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY) +static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff *skb, + struct net_device *dev) +{ + int len =3D BRCM_LEG_TAG_LEN; + int source_port; + u8 *brcm_tag; + + if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN + VLAN_HLEN))) + return NULL; + + brcm_tag =3D dsa_etype_header_pos_rx(skb); + + source_port =3D brcm_tag[5] & BRCM_LEG_PORT_ID; + + skb->dev =3D dsa_conduit_find_user(dev, 0, source_port); + if (!skb->dev) + return NULL; + + /* VLAN tag is added by BCM63xx internal switch */ + if (netdev_uses_dsa(skb->dev)) + len +=3D VLAN_HLEN; + + /* Remove Broadcom tag and update checksum */ + skb_pull_rcsum(skb, len); + + dsa_default_offload_fwd_mark(skb); + + dsa_strip_etype_header(skb, len); + + return skb; +} + static struct sk_buff *brcm_leg_tag_xmit(struct sk_buff *skb, struct net_device *dev) { @@ -250,38 +282,6 @@ static struct sk_buff *brcm_leg_tag_xmit(struct sk_buf= f *skb, return skb; } =20 -static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff *skb, - struct net_device *dev) -{ - int len =3D BRCM_LEG_TAG_LEN; - int source_port; - u8 *brcm_tag; - - if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN + VLAN_HLEN))) - return NULL; - - brcm_tag =3D dsa_etype_header_pos_rx(skb); - - source_port =3D brcm_tag[5] & BRCM_LEG_PORT_ID; - - skb->dev =3D dsa_conduit_find_user(dev, 0, source_port); - if (!skb->dev) - return NULL; - - /* VLAN tag is added by BCM63xx internal switch */ - if (netdev_uses_dsa(skb->dev)) - len +=3D VLAN_HLEN; - - /* Remove Broadcom tag and update checksum */ - skb_pull_rcsum(skb, len); - - dsa_default_offload_fwd_mark(skb); - - dsa_strip_etype_header(skb, len); - - return skb; -} - static const struct dsa_device_ops brcm_legacy_netdev_ops =3D { .name =3D BRCM_LEGACY_NAME, .proto =3D DSA_TAG_PROTO_BRCM_LEGACY, --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2E621F6667; Sat, 14 Jun 2025 08:00:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888011; cv=none; b=bXH+t6WHrdYfhegpka60WCS8jVmEAcnmNWs6ocXalrnbbhw6YkYMNYhXRlqBteWwUrLXVoJcCjmcSN0CBSUGIdCqNtdLwjV118+B0ff0qo6JOGe9WcoN0arMHek03mjbu8JcN8AVPmJOer03edD5mxDiEMor3BTmkdpJZMDZ0oA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888011; c=relaxed/simple; bh=hBIC7ibZJprFVGAbStn9nVa6o5lngPlDH7dJWIaSKoI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=i7x3qkotsgA4EJUQXNl9olnZO+ghmsZfsLWx6Tg9ERGu43ADBE79oLkhDHp2j0I/4Nr5AXLsyby81vsWwVRTHJfzQgKHC5oD4d3PCXC3ZECdLIgeWOS4329tCmZOAk5jRole4UxPc0ITD4ekQNlR5i1Nt32x71zPzAwXjm7MlIU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=F2MFunfp; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="F2MFunfp" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-450cfb79177so17324695e9.0; Sat, 14 Jun 2025 01:00:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888007; x=1750492807; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=saBAdVrgLoJUYxuzwdl958AD6BoFHw9mf+Va4ZiZ2S8=; b=F2MFunfpnM7tZwaNvCdsD3ltLG1BXHTY486LmiXBYPWgIkqXAy9UgV55IzwdtzHSwE GNLEVpoT8GX2sBSiVHmKlqpL0qERq4RkdqUtCXOoF89mvN0Fs1kjCe1G5ud96IyDRrvx rcAm6vrrafFXbhjQemkAp6gvn7icwKeocfe+yaaERpD82Vtc/+vpFFu4CKObuAfc7rGc sodfN65+/4KF4AlzB+7NjKNN2gw/lJDy79tc23pAtJhRqMhPZ9D/z3bfMblgR81NN4wC HYJXBBemea0YuJ8NWvzehvtCjabACxpbrLKJBkHSTR4f1fWUS2xD3AQ73PuiRhBEL+Jj EPOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888007; x=1750492807; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=saBAdVrgLoJUYxuzwdl958AD6BoFHw9mf+Va4ZiZ2S8=; b=kg572iOiQxw48rsTk1IaUl2uyZpoSngx2NClRuqPq7+eYqfghNFY73F6JcSHwAuUug hnUINHxu5A8989zFZHZ/nO8afPYkmVq8Xs51eL+2e+KmWq4C2+aH6etXAp7Isseyh1Pz WDayV9LBEHwd0w2boipHUif9dFsFStvxhucndZN6GghFOabqxBalK6SrEpQCEFimAa3O wVKlaFKrofO0xx0Kuvb6srqMSiJeD+yjfA/WnZ77qxdaIzMsC1/kxDyitqzwLvUEm+6K fFS+YA1MTxwmNA9xUOi3REj82y/dfC92FeOUWSbdGBXfYr8Xc/DtvFlrWdNeZMmVghdE IX6A== X-Forwarded-Encrypted: i=1; AJvYcCVAdEJ6nk6LB6EGBllkP6lOcS3K2u0JSHhafRpSzy5U77mQMvCyPK9NAIUzeLqa9qnIfkwceSSRCug+RII=@vger.kernel.org, AJvYcCVtY8kNhYZmiVYc6HxGYO9AiPARfYQsucs6dQlHY6l+1VbJwB/LbH6jjwAcQ6vhMCekQek6c9+J@vger.kernel.org X-Gm-Message-State: AOJu0YwSJQc7QdQkiHvMVfdquVOcrAinfJ0ul/sITRlprTfZBkXVK5Ha ER0M8NoYFr+wa8iGcJicPIywgqXKQqy50CNPa5zF8zCSrDzgf42lyq51 X-Gm-Gg: ASbGncuAO8HyMFCXZZQew4Z9YZqJ1EePv3cm3tqGBtl/fpphvsIbA7VjI86CH+U3yHx 2JoeoDs4t4PegLmJ8coBKpGFCT5f0kesY+y0HGePV0uTvkR3oh8Tn2Ssh/7DBpWo7/D+GztYxrQ 4fh+c2XPZv/wlLfAIH2l0s7Kq+i/gyMHgCcPGPo0zNZB+7SL0Fk5CfU944NlcyYmGWhcsG2mCfT z8PrcWNwMMrVLVmX8avdRbER04DeW7VUVHW5evtsghSVFNnFA3PQFguRM3bJt8jTTIn+Cl6xt35 ugsbcpMla68Cx2lvlnbv5yvpupYTcZk6uSICNSJtyhaEEmuYHvm9Sle3ezv4zd7kvftLDVvajbj 6F4O3Q2PtIhmH187/B9/gb5zHDCRWMcx6jIGtGsvk7SKT408PbXW/wUHvLAx64iWSmHhPcCMXUA == X-Google-Smtp-Source: AGHT+IH5+fBJtfNrQ1pa+00DSZ6P+qfFQvM+MNRZnXi49bNexZSo+L0uOFotlkimSwmvZVn6bJph9w== X-Received: by 2002:a05:600c:524b:b0:44a:b793:9e4f with SMTP id 5b1f17b1804b1-4533cad6e4emr24017135e9.19.1749888006906; Sat, 14 Jun 2025 01:00:06 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:05 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 02/14] net: dsa: tag_brcm: add support for legacy FCS tags Date: Sat, 14 Jun 2025 09:59:48 +0200 Message-Id: <20250614080000.1884236-3-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Add support for legacy Broadcom FCS tags, which are similar to DSA_TAG_PROTO_BRCM_LEGACY. BCM5325 and BCM5365 switches require including the original FCS value and length, as opposed to BCM63xx switches. Adding the original FCS value and length to DSA_TAG_PROTO_BRCM_LEGACY would impact performance of BCM63xx switches, so it's better to create a new tag. Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas Reviewed-by: Florian Fainelli --- include/net/dsa.h | 2 ++ net/dsa/Kconfig | 16 ++++++++-- net/dsa/tag_brcm.c | 73 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 88 insertions(+), 3 deletions(-) v4: fix line length warning. v3: fix warnings: - Improve Kconfig description. - Use __le32 type. - Use crc32_le() instead of crc32(). v2: replace swab32 with cpu_to_le32. diff --git a/include/net/dsa.h b/include/net/dsa.h index 55e2d97f247e..d73ea0880066 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -54,11 +54,13 @@ struct tc_action; #define DSA_TAG_PROTO_RZN1_A5PSW_VALUE 26 #define DSA_TAG_PROTO_LAN937X_VALUE 27 #define DSA_TAG_PROTO_VSC73XX_8021Q_VALUE 28 +#define DSA_TAG_PROTO_BRCM_LEGACY_FCS_VALUE 29 =20 enum dsa_tag_protocol { DSA_TAG_PROTO_NONE =3D DSA_TAG_PROTO_NONE_VALUE, DSA_TAG_PROTO_BRCM =3D DSA_TAG_PROTO_BRCM_VALUE, DSA_TAG_PROTO_BRCM_LEGACY =3D DSA_TAG_PROTO_BRCM_LEGACY_VALUE, + DSA_TAG_PROTO_BRCM_LEGACY_FCS =3D DSA_TAG_PROTO_BRCM_LEGACY_FCS_VALUE, DSA_TAG_PROTO_BRCM_PREPEND =3D DSA_TAG_PROTO_BRCM_PREPEND_VALUE, DSA_TAG_PROTO_DSA =3D DSA_TAG_PROTO_DSA_VALUE, DSA_TAG_PROTO_EDSA =3D DSA_TAG_PROTO_EDSA_VALUE, diff --git a/net/dsa/Kconfig b/net/dsa/Kconfig index 2dfe9063613f..869cbe57162f 100644 --- a/net/dsa/Kconfig +++ b/net/dsa/Kconfig @@ -42,12 +42,24 @@ config NET_DSA_TAG_BRCM Broadcom switches which place the tag after the MAC source address. =20 config NET_DSA_TAG_BRCM_LEGACY - tristate "Tag driver for Broadcom legacy switches using in-frame headers" + tristate "Tag driver for BCM63xx legacy switches using in-frame headers" select NET_DSA_TAG_BRCM_COMMON help Say Y if you want to enable support for tagging frames for the - Broadcom legacy switches which place the tag after the MAC source + BCM63xx legacy switches which place the tag after the MAC source address. + This tag is used in BCM63xx legacy switches which work without the + original FCS and length before the tag insertion. + +config NET_DSA_TAG_BRCM_LEGACY_FCS + tristate "Tag driver for BCM53xx legacy switches using in-frame headers" + select NET_DSA_TAG_BRCM_COMMON + help + Say Y if you want to enable support for tagging frames for the + BCM53xx legacy switches which place the tag after the MAC source + address. + This tag is used in BCM53xx legacy switches which expect original + FCS and length before the tag insertion to be present. =20 config NET_DSA_TAG_BRCM_PREPEND tristate "Tag driver for Broadcom switches using prepended headers" diff --git a/net/dsa/tag_brcm.c b/net/dsa/tag_brcm.c index 9f4b0bcd95cd..26bb657ceac3 100644 --- a/net/dsa/tag_brcm.c +++ b/net/dsa/tag_brcm.c @@ -15,6 +15,7 @@ =20 #define BRCM_NAME "brcm" #define BRCM_LEGACY_NAME "brcm-legacy" +#define BRCM_LEGACY_FCS_NAME "brcm-legacy-fcs" #define BRCM_PREPEND_NAME "brcm-prepend" =20 /* Legacy Broadcom tag (6 bytes) */ @@ -32,6 +33,10 @@ #define BRCM_LEG_MULTICAST (1 << 5) #define BRCM_LEG_EGRESS (2 << 5) #define BRCM_LEG_INGRESS (3 << 5) +#define BRCM_LEG_LEN_HI(x) (((x) >> 8) & 0x7) + +/* 4th byte in the tag */ +#define BRCM_LEG_LEN_LO(x) ((x) & 0xff) =20 /* 6th byte in the tag */ #define BRCM_LEG_PORT_ID (0xf) @@ -212,7 +217,8 @@ DSA_TAG_DRIVER(brcm_netdev_ops); MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_BRCM, BRCM_NAME); #endif =20 -#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY) +#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY) || \ + IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY_FCS) static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff *skb, struct net_device *dev) { @@ -244,7 +250,9 @@ static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff = *skb, =20 return skb; } +#endif /* CONFIG_NET_DSA_TAG_BRCM_LEGACY || CONFIG_NET_DSA_TAG_BRCM_LEGACY= _FCS */ =20 +#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY) static struct sk_buff *brcm_leg_tag_xmit(struct sk_buff *skb, struct net_device *dev) { @@ -294,6 +302,66 @@ DSA_TAG_DRIVER(brcm_legacy_netdev_ops); MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_BRCM_LEGACY, BRCM_LEGACY_NAME); #endif /* CONFIG_NET_DSA_TAG_BRCM_LEGACY */ =20 +#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY_FCS) +static struct sk_buff *brcm_leg_fcs_tag_xmit(struct sk_buff *skb, + struct net_device *dev) +{ + struct dsa_port *dp =3D dsa_user_to_port(dev); + unsigned int fcs_len; + __le32 fcs_val; + u8 *brcm_tag; + + /* The Ethernet switch we are interfaced with needs packets to be at + * least 64 bytes (including FCS) otherwise they will be discarded when + * they enter the switch port logic. When Broadcom tags are enabled, we + * need to make sure that packets are at least 70 bytes (including FCS + * and tag) because the length verification is done after the Broadcom + * tag is stripped off the ingress packet. + * + * Let dsa_user_xmit() free the SKB. + */ + if (__skb_put_padto(skb, ETH_ZLEN + BRCM_LEG_TAG_LEN, false)) + return NULL; + + fcs_len =3D skb->len; + fcs_val =3D cpu_to_le32(crc32_le(~0, skb->data, fcs_len) ^ ~0); + + skb_push(skb, BRCM_LEG_TAG_LEN); + + dsa_alloc_etype_header(skb, BRCM_LEG_TAG_LEN); + + brcm_tag =3D skb->data + 2 * ETH_ALEN; + + /* Broadcom tag type */ + brcm_tag[0] =3D BRCM_LEG_TYPE_HI; + brcm_tag[1] =3D BRCM_LEG_TYPE_LO; + + /* Broadcom tag value */ + brcm_tag[2] =3D BRCM_LEG_EGRESS | BRCM_LEG_LEN_HI(fcs_len); + brcm_tag[3] =3D BRCM_LEG_LEN_LO(fcs_len); + brcm_tag[4] =3D 0; + brcm_tag[5] =3D dp->index & BRCM_LEG_PORT_ID; + + /* Original FCS value */ + if (__skb_pad(skb, ETH_FCS_LEN, false)) + return NULL; + skb_put_data(skb, &fcs_val, ETH_FCS_LEN); + + return skb; +} + +static const struct dsa_device_ops brcm_legacy_fcs_netdev_ops =3D { + .name =3D BRCM_LEGACY_FCS_NAME, + .proto =3D DSA_TAG_PROTO_BRCM_LEGACY_FCS, + .xmit =3D brcm_leg_fcs_tag_xmit, + .rcv =3D brcm_leg_tag_rcv, + .needed_headroom =3D BRCM_LEG_TAG_LEN, +}; + +DSA_TAG_DRIVER(brcm_legacy_fcs_netdev_ops); +MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_BRCM_LEGACY_FCS, BRCM_LEGACY_FCS= _NAME); +#endif /* CONFIG_NET_DSA_TAG_BRCM_LEGACY_FCS */ + #if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_PREPEND) static struct sk_buff *brcm_tag_xmit_prepend(struct sk_buff *skb, struct net_device *dev) @@ -328,6 +396,9 @@ static struct dsa_tag_driver *dsa_tag_driver_array[] = =3D { #if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY) &DSA_TAG_DRIVER_NAME(brcm_legacy_netdev_ops), #endif +#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_LEGACY_FCS) + &DSA_TAG_DRIVER_NAME(brcm_legacy_fcs_netdev_ops), +#endif #if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_PREPEND) &DSA_TAG_DRIVER_NAME(brcm_prepend_netdev_ops), #endif --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1648A1F91D6; Sat, 14 Jun 2025 08:00:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888012; cv=none; b=FjZawOcx/xVPQmmfo0jGMdW8VU6/PKmrJ8eLkhgtoM9jm2RKsHVIallo2Mvitaa4hzSC/iMyS2bUZnzvDszZ2rjqGlaLE43x2n/kIEFv4OEPcnpb7m47YtS+Olf0IQwzG+B9RzooLr7n1lSdbqV4wAFrvErF7hxvXolKSL1wE5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888012; c=relaxed/simple; bh=AvDSrMYOB+62sI2ATZ8euwTxBDYD8jeVulP2FTqyL5E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=rPer7RhzD+9oHB1IW6mYSTso9yKxK3W3cJa+DWwVYYx5Zwg+Uunh/bd02AasXFSkVHUYyneNy9IFE4POrm3LHDg1Xg0cDOBkdTOaNZmVnh5NRnrfD5u93MsmaGeZKY1HjcljDTnIqYtohoeFSUb7zUn2HPArKs0DKw4KhV2vzEo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TNO6vPYy; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TNO6vPYy" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-43edecbfb46so21038815e9.0; Sat, 14 Jun 2025 01:00:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888008; x=1750492808; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mrO15ejqLeiAShTFCbp2Axq2Bd3inxDFGZkqqeBV+/8=; b=TNO6vPYyR4fWTBugwEJOK9Jeu7tD6AsiHWEBUXbHo8NaxANzzdlg83fAkdTLIESopE p7yNxq3VA5iZK01uE+RfKzwuQfRe0Ji+I82PLylkj0SmhSM0Xtz4lOmwiNRBvOqTTHZU 9YCUn5ASg5Q3btmE9XlC3GJN4VfgcYDd+QNlHwPL7SY3nKnWd3s73VsZcAQrt4fOkJTV HM0Q2ZwDsdUHNGzYlzVq35iMaFhSkeq3iVXqdaWUIKZ6cpIKDNNPOE0k5KJJQyW0yi6w Jh20aINYERJKEbJCAZ+L0ipWBbF90yO82GtHfSVnzv6+/7R87OjvfMkEtqARi7eI1/FO SnZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888008; x=1750492808; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mrO15ejqLeiAShTFCbp2Axq2Bd3inxDFGZkqqeBV+/8=; b=SkDDzrfjIvtDVhNIonHqOzfrEgWIw5QYhRtucnN9OJP+KFm91JGCVX9PCaYE8gKkVa VekvSFpbM3FE3xARMQOX16U60+9yURROl8q16dWBpY6dlqDkCAqBI7qLpFWeAOwOZ0Mi BehtKzx9FaN0NSbhNih7y4LmQZsI9PXvWI7QsaLljbYttv6YoQJNEy5fwu5v08RxWVyK YNPUKC0lpYNKtdOYKDxfwtsPgWxHselahw9xPyKOFSIf8TR7eCZGOPzqW6W84Zg0O6ml LpXC3CKbZZdHAgiOyt1WrYbo9ckHD5Yh39qgbQ2gVODvZE7Tep1476p7QVnc6uXSciKH FphQ== X-Forwarded-Encrypted: i=1; AJvYcCVIgWxefrXhNI1MNrFgD+bHukO2UR4FhtYQORFMuPuhx87cqwqiwjrv9csF5dYxywpkS553MzpK@vger.kernel.org, AJvYcCVy8x7YAeLedsHkpk7fmE7yrk1XYXvpVqJWa2ugWERBDNyLXd5gZBGt6Ueod68lgNT5Pp1aVI4/6oHc+G8=@vger.kernel.org X-Gm-Message-State: AOJu0YzAGt4O2yZGOROFzTHnEmcGS0Bwdy698uV0WrGnHC+sB5IzCmeW SM70tQGLBkYjOVTUSzj97WPGMg9tLix38Qegoz7XJnz3LWGuOHRdo7wr X-Gm-Gg: ASbGnctWCKWUAOeDfG2BocF2HsCwM+gg3ktZq35RmeW70RGA2JjFpWRGpBahAShbqca PJBi2q3O+hkm/ZUc41HQ77nwUlc7Eu1Lup0LM+Xud6CO9sdfVjksT4GiW71SBf8Qhqx8RnYRAkc mQyuCnyQLKEp4dA8skIxRCbiignjCrGr1u8M2W5tnCiSGGf9PRNEldU0R9jJmibY0Oqve1GxGsq sl1f1727gDYoealwMfiLrGuwXGMMIc6F2W5SrYAgm00bJIwXXU1L0URldsw7KFHlSsbxampKn4U p0M8KyZj+4If7oR6hRquXkp3YsfccHffjADqF6fGY3nNDa8iauHidWn8UvEYw6KNeYEBGAd7WxA UHAPxoVGgWGQrfSrTwZnFOOHQSmrvVgar6WcH6cXI96fcgbUxQ6d9HYXZ3IENfcE= X-Google-Smtp-Source: AGHT+IFDxe1RO0oStKqmI4O5/PkufOYYRhxuHZgaGzGLIVDOrZFAQmaXBwfMM0Qy1Uba7dFQcgDSBA== X-Received: by 2002:a05:600c:3f0c:b0:450:d07e:ee14 with SMTP id 5b1f17b1804b1-4533cb3be4bmr25596685e9.17.1749888008154; Sat, 14 Jun 2025 01:00:08 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:07 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 03/14] net: dsa: b53: support legacy FCS tags Date: Sat, 14 Jun 2025 09:59:49 +0200 Message-Id: <20250614080000.1884236-4-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Commit 46c5176c586c ("net: dsa: b53: support legacy tags") introduced support for legacy tags, but it turns out that BCM5325 and BCM5365 switches require the original FCS value and length, so they have to be treated differently. Fixes: 46c5176c586c ("net: dsa: b53: support legacy tags") Reviewed-by: Florian Fainelli Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/Kconfig | 1 + drivers/net/dsa/b53/b53_common.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) v4: no changes v3: no changes v2: no changes diff --git a/drivers/net/dsa/b53/Kconfig b/drivers/net/dsa/b53/Kconfig index ebaa4a80d544..915008e8eff5 100644 --- a/drivers/net/dsa/b53/Kconfig +++ b/drivers/net/dsa/b53/Kconfig @@ -5,6 +5,7 @@ menuconfig B53 select NET_DSA_TAG_NONE select NET_DSA_TAG_BRCM select NET_DSA_TAG_BRCM_LEGACY + select NET_DSA_TAG_BRCM_LEGACY_FCS select NET_DSA_TAG_BRCM_PREPEND help This driver adds support for Broadcom managed switch chips. It supports diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index dc2f4adac9bc..9a038992f043 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2241,8 +2241,11 @@ enum dsa_tag_protocol b53_get_tag_protocol(struct ds= a_switch *ds, int port, goto out; } =20 - /* Older models require a different 6 byte tag */ - if (is5325(dev) || is5365(dev) || is63xx(dev)) { + /* Older models require different 6 byte tags */ + if (is5325(dev) || is5365(dev)) { + dev->tag_protocol =3D DSA_TAG_PROTO_BRCM_LEGACY_FCS; + goto out; + } else if (is63xx(dev)) { dev->tag_protocol =3D DSA_TAG_PROTO_BRCM_LEGACY; goto out; } --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 542E51FBEB1; Sat, 14 Jun 2025 08:00:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888013; cv=none; b=WH3WQweClQ2DJx+/Pd3UWezd7zfhw2xNa1pNaKTqvepo95pwU1BgSsY+EfRBjX/y+bn3IB/x8K4FKXZRN37GXFbZIl6xqBvmVEgsFUZ+PoQAME7RIRUgucjVbPo4og8TsgbnIWz9idoAXoV5cuwBWfmTj4/AT9qAjnHFIC1en9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888013; c=relaxed/simple; bh=bcY9f0/XSJcXeplWGQXkLvBPRse1p8CAC8CIVCUNVN0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=c4nonYwBkm5D+/Si50BHje3i4JXQ2q/tonI3Qywyfid+jho73+mufolMU20m3qAPGebt3O7cUot7WnK70wyLsLCPGklpmfssoLB4PDfnxkDj4UDIYd3Ju8CmzKRkhDP0zFzw/UWA0JHqS/oq+ACW6G1t3EaP4dEyZfZlMTixUcI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=VBf5zB+d; arc=none smtp.client-ip=209.85.221.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VBf5zB+d" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-3a4f71831abso2614374f8f.3; Sat, 14 Jun 2025 01:00:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888010; x=1750492810; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0gzliT29V2BC55uTgUs70QieRTBAGDNh9NCehiFYnyA=; b=VBf5zB+dLPqxzed+hnpf95Fq6BzH+qoeS6sieuQiEje3I12/FZ9lZTsGrTDgha2D7H 5IjUFdiaedZ/FTJ/ueYBMdVlyzT7MPrJ/6gsEXOn50iZ50aVDXlr5PxZ4O77ca1ixRcZ nKA+yJYqMkd+3PLo15CWzerk3k6mQMFLL5/KFcgk1nPS2uXIJ2ekVhE/XI0IfoMd0VYf 3zxuf2nq2DiyA3Wh0Kbp4qHVEwGEDMNXmXkdXar9tgcc5NjiyaQu3ir2t74JFUNZJapS ITqU7+DYlNbzoQrk/juT4er+ptkmKS47veIArexma9V2cTSKMvTHsZz+C5MgtBiEyt1U KmVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888010; x=1750492810; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0gzliT29V2BC55uTgUs70QieRTBAGDNh9NCehiFYnyA=; b=Z39ttQvAXMwcAh9l+KCxejzaVARciF50A73pGPi3GpA6DtzmEX8ohEUtkym1YSgwuM 5lScOxTblI48Ib+gJU6ilXYY/2+l9IzPSTR+WxXSQDBvANsrtapJssSS0ObNLPao5WkO 9izUVP8lfKRBZfgdKQVSvPi3w0AkjwEZ/YOuS/BJSwnZLpG1a7s9Ms00O/twmHJs1VEN WqKAJ6l5SuIwD3LFXpI5m1+seH/56YP2ISDmWuT+IMeeT7TYkT+z9ZLEiAsxdAt61MDT r/cqjddyslRW5Xr9M2hsrbgr5xUF5XxIu5aiZolWfp+wVdP9Swt2hkBdlysDLCUA6GGh 3aXA== X-Forwarded-Encrypted: i=1; AJvYcCUkgLNlZoHBDdH0WwZAT9vN0aJyif577Xyi5wRwAhZfmtzvwVc1d114A2IKjIb6QI7sAcMs+jWE@vger.kernel.org, AJvYcCXGqHlvHOxgUecy59oZDRnU0ZlKoX7GjiZxqzIkG+hiUfLFl14vaTAU60UlVePokTwseA6wZ315oDtDmAs=@vger.kernel.org X-Gm-Message-State: AOJu0Yz3RcCa3Qv7lVBxDXWv8b9UR/nzLQFgZNmuXwIFERkAIcPFbc2N tSK4Lox0IzVJrerl8iQiJO4bDzFyldR0JB+mGZ5cgz724u3BPrJqM3ky X-Gm-Gg: ASbGnctjsR15FOXZOnjPYtQeNzGjYtnhAmlib8QfqXjl1yBCv7gnhOuUdNe7l72FvXx z9VLEvJx5RjWL2Bnte35fPZj1I3HtW4aMQagxG4h/eqgQMbf99oLfDU5Z8vrIjdFT4T9bi0gBBl lL6tBJja8laEnu5l7cYVY9InJQzKQDyFpVGJNOWQcDjreWTcLqxDZfY+Tq+meRsuVIbT0fZ7ZJ7 os7LRmO5+VgI5z2yPkK0UvXsTJyH+JPONYkR4c5N1NRxSDZRGLc2VQmyee2MkOv3h1r1xfOX6La WwBCT8r4AXqttCs+YYbSY9pabCl7bco+6FUFMyf/yX+qLfDNJVtI7jwj5bhsrciHCTlgV8oIU1P WFuT+V4sYjNzx43TUuW6xBh+sL+P7qFM18/C0nvIfHLHVKqC4sbPmiYY0p/0YvsQ= X-Google-Smtp-Source: AGHT+IHVrPhtpNPEMqHo8KrU7PDlOJw+RnNlhzLGjJZ7IOR1lvhX2XDYAVl0UY/4tT5Zi2Dnbm72tg== X-Received: by 2002:a05:6000:2dc3:b0:3a5:1240:6802 with SMTP id ffacd0b85a97d-3a572e58463mr2160977f8f.57.1749888009443; Sat, 14 Jun 2025 01:00:09 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:08 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 04/14] net: dsa: b53: detect BCM5325 variants Date: Sat, 14 Jun 2025 09:59:50 +0200 Message-Id: <20250614080000.1884236-5-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable We need to be able to differentiate the BCM5325 variants because: - BCM5325M switches lack the ARLIO_PAGE->VLAN_ID_IDX register. - BCM5325E have less 512 ARL buckets instead of 1024. Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 24 +++++++++++++++++++++--- drivers/net/dsa/b53/b53_priv.h | 19 +++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) v4: add changes requested by Jonas and other improvements: - Introduce variant_id field in b53_device. - Reduce number of ARL buckets for BCM5325E. - Disable ARLIO_PAGE->VLAN_ID_IDX access for BCM5325M. v3: detect BCM5325 variants as requested by Florian. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 9a038992f043..a7c75f44369a 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1778,7 +1778,8 @@ static int b53_arl_op(struct b53_device *dev, int op,= int port, =20 /* 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 (!is5325m(dev)) + b53_write16(dev, B53_ARLIO_PAGE, B53_VLAN_ID_IDX, vid); =20 /* Issue a read operation for this MAC */ ret =3D b53_arl_rw_op(dev, 1); @@ -2833,6 +2834,9 @@ static int b53_switch_init(struct b53_device *dev) } } =20 + if (is5325e(dev)) + dev->num_arl_buckets =3D 512; + dev->num_ports =3D fls(dev->enabled_ports); =20 dev->ds->num_ports =3D min_t(unsigned int, dev->num_ports, DSA_MAX_PORTS); @@ -2934,10 +2938,24 @@ int b53_switch_detect(struct b53_device *dev) b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, 0xf); b53_read16(dev, B53_VLAN_PAGE, B53_VLAN_TABLE_ACCESS_25, &tmp); =20 - if (tmp =3D=3D 0xf) + if (tmp =3D=3D 0xf) { + u32 phy_id; + int val; + dev->chip_id =3D BCM5325_DEVICE_ID; - else + + val =3D b53_phy_read16(dev->ds, 0, MII_PHYSID1); + phy_id =3D (val & 0xffff) << 16; + val =3D b53_phy_read16(dev->ds, 0, MII_PHYSID2); + phy_id |=3D (val & 0xfff0); + + if (phy_id =3D=3D 0x00406330) + dev->variant_id =3D B53_VARIANT_5325M; + else if (phy_id =3D=3D 0x0143bc30) + dev->variant_id =3D B53_VARIANT_5325E; + } else { dev->chip_id =3D BCM5365_DEVICE_ID; + } break; case BCM5389_DEVICE_ID: case BCM5395_DEVICE_ID: diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index a5ef7071ba07..e8689410b5d0 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -84,6 +84,12 @@ enum { BCM53134_DEVICE_ID =3D 0x5075, }; =20 +enum b53_variant_id { + B53_VARIANT_NONE =3D 0, + B53_VARIANT_5325E, + B53_VARIANT_5325M, +}; + struct b53_pcs { struct phylink_pcs pcs; struct b53_device *dev; @@ -118,6 +124,7 @@ struct b53_device { =20 /* chip specific data */ u32 chip_id; + enum b53_variant_id variant_id; u8 core_rev; u8 vta_regs[3]; u8 duplex_reg; @@ -165,6 +172,18 @@ static inline int is5325(struct b53_device *dev) return dev->chip_id =3D=3D BCM5325_DEVICE_ID; } =20 +static inline int is5325e(struct b53_device *dev) +{ + return is5325(dev) && + dev->variant_id =3D=3D B53_VARIANT_5325E; +} + +static inline int is5325m(struct b53_device *dev) +{ + return is5325(dev) && + dev->variant_id =3D=3D B53_VARIANT_5325M; +} + static inline int is5365(struct b53_device *dev) { #ifdef CONFIG_BCM47XX --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DD8271FF1A0; Sat, 14 Jun 2025 08:00:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888014; cv=none; b=V5JtiMPlgGd9VXMu04uHanqMYcS1EWrnjYffWcWWAiTgejUKIkOYjwBa4smHYDKFOFkPFxh9/XuXG4qPItbNdRvTb+FludK17OIFTM1iIK49pPtZirBc4fHV+YPUdm2r5p7ADr/fLvjZYgdeihnJHNB12j72lRF2iTgTCvWU24M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888014; c=relaxed/simple; bh=26o+UGPZaA/meJ/rPwsDm9Lg+d5FmvrtLi02Z5EPy7A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=tF3IAImV5rUFWbD6C43l70hxBb+HXGo3S+1vxF+pv6cJJXwX/t/IU4JqRg1UUBAv2JlR9wo+qE4H8qB+aS7pTMJW7EBvoUpRxHXh9/mVm/3SLq6YMW2qHCfWVOEIICe19/C9d1LmuwASqRXFgZwYJC5BiSZHLwdFLu8rFXCrkjE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TCf3erGI; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TCf3erGI" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3a522224582so1578288f8f.3; Sat, 14 Jun 2025 01:00:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888011; x=1750492811; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hKKuX2du2tVXvdcp256SQK3CEesyHkcmsHeAzB6+slc=; b=TCf3erGIYgxKf7TFceWBYlXF8jbi+0TXWpbrkWHK9Yb4CCZbFqauu0SDY/Ix5767bS JBIXyu6VkcLpPzE43qoRqVAavM6KRcjQ0nj9mwK/PHv2waoo3ax5uud5D6qDUXo9tbjR i3/ZNpkgoL+BzkF88rLOlh8FEg8XVChi9WhCCiSLJUpW7opBvhHDKisEPu5DNt/ZAuD9 qMn2vRZLHw7HyWcyJIg3suMZfP2GMbSX79olipfkO/JKI1nzYkFXsoK0N9AxvWY6jVXB Mk+3klPLyiDPQ4HdGfR1k/JMX5k6WvHF/nh6odFqRAdZzvGPj85zGHV3JMQfUZWBK7rZ 52SA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888011; x=1750492811; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hKKuX2du2tVXvdcp256SQK3CEesyHkcmsHeAzB6+slc=; b=uXE4BAc04sz4jW8NZ13yet4ibsVMdAzwNJchpKI/X6caMKZAcHdF9FTqMt0D2BNgZn /f4XWzf+T7MViQgeVzHAAbrYn1E4fCf8eSC+hLq77fTJUcWCmKT3au2qoYX8plmjzU5e OWPuevfTa8Kzk+ldpv3kGqWJ8Be5pP+XeaPwK/gSQUGWRoyOnMoYKKuEOTGH2vvjCtny lJw2oXBi69Ecv8OabSFMbO6QpGseTOXsHyAxhu3HUFfy+85fxTYwkOvhzZRLCyjUN5ta O+02lGjZpcB6haBfqNESU4BIgupUKoOX8PzTNRij2ktTeVc2vn1blxS/9hcjq0/zby4w pGkg== X-Forwarded-Encrypted: i=1; AJvYcCWOmApQdD0nuiMO6ImgXYJf4lrQglanZUH5YubM+VLesy97aflYItdE58JdihuNhsBSQrN2eZaa@vger.kernel.org, AJvYcCWiiY/4KHSxOeWjUEWbWhCyTaJw20RbDxzHl+rME76v4QofPvV8YJLMNpGXyTIlBiVnyps/esfRhX6mzhY=@vger.kernel.org X-Gm-Message-State: AOJu0Yzb37zFWrAiurfGZ7he742o9ZShvUNgHoDX0YGqMg4gIlluP5jz i6cl6u4UuyQyouNo4Y7idCqw4nBvZzJ7ayMeCgkvkjvuAAWbkwP3ZfgG X-Gm-Gg: ASbGncvWMClLfNpH/Y5onGowP+ZHrxOfD7HoUB41ZgsL38z954nCzcyYWGS2UC0fUI+ EIE4MTA0cFVoH0yK7zb33wx6+WEK6P2MKR+X6kugHv0eqvkNCL4JzMd7HkTyR7xXzn0OkdbJrmd +/EVgWeUqaujXD39lb/kUoUkaSaBHQ/mVJrNebjEWI4DCpUNlG3mwn5HdsR1OiBh2QB13hsCII8 kKh762EDEXSXJYSzqdfZ/BrDyYDMxEYwbYbAVxZHIHVzzX7+CSKxILZgNO89GfMeFJF/LwTaSWI B6WYCwtbSKncvKoDsppr5EiRzQiy7EfnZD0JbFFiYhQ4TLeV/iz0mK/qJfMw72yltMe7yURW2sf /f00JmmXBMsp+G5Cfdd1OgV+Pit0WHLx8xBvui1XOOPXLZ8LnkNKfDglAhM+G+Sj370JuRl+9qQ == X-Google-Smtp-Source: AGHT+IGfA3gZQ1qHGOCo6owzvyE0BChw5HQOTvt3R/X6ENN8y/A/dgVlMBY72PnUkBFUc0R5KEZ46g== X-Received: by 2002:a05:6000:2c13:b0:3a4:d0dc:184d with SMTP id ffacd0b85a97d-3a5723a2d79mr2454318f8f.27.1749888010835; Sat, 14 Jun 2025 01:00:10 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:10 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: Florian Fainelli , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 05/14] net: dsa: b53: add support for FDB operations on 5325/5365 Date: Sat, 14 Jun 2025 09:59:51 +0200 Message-Id: <20250614080000.1884236-6-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Florian Fainelli 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 Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 101 +++++++++++++++++++++++++------ drivers/net/dsa/b53/b53_priv.h | 29 +++++++++ drivers/net/dsa/b53/b53_regs.h | 7 ++- 3 files changed, 115 insertions(+), 22 deletions(-) v4: move B53_VLAN_ID_IDX BCM5325M check to the previous patch. v3: add changes requested by Florian: - B53_VLAN_ID_IDX exists in newer BCM5325E switches. v2: add changes requested by Jonas and fix proposed by Florian: - 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. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index a7c75f44369a..033cd78577f7 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1764,6 +1764,45 @@ static int b53_arl_read(struct b53_device *dev, u64 = mac, return *idx >=3D dev->num_arl_bins ? -ENOSPC : -ENOENT; } =20 +static int b53_arl_read_25(struct b53_device *dev, u64 mac, + u16 vid, struct b53_arl_entry *ent, u8 *idx) +{ + DECLARE_BITMAP(free_bins, B53_ARLTBL_MAX_BIN_ENTRIES); + unsigned int i; + int ret; + + ret =3D b53_arl_op_wait(dev); + if (ret) + return ret; + + bitmap_zero(free_bins, dev->num_arl_bins); + + /* Read the bins */ + for (i =3D 0; i < dev->num_arl_bins; i++) { + u64 mac_vid; + + b53_read64(dev, B53_ARLIO_PAGE, + B53_ARLTBL_MAC_VID_ENTRY(i), &mac_vid); + + b53_arl_to_entry_25(ent, mac_vid); + + if (!(mac_vid & ARLTBL_VALID_25)) { + set_bit(i, free_bins); + continue; + } + if ((mac_vid & ARLTBL_MAC_MASK) !=3D mac) + continue; + if (dev->vlan_enabled && + ((mac_vid >> ARLTBL_VID_S_65) & ARLTBL_VID_MASK_25) !=3D vid) + continue; + *idx =3D i; + return 0; + } + + *idx =3D find_first_bit(free_bins, dev->num_arl_bins); + return *idx >=3D dev->num_arl_bins ? -ENOSPC : -ENOENT; +} + static int b53_arl_op(struct b53_device *dev, int op, int port, const unsigned char *addr, u16 vid, bool is_valid) { @@ -1786,7 +1825,10 @@ static int b53_arl_op(struct b53_device *dev, int op= , int port, if (ret) return ret; =20 - ret =3D b53_arl_read(dev, mac, vid, &ent, &idx); + if (is5325(dev) || is5365(dev)) + ret =3D b53_arl_read_25(dev, mac, vid, &ent, &idx); + else + ret =3D b53_arl_read(dev, mac, vid, &ent, &idx); =20 /* If this is a read, just finish now */ if (op) @@ -1830,12 +1872,17 @@ static int b53_arl_op(struct b53_device *dev, int o= p, int port, ent.is_static =3D true; ent.is_age =3D false; memcpy(ent.mac, addr, ETH_ALEN); - b53_arl_from_entry(&mac_vid, &fwd_entry, &ent); + if (is5325(dev) || is5365(dev)) + b53_arl_from_entry_25(&mac_vid, &ent); + else + b53_arl_from_entry(&mac_vid, &fwd_entry, &ent); =20 b53_write64(dev, B53_ARLIO_PAGE, B53_ARLTBL_MAC_VID_ENTRY(idx), mac_vid); - b53_write32(dev, B53_ARLIO_PAGE, - B53_ARLTBL_DATA_ENTRY(idx), fwd_entry); + + if (!is5325(dev) && !is5365(dev)) + b53_write32(dev, B53_ARLIO_PAGE, + B53_ARLTBL_DATA_ENTRY(idx), fwd_entry); =20 return b53_arl_rw_op(dev, 0); } @@ -1847,12 +1894,6 @@ int b53_fdb_add(struct dsa_switch *ds, int port, struct b53_device *priv =3D ds->priv; int ret; =20 - /* 5325 and 5365 require some more massaging, but could - * be supported eventually - */ - if (is5325(priv) || is5365(priv)) - return -EOPNOTSUPP; - mutex_lock(&priv->arl_mutex); ret =3D b53_arl_op(priv, 0, port, addr, vid, true); mutex_unlock(&priv->arl_mutex); @@ -1879,10 +1920,15 @@ EXPORT_SYMBOL(b53_fdb_del); static int b53_arl_search_wait(struct b53_device *dev) { unsigned int timeout =3D 1000; - u8 reg; + u8 reg, offset; + + if (is5325(dev) || is5365(dev)) + offset =3D B53_ARL_SRCH_CTL_25; + else + offset =3D B53_ARL_SRCH_CTL; =20 do { - b53_read8(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_CTL, ®); + b53_read8(dev, B53_ARLIO_PAGE, offset, ®); if (!(reg & ARL_SRCH_STDN)) return 0; =20 @@ -1899,13 +1945,24 @@ static void b53_arl_search_rd(struct b53_device *de= v, u8 idx, struct b53_arl_entry *ent) { u64 mac_vid; - u32 fwd_entry; =20 - b53_read64(dev, B53_ARLIO_PAGE, - B53_ARL_SRCH_RSTL_MACVID(idx), &mac_vid); - b53_read32(dev, B53_ARLIO_PAGE, - B53_ARL_SRCH_RSTL(idx), &fwd_entry); - b53_arl_to_entry(ent, mac_vid, fwd_entry); + if (is5325(dev)) { + b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_25, + &mac_vid); + b53_arl_to_entry_25(ent, mac_vid); + } else if (is5365(dev)) { + b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_65, + &mac_vid); + b53_arl_to_entry_25(ent, mac_vid); + } else { + u32 fwd_entry; + + b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_MACVID(idx), + &mac_vid); + b53_read32(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL(idx), + &fwd_entry); + b53_arl_to_entry(ent, mac_vid, fwd_entry); + } } =20 static int b53_fdb_copy(int port, const struct b53_arl_entry *ent, @@ -1926,14 +1983,20 @@ int b53_fdb_dump(struct dsa_switch *ds, int port, struct b53_device *priv =3D ds->priv; struct b53_arl_entry results[2]; unsigned int count =3D 0; + u8 offset; int ret; u8 reg; =20 mutex_lock(&priv->arl_mutex); =20 + if (is5325(priv) || is5365(priv)) + offset =3D B53_ARL_SRCH_CTL_25; + else + offset =3D B53_ARL_SRCH_CTL; + /* Start search operation */ reg =3D ARL_SRCH_STDN; - b53_write8(priv, B53_ARLIO_PAGE, B53_ARL_SRCH_CTL, reg); + b53_write8(priv, offset, B53_ARL_SRCH_CTL, reg); =20 do { ret =3D b53_arl_search_wait(priv); diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index e8689410b5d0..b1b9e8882ba4 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -317,6 +317,19 @@ static inline void b53_arl_to_entry(struct b53_arl_ent= ry *ent, ent->vid =3D mac_vid >> ARLTBL_VID_S; } =20 +static inline void b53_arl_to_entry_25(struct b53_arl_entry *ent, + u64 mac_vid) +{ + memset(ent, 0, sizeof(*ent)); + ent->port =3D (mac_vid >> ARLTBL_DATA_PORT_ID_S_25) & + ARLTBL_DATA_PORT_ID_MASK_25; + ent->is_valid =3D !!(mac_vid & ARLTBL_VALID_25); + ent->is_age =3D !!(mac_vid & ARLTBL_AGE_25); + ent->is_static =3D !!(mac_vid & ARLTBL_STATIC_25); + u64_to_ether_addr(mac_vid, ent->mac); + ent->vid =3D mac_vid >> ARLTBL_VID_S_65; +} + static inline void b53_arl_from_entry(u64 *mac_vid, u32 *fwd_entry, const struct b53_arl_entry *ent) { @@ -331,6 +344,22 @@ static inline void b53_arl_from_entry(u64 *mac_vid, u3= 2 *fwd_entry, *fwd_entry |=3D ARLTBL_AGE; } =20 +static inline void b53_arl_from_entry_25(u64 *mac_vid, + const struct b53_arl_entry *ent) +{ + *mac_vid =3D ether_addr_to_u64(ent->mac); + *mac_vid |=3D (u64)(ent->port & ARLTBL_DATA_PORT_ID_MASK_25) << + ARLTBL_DATA_PORT_ID_S_25; + *mac_vid |=3D (u64)(ent->vid & ARLTBL_VID_MASK_25) << + ARLTBL_VID_S_65; + if (ent->is_valid) + *mac_vid |=3D ARLTBL_VALID_25; + if (ent->is_static) + *mac_vid |=3D ARLTBL_STATIC_25; + if (ent->is_age) + *mac_vid |=3D ARLTBL_AGE_25; +} + #ifdef CONFIG_BCM47XX =20 #include diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index 1fbc5a204bc7..1f15332fb2a7 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -324,9 +324,10 @@ #define ARLTBL_VID_MASK 0xfff #define ARLTBL_DATA_PORT_ID_S_25 48 #define ARLTBL_DATA_PORT_ID_MASK_25 0xf -#define ARLTBL_AGE_25 BIT(61) -#define ARLTBL_STATIC_25 BIT(62) -#define ARLTBL_VALID_25 BIT(63) +#define ARLTBL_VID_S_65 53 +#define ARLTBL_AGE_25 BIT_ULL(61) +#define ARLTBL_STATIC_25 BIT_ULL(62) +#define ARLTBL_VALID_25 BIT_ULL(63) =20 /* ARL Table Data Entry N Registers (32 bit) */ #define B53_ARLTBL_DATA_ENTRY(n) ((0x10 * (n)) + 0x18) --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB174201004; Sat, 14 Jun 2025 08:00:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888015; cv=none; b=Wx5DWwVLtIim1tGZ6ewAmXCqqf3TSII50u4hR+kVefwiYTQShJ2MJTbV2JeEqCZ/xQL/vLVmw9gP0s094UgzohzQGlHpC7PUPrm67sFn1M/RpdCnPSvBb3VPLCc4OQNZy6o9aFYBM90I8f/SjHBCfwV9qYFxOZpfKcCGgvw7UjE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888015; c=relaxed/simple; bh=6WD9RkbNl8iD3s6c1qnhGGLhPwZn4qXPORx1Maw7pIY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=u2bQp7a5abe948G7QGa99iAgOBwGKptEseVN1PDUhyUet+TmlzynJl1SRqfd1vC9GZ4RKOXg+bzlhCWEihF9VUWMngdXJivLw805w1sqhDv2gCN3NbFxevibM2qwkjKyGwsvXFxZ438vTWrJOgetDsiKguO9SSsru6uYactOiDY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NGgtqgyi; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NGgtqgyi" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-441ab63a415so31890985e9.3; Sat, 14 Jun 2025 01:00:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888012; x=1750492812; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2ucToUG/VQ7WYTQ0UWzqAQfUODZusMjPjtsC9OuJzoQ=; b=NGgtqgyiZ5cRIlm3qu4VUdtsvxGHuMDNrPGu7U++TjsRdAMrrSxLpjRjLt26nOvYxy QwmUpAI8+2g1i6eJrfQhSGlt4SLI/tO6r7fG403pqof03P9iJSWTP31VZ2O17NpXo6uJ w26SKKV+qwIlD4YHJLxz2bvyA2fwfJMy8W/y3s37s2/IsLSZAdmqAcYN/NvAa3m+VbYK nMurtZBBPbz8CgWgqqFI+yRMM0+5KwNBLpC8vtfPKhpamMqmN3Whjw/EwsExkUBv6lum z5tGchZs1v6RCf65MJm2Br8XyQr8sCMif7xeubhKzhVfcXVm9/ZL0fA+9k83+fFKG7dP Athg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888012; x=1750492812; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2ucToUG/VQ7WYTQ0UWzqAQfUODZusMjPjtsC9OuJzoQ=; b=WwWofA8+1t0JfSZhm2T8i2ozfgOv17dq444Yaa/tC16odo9jXDdwDeae0F2xCeknjf 0wmSgg8/posB8RPrdwe3O3HIC++VwfygDfxph2FOTXQ3emfZky9jSYqtu96QuY5hU90s ZeHByZnI02VV/+3knNECejVSKVcYc/boZqKm0UKL4GB4B+qtB+MBExJ3QxcmBX7MhSKn yvSCqmuh2QWzt7g2cEIOnWDWwXxmglbVgjlOF+jyVQKAJo4BZk+cWT219buXKa3Jwuuq pxY6BEED7Mve7Ms4PxCyJMLMEcS3i6X187dVQ43XVr3F3W/S7xlD8CdM/Qm1IMh7+RQ5 PVig== X-Forwarded-Encrypted: i=1; AJvYcCUlT9qKoNw6FHGLRzSaEqYPFITNnhx2q0A1V/e6A5yhxGInDGLpvH3l5smwmAkoLscX0G/Eed2o@vger.kernel.org, AJvYcCXY0rAObgenaUQKHDqIfoQQTY4KyuCm0D/crwR0304yLyN4UM/oUX5AeyuxcAh+jQDNbZjHdDFEcJyBSyo=@vger.kernel.org X-Gm-Message-State: AOJu0Yx10Qfmc8Q2233nYt2lwVXREPd+619yVytigRiWa8BlwrgB5PSJ 4zT6dBoJaUO1xassdT5gQ1gouJc5cSVcMi8kwc6aLVvAc8w871YwXpbI X-Gm-Gg: ASbGncs/jAB4/0QXLfbBIhT04LCURgKPrSWLtrTmsf9SC3oFfoOVod+PYcIG9LnELhM wZwZhC6gKoyn0y4YJU0ZOa1XYAUSGXfXf9OOWA7bLa8ORluumljTnkHCJxrm9A7F3kSTKph2Or+ /V6Ix71adeBEpjoVhxMcNw49aXtzWmpyq9jPRfk64O9TS1NNvh6Vdda28Ajn0KfIz5TtW1pCLXc XO78SD44pfNq19WhITBLyz+0TThuSjzJqbh0L19tCC/UCOHnrwPo1Y9iiaOa9dClXMPPZFjrGeT SjrZXX6SS3hPjGQ/1Yw6Qupk+gFW96gOxnTJz1B1GdoXu/ok2amrkDDxMOYQi++DUVqmRou9JZb fTle9WU+uCT/5FkwnEXKUjr1dlz9IvJRIqoLMGRWMhI9dwIJdtbcDtLfjiCis9Ys= X-Google-Smtp-Source: AGHT+IFrkGXtk45CXP6MTr2VfLO5k7wC++dC9n1e/kg639cum3XQAH8V3EYylqO1QwiOwdowsKGXDQ== X-Received: by 2002:a05:600c:4f56:b0:43d:4686:5cfb with SMTP id 5b1f17b1804b1-4533cab8eb4mr23271045e9.27.1749888011962; Sat, 14 Jun 2025 01:00:11 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:11 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 06/14] net: dsa: b53: prevent FAST_AGE access on BCM5325 Date: Sat, 14 Jun 2025 09:59:52 +0200 Message-Id: <20250614080000.1884236-7-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable BCM5325 doesn't implement FAST_AGE registers so we should avoid reading or writing them. Fixes: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch") Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 9 +++++++++ 1 file changed, 9 insertions(+) v4: no changes v3: no changes v2: no changes diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 033cd78577f7..e4e71d193b39 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -487,6 +487,9 @@ static int b53_flush_arl(struct b53_device *dev, u8 mas= k) { unsigned int i; =20 + if (is5325(dev)) + return 0; + b53_write8(dev, B53_CTRL_PAGE, B53_FAST_AGE_CTRL, FAST_AGE_DONE | FAST_AGE_DYNAMIC | mask); =20 @@ -511,6 +514,9 @@ static int b53_flush_arl(struct b53_device *dev, u8 mas= k) =20 static int b53_fast_age_port(struct b53_device *dev, int port) { + if (is5325(dev)) + return 0; + b53_write8(dev, B53_CTRL_PAGE, B53_FAST_AGE_PORT_CTRL, port); =20 return b53_flush_arl(dev, FAST_AGE_PORT); @@ -518,6 +524,9 @@ static int b53_fast_age_port(struct b53_device *dev, in= t port) =20 static int b53_fast_age_vlan(struct b53_device *dev, u16 vid) { + if (is5325(dev)) + return 0; + b53_write16(dev, B53_CTRL_PAGE, B53_FAST_AGE_VID_CTRL, vid); =20 return b53_flush_arl(dev, FAST_AGE_VLAN); --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2343D20A5D8; Sat, 14 Jun 2025 08:00:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888017; cv=none; b=UFGYMVx6QwvJRSXr92yJg9W+UDZaXD5W7GNoAetV/rnAR89Jb+yKg7ez0i9rnRU95ysFCLuVs8r6DG1ev60yDyEmHFa3KLYmyBHeqxew5SzllZNpUM1KiZFGBzHiMXrKLnGcThlkBcEX7Z2XTHcSIHYF/En3dwFN+cm9PFVdnTM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888017; c=relaxed/simple; bh=Jg+4n2zkm1Wb7nn5Uj/T96SQXwTLOnRWpCjgzX6pZcI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=G8lVH9tjirPTd8sbsFA3q065yD/ices8PAdFC5bF1vJEyBAW6fdVp8AgsfOpEroodxoxu7nFsZcxGy+PfEM6TymDA4f+riWxz2uA2DOWbfSkoG3VpSIF3tKXbhAJX3WIahqT/pj3uBw93gKQtD+49F05VPh7qNKIjBPHXfmYVBQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TvA+1w2g; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TvA+1w2g" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-450cf0120cdso23304135e9.2; Sat, 14 Jun 2025 01:00:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888014; x=1750492814; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=u0TvRqql9xHjn+7eHzNDvmR8Gefl/j7dj40sw9VQTds=; b=TvA+1w2gXEvTYuCvQwzeomOMY4wHDqbEbL7jig9HB9P7f48anZxLQ1tM2LOUFepFDN F1NwTJTfCFTPLNfMPjuDLH2mKYofwWRPNWT+3bH/vXIvGc39B8JoOhT0TJKBFsTME6WH k+G+6CPFijMg5VIdjhANHN9F7gW3gJOGmFX/kTC3ZWe45kE01zGt6h8mknlvb/EfKo3V RcwVYWX8wgq15rq6Dfme4huh+vchjb1TcLgfgzYXamayK5O8Hmwre1tHGyMtsZ4Qj+Fl DqDVqdETcoZ6x8cpwiVLmv6TyICZSuhTClU1SzmT4cwGFJFQLII/oa+8WKL7Dae5NKYn dUDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888014; x=1750492814; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u0TvRqql9xHjn+7eHzNDvmR8Gefl/j7dj40sw9VQTds=; b=m4cguR14lY/Oiw/rYPsL2YmuItx43pYnWsa1EgGtQDjN88QAuLtj0LhQxzmpocyHKn E3t9m6qNenZm7qxPJpKdZ6MjfO6+BOtogvRK/zNPHBm1onTo3sj6VgIG4bbJyvP0UOr+ 2Xxt2oUPoTZCD6D1GjlNPc4eokZ34ICMXt2yqLYTw7musMsyLbJQKSMx0rlR6NxWXC1q SrF7I3WIJo/DA1W6xhXowjt3jYiKy7p4PWDYQYXIhGK1eQsLVcICevIYtrCai+KhT7u1 hygDpyyjFR2n8WyKT3i7CnxHCoPfeX29aAM3df5IeQyPRLDtFKjccsEe+Conhebo8EH4 iFCw== X-Forwarded-Encrypted: i=1; AJvYcCX4wvxnY/TfL3Qy7tQ/5LHPm/WlNc3Nux8mAeKKoat8y+VwM/NuqZ3vS9hYS6NB9qwhNZJr48Br5W6glkQ=@vger.kernel.org, AJvYcCXw+AVWIayEuhH7zYuL7jP6OW1RcXfMqsi7Qm/sQFPldXHVZ/06FN/yF6dEaT4kV2Z2D1MZR4cf@vger.kernel.org X-Gm-Message-State: AOJu0YwXDJ1jR02GexgF2Y0HNboLQIezUbNVz3PdKjGfDQXgZu1tkHst nS1zK3fpb9mMO/SyMvo2H2L0MNYZd/gdoGxiOIURTjWOl5nfpQlRusO/ X-Gm-Gg: ASbGncs0jB+ev8+mV+FUZYjuuh+a/4D1ZvDEISzuJBb87+eL37z7w9LBOvZg5duMC3f ggpZDPf0G5FUukVXmmQQfF0JYll4gVyD8YyJDexPFzxiHBSsdoAwB+52lmHBs1hKYW/p/GCMERX B57kHbChc6PLB8PBp/VdkjdzclJOPm82x5X+Os+5P7GOJAQ4IT5aQOP82GrYmaqQn2nN2NTr5AZ wLE3GrXgs/TO0zSxj6P+8wTkmiMXaL1tmpcP9B0xVcu+wa1QVLp282bZqeeenR83GlWF3GtRUsb NKintjWQH9E7R04aabyn+7P7AlWRMwnK5K/IhOGTQPA6iBN82unzoYUQJZ3mGF1i1m89MvZm3xY EBj0agg85w7eDn/diWK6A/UxfgBtaWdVy2v+QOl3BVYvx3WE09JyKW/9A9xxWodQFzrTSos52Hw == X-Google-Smtp-Source: AGHT+IGG5UVhv1L1iErZSEN+0avdVoZ4YdJO+ad0uSxodUSTzACt+JirCS7biIxIfgSKprwpgqbcHw== X-Received: by 2002:a5d:64c2:0:b0:3a4:fbd9:58e6 with SMTP id ffacd0b85a97d-3a572e56e89mr2001968f8f.50.1749888014102; Sat, 14 Jun 2025 01:00:14 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:12 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 07/14] net: dsa: b53: prevent SWITCH_CTRL access on BCM5325 Date: Sat, 14 Jun 2025 09:59:53 +0200 Message-Id: <20250614080000.1884236-8-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable BCM5325 doesn't implement SWITCH_CTRL register so we should avoid reading or writing it. Fixes: a424f0de6163 ("net: dsa: b53: Include IMP/CPU port in dumb forwardin= g mode") Reviewed-by: Florian Fainelli Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) v4: no changes v3: no changes v2: no changes diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index e4e71d193b39..24a9a0372122 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -361,11 +361,12 @@ static void b53_set_forwarding(struct b53_device *dev= , int enable) =20 b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, mgmt); =20 - /* Include IMP port in dumb forwarding mode - */ - b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt); - mgmt |=3D B53_MII_DUMB_FWDG_EN; - b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt); + if (!is5325(dev)) { + /* Include IMP port in dumb forwarding mode */ + b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt); + mgmt |=3D B53_MII_DUMB_FWDG_EN; + b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt); + } =20 /* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether * frames should be flooded or not. --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 262E220E023; Sat, 14 Jun 2025 08:00:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888019; cv=none; b=tA20l27NPZ75jrVmwyLMytXyZxTDosEPrkFAZhCXjTnV28DfDQrhCq6v9TzZOQJ2e22iO7hKspk69z57QPyo1HyO3O9SSw8VJyOIDFiKnhK4SdoMV6iRuPu30lMxNCoTYXW2xDqCMQ3t6Qo96up1vfcHiMY51caEot1c8+zlhHE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888019; c=relaxed/simple; bh=++pmp+7AKatPjOrDxpoQf+VNxfT57hgNwfd+9yyEmz0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=MPSw6Hf4h3kXy8zFbS7T6WZVrc6j6xhrGa5Ve2svX6S60hlI1LP24R8rn8vILgk9RTobYZaiOthTkEf8ominUwMfgOTiCCQcSc1elNyCkxvvGUTeQKv6WuS3ZI1MFq1tpfReAjyDoFMBhpZ5Mu1JhIjSfbKp2vdTKJ+OAUOV4+k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WvIRZb8b; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WvIRZb8b" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-450cfb79177so17325505e9.0; Sat, 14 Jun 2025 01:00:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888016; x=1750492816; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D5UKszGEBWsYS8aBocFaTWivMqZ6IfyHD+pXWqU60Yg=; b=WvIRZb8ber86fvIp7lIrEwtMgGhtYuk3d645yD3b8YJh1LUhuvpOZze8+U/FjPpFbP AuHf/jun3nzuOSdLSQtCb5dNs595Bsn7ELpqhl62l1CgwGyIicNA6HD2OJ9rp52/EXmI rpBAWCWAmLsK120zXCbK1RYLINlZFxppnBpucB9Zp/fYE4HOirTLYRp4m8mYAN9Ng+L2 a/ebAYZdEOh/oE9WgaN5gg5cNmnk1GkxFY1GI/GGa679unbNJf7XrOdlwXdc+VK/KDK0 tO6SoWIF2N+p4joCeb30S7vw8rtx8AiCmH2+Pb9iGnmFfhKbOlHi0E+BDuGAg39N6ygs FwvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888016; x=1750492816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D5UKszGEBWsYS8aBocFaTWivMqZ6IfyHD+pXWqU60Yg=; b=NSSMcTJ9lOF5uiAbRip8YhdT6Lg1MqYPzhmTsSfUQugJ4uzQnNWTj32AR48qWIsD1Z 5iybcsI/4vTXZamxYKXktE4pGqLGkkftHZ0c2+rWbv0G3e4guwwatw7UstopEQOfoMHx 1NBnlrtVBDpOyVtoGb7MvCGcDJU3m81B4hxjGHbroK+HEmlinbWW9wFbIfb5p1qH9dC5 QbqptMvvAP2z05PVp56hPDmP6ozaOsn24ZcOXt+o0aQROX8fFjAMRdZ4aM7khmm9QVLN OsDc+DfE/ux9eaP1mM+KaUKXw5dXzMT7pzdSpdoq/l1ZfHmtzC5nCoKmQORiOGD8+fRB HvEQ== X-Forwarded-Encrypted: i=1; AJvYcCVh/7OU16haSjqdP7isR5qkmoO+nxShZzMlkImzISEgzqpb7NAK2hslzIciAK15JPearjrwovr7@vger.kernel.org, AJvYcCWgQG1fSi2A0zxLE1BKWk9Iv18Axba5sqak0TpQmb+zzxXkYJZ8ZlmWssJNrBoU1Ba1wcdnajsbC2nv65I=@vger.kernel.org X-Gm-Message-State: AOJu0YwW7nb8xmT16ZCF1Kb4Ho8EdtBslwg08s6xlOqWD/sL7mBBw4Rg wgvodaG1ZGEER5ivRJ3ts4t6EoK+R3ZyBd9wLJrvCQXZkjeAPaT0Mqnm X-Gm-Gg: ASbGnctQopTsBUYZN4rnnUL5ULauy86g7aDpaS4B2b7cd3i7TggfXQjSwd3cSOQi6Ir LFeqDd77ik8CanbyM4z5eVeL1cFXaRPJG3Jn8H6h0szC15HCme/Tt0sw1vmHVb1uogmBeURRdTo bn/xIs6z3W0jfKu2ZJ91WiVzUhSHnafUmtBFa6nqR4Bw60B8RKsrJ/2nYSS7bErgLcVXh+a4dpe jjbKm14LOE1g/H3FvpqliICbdIBmtzdoIhdsOSos8FLt6rL6HyNuFj1oJ9MG7SiylZy42PUGRei lrlEZByZAP+PAFfyL9ih00HwcFCNKPCbUNbhlbkv4ZTu6SQSHMnyY5GlTwEP9OCO3JUmUiVR4ky 80i9pFpTecPdKmCRQEAcH5XH2r5R0Xu0D2cf7P/GvpR21tjonfcp5U6YKLoWBFWk= X-Google-Smtp-Source: AGHT+IG7U/y6EZq2H1U1DbQR8wdnEFKDtkzu40Z/CQvtvF5rgRBjEkpbvHcCGlshWSdfKr3oK55i+w== X-Received: by 2002:a05:600c:3543:b0:43d:ea:51d2 with SMTP id 5b1f17b1804b1-4533ca91fbfmr26688995e9.14.1749888016270; Sat, 14 Jun 2025 01:00:16 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:14 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 08/14] net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325 Date: Sat, 14 Jun 2025 09:59:54 +0200 Message-Id: <20250614080000.1884236-9-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable BCM5325 doesn't implement B53_UC_FWD_EN, B53_MC_FWD_EN or B53_IPMC_FWD_EN. Fixes: 53568438e381 ("net: dsa: b53: Add support for port_egress_floods cal= lback") Reviewed-by: Florian Fainelli Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 18 +++++++++++------- drivers/net/dsa/b53/b53_regs.h | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) v4: no changes v3: no changes v2: add changes proposed by Jonas: - Change function flow. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 24a9a0372122..c7c950127448 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -366,14 +366,18 @@ static void b53_set_forwarding(struct b53_device *dev= , int enable) b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, &mgmt); mgmt |=3D B53_MII_DUMB_FWDG_EN; b53_write8(dev, B53_CTRL_PAGE, B53_SWITCH_CTRL, mgmt); - } =20 - /* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether - * frames should be flooded or not. - */ - b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt); - mgmt |=3D B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN; - b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt); + /* Look at B53_UC_FWD_EN and B53_MC_FWD_EN to decide whether + * frames should be flooded or not. + */ + b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt); + mgmt |=3D B53_UC_FWD_EN | B53_MC_FWD_EN | B53_IPMC_FWD_EN; + b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt); + } else { + b53_read8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, &mgmt); + mgmt |=3D B53_IP_MCAST_25; + b53_write8(dev, B53_CTRL_PAGE, B53_IP_MULTICAST_CTRL, mgmt); + } } =20 static void b53_enable_vlan(struct b53_device *dev, int port, bool enable, diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index 1f15332fb2a7..896684d7f594 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -106,6 +106,7 @@ =20 /* IP Multicast control (8 bit) */ #define B53_IP_MULTICAST_CTRL 0x21 +#define B53_IP_MCAST_25 BIT(0) #define B53_IPMC_FWD_EN BIT(1) #define B53_UC_FWD_EN BIT(6) #define B53_MC_FWD_EN BIT(7) --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5653221146C; Sat, 14 Jun 2025 08:00:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888021; cv=none; b=ZKq1zfpAKODEimaz8ne4xWsZP2PDwP0jhV0c9Lax2LAS/zDh3U0sXYNd/qe+vS8+ssilwA/OYvePOnHGRYpHjJ0br/N3ewiI0LteTCuHh/59bDCWidhJsth28h2G0k1lnnlLKvMmFJG3LBRRFHwE7hYBvz6R7Q7+zQox3OKBCxU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888021; c=relaxed/simple; bh=lrwz9lTK/Ht3jtPIaHRJybrlxxMJIckE6OX0IhWzWQM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=tbQZk7HGphUAH2zpkDG+Jr/r7BynSWZ0TVpqg4GhI6w/Q/Z4szVrGt2iDNu0qaxRxZq39p38gq1lQRQNTbucbWYDfrX9zDHm73FDI9ipQgSObEMAUltTs2RR5xlNNX9c6X7vcKSfN80vP5nfp42TSqsSXN2a908VGPW7MTgPDCU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LLiKTGcf; arc=none smtp.client-ip=209.85.128.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LLiKTGcf" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-441ab63a415so31891705e9.3; Sat, 14 Jun 2025 01:00:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888017; x=1750492817; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KA3iDOrnGZWK9D0DaouVhPmzdiHQRy0P+xXagLHVJVU=; b=LLiKTGcf5mAAxoqpPe1pDo0fCUe9WhAo12dSIuT8XVEbCKa/K2g5h0RFjuAoLvBWr4 3wcAIWmFnIB91lpMTDqIYYxHpDfzfAdREjKGJV8pv0bHtVDZAHsvstJg4WQCjj5lOB00 ChWMoC3BuuGcOlelMrrShJ7kQa+Fy3OyMokoBHdSRFVUWEG0Ux2iKg1ME+OowJcNcN8j CZBfTyHSdQPDeKnnLbBT1wA5bNjYKbdcjEKqzWLEh7XFn4Hx+6UXh+/1XDqLfYFZgCKd nqxJjwrWZEfyMmyLuJAHyWymTXZo29c+x5pAIXAxqoqSCOBF59yNu8LQ36Qb/9xz/d6b Ojzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888017; x=1750492817; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KA3iDOrnGZWK9D0DaouVhPmzdiHQRy0P+xXagLHVJVU=; b=Klx8FhlVHDtcfKtKvqR43scOegKuzMACW6a8BZjGoHNlRsknRPbMZOzkkuSBMtCOfV 9XCkrGcvxvKIVUoNjON60rQiOz/Y/I6tlhRNcs42Mk8mi0oTzc/wav5Fqygpk1Zr9FiH 970RZjZHhS2gV46bEiZi7acIjw6ga/YJDWuryZSM4TDAXZvo0JTmyMv35DN2loufbPnq FMI0HYFesk9E/E72i/YyrVyq6EQK6Zf63BfPvy4X6nC+TL0cp9EH5Ij4/6W6WeHOBf+O nFJm27veb+9Qk0xiL60OhB3s0mbSsU9LJLnZ9XQ/jWILyq1MxXM1luc7epIKqq2KUvwl Ac/w== X-Forwarded-Encrypted: i=1; AJvYcCUJFyqdgJH43Fq+fCfg4TVdaC7yh4tX8r51qPRtdUc1uYrrSDsAsVxuXZtn2AXCP9YXl/L/+gynD5kLnaw=@vger.kernel.org, AJvYcCWvOF6N6MCZ0nawaqucN7a7Si7Zfn6Awe0sTq/kD/XuWx/c4PJNfTWVEOBCfWXrG/HrILbbVP8b@vger.kernel.org X-Gm-Message-State: AOJu0YyFu5WmnDTY3qEOImp1aJF7ZCW68gh63Eo3RgnXzWnAiuqQi8mq F+qCQT0DYIYxHFma2vccLC7G6XENzs18uUXkvohsrBFYitc0a4YIYqFf X-Gm-Gg: ASbGnctmVjHE+dBU1v/pqyfD+3b9lSqD4jv+Svc4q42ncgjyBeBjCD//nUz4GATCw7J V1MqfDx6jFDHCvNgqFBWrlZXtvp5FL3/BN0BEUG7if8IrUkU8qqyw0iewuCjRaFeROHQQFemEY4 jfHQWHOYVEi+wghNCiOPaIrdFbCDaeNgOouuiZHlwKIIn3ckdUYGzom5h2pdxBWdtrTwzhEO6Op /V4BcIEuGHiL8e+C0DfWtuuSeWs7num33tsUfJDm0tOtqYwc1YcmORZPl7fyE/YzbjKbzivDy7W Hpy4bUOF/GnVUEjrHG+o3WCaiFVjNEDdjwiKXl/+XNb8dUR8Q2UoN847cooF57VQOhNjE+bpHoH v5icP1cqw2QKsu8HhBMtbM1m/ez4kBEjX37Uk3vmXGmAl02kdqfVkw/ng1+W8zEE= X-Google-Smtp-Source: AGHT+IEdFI3H8dq9rgNIEMTS3HTAmaNM0vicdlz/k8EmGPOSO6C/0M9Dc6czVWZeGm5ExCYFStqfKQ== X-Received: by 2002:a05:600c:8b65:b0:44b:eb56:1d45 with SMTP id 5b1f17b1804b1-4533ca6e6a8mr29372615e9.15.1749888017392; Sat, 14 Jun 2025 01:00:17 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:16 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 09/14] net: dsa: b53: prevent DIS_LEARNING access on BCM5325 Date: Sat, 14 Jun 2025 09:59:55 +0200 Message-Id: <20250614080000.1884236-10-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable BCM5325 doesn't implement DIS_LEARNING register so we should avoid reading or writing it. Fixes: f9b3827ee66c ("net: dsa: b53: Support setting learning on port") Reviewed-by: Florian Fainelli Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) v4: no changes v3: no changes v2: add changes proposed by Vladimir: - Disallow BR_LEARNING on b53_br_flags_pre() for BCM5325. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index c7c950127448..daf7c1906711 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -593,6 +593,9 @@ static void b53_port_set_learning(struct b53_device *de= v, int port, { u16 reg; =20 + if (is5325(dev)) + return; + b53_read16(dev, B53_CTRL_PAGE, B53_DIS_LEARNING, ®); if (learning) reg &=3D ~BIT(port); @@ -2243,7 +2246,13 @@ int b53_br_flags_pre(struct dsa_switch *ds, int port, struct switchdev_brport_flags flags, struct netlink_ext_ack *extack) { - if (flags.mask & ~(BR_FLOOD | BR_MCAST_FLOOD | BR_LEARNING)) + struct b53_device *dev =3D ds->priv; + unsigned long mask =3D (BR_FLOOD | BR_MCAST_FLOOD); + + if (!is5325(dev)) + mask |=3D BR_LEARNING; + + if (flags.mask & ~mask) return -EINVAL; =20 return 0; --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0960213E74; Sat, 14 Jun 2025 08:00:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888022; cv=none; b=qMao1Sj2Rp/9ujMxy/3kXtMzHEo9vftxj0jKNNQRhD3C+CdX/oBIVXv8tDiCsEy7mcPjW89wZlUWXAXzmwzHYGBi7xNuQ6sLrTayJf9GvL4v0f9UP7uKAtJsOC/mbWJ8xdbu6d2Jx9IEDM/srSRFrUCowKNjV+1qbBJkrIuZjLU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888022; c=relaxed/simple; bh=jI7h90HuTxp+BOmcIzeI4V3HFQ58DfYw+6FufhX2uO4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=Rt/YxCo9xLC/t98u3O1cPocnxcvzoFlrXkPG4KUOAbTT8aATRu2MD09XuNv7nKLbcsgN57A6gdCUm3+FoyIip0f7QtWfh5kjR1XcVlpaxfQzMzAhDHSpXp0rS/XTF7uPsyXh5km7s1lE5yKF1pje6xT6n+EWa4ONn/jSzbu6Veg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DgTDmEdT; arc=none smtp.client-ip=209.85.221.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DgTDmEdT" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-3a525eee2e3so2256657f8f.2; Sat, 14 Jun 2025 01:00:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888019; x=1750492819; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KgMPt/38g/Hs9S0fWSTZAkBpKnbwpsi+zVrrd5GjeKo=; b=DgTDmEdTIdG8zwxzlqjTyf7YLKxXZqm0HqW7pKYKCB/iRsWpEpH12FQi0u8QfDN8+e KR73lhEYRraObxbkxFQwxeWvV3SWJNzmQDa3L2AxJlz0ly1v/DHSCUFZ4ePVKB9arQcd V30NhLmyvwlo4GQsdbOgZwGCGhZ9Sbp3Ug0Q+nGr8tDeEQ10x4q5FkeNtKlFymD3GF9+ BVOJoEj+11aVN+L7rwAAtFRMU6WMZnPToj/+kT1xfTnfnDb8fGYtnDU70g3wlPiba37h iEth4a7WrkyjiK8BIiy5ueHdRVrTphcJZEglM6K1gDmI3vrNSZmxXgiSZxfiLmWisbSM MpvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888019; x=1750492819; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KgMPt/38g/Hs9S0fWSTZAkBpKnbwpsi+zVrrd5GjeKo=; b=wvzsDIlNM8hksNEQJ4Z7A+ON3IZDF38tr6Xi2kIxZL8foV0Z4iRZZ90kc4GNLnOt5c gD5NJcUsxLVbYerPUKcRI/DWJbmWZRdAn1JBKrzxetK9naKi0VVIEEJRZxduhsmtlHZH dugLO0GXHw4y7K3OS+xjyvbaIfphplDwCUouzBj/dvINb7YqNfuMzdaPgDQ9qa1FDiBZ +145FGJgkmMTUb7KhXE+EZpM1sC4hSwQWLgdZQimzQLUO7Jhpl7oqo36GVhcP4fXVQjD 3WPTQ+gxAqjPtsqzUfR1DbMI7fFRwEiD9KE4IYM/YRPXkv8XWXTq1tLFTUNCQsDnO2+2 MPdA== X-Forwarded-Encrypted: i=1; AJvYcCUKUbqLuowy2DItZtinbByKPK1nrN0u40HhZQB9PWlk0UbarAyIx5saYHQNGqkRLoxpzfmt8JWU@vger.kernel.org, AJvYcCWJ1PrMzOEkzdFWPaWDPH18VWrSoJ0qfCGoNwm9cywPY0YrQKguJuePeYqirDbZ2CRWtfKIiGzLwmEl3Gc=@vger.kernel.org X-Gm-Message-State: AOJu0YzDxnktJAd98VsWeP1+mi6rbPXCjbCPfIApdywxQAew7Tz3BB8o HTmUWCF2uD0XpUb4FTO6kjqJ4d225zxjGcpbY1zhJTLLo/+M3V8nSH0R X-Gm-Gg: ASbGncugLfo/TgOgc7FWVpeHU7JPS2alzyKeyv67z7gwkcJrIxDDmvsWuYJlSuUxOd4 hSaPmDK9L1lH+NAJGQU0w92oL9vODJJg6j10998iNzBfpnOfEd7O6z4ZASVP+zv6eA5VJM1Xyy8 vm3+DlNlB4Lgu6XWc4AIRhPcqbMAJgKGmj23B19kepRV6aVAtfiBX0ahe7Uot5qSHvVCoEMPyE2 ztEPrL7FuvXd0LQsY4n++Uz1oBre5cJkGxbvp9EkBbeonWU2Wq8fAtdzS+y0FRQfiEWpJBLn0ZO xY+wi/gwkjbNk9Ew05dJHVqly2VPCNuyQCZPIP7JkbCsQKMLbfAHpjlA7/+zkS1vQ6WZ2rKKccX nPZQv7150IeyaCB7WcU2+w9y//uBxTpLsqS9qLekW7RhTDzzR2n1mALJSvGqTSlA= X-Google-Smtp-Source: AGHT+IHKKd/gSBq0yron4WXR7/cbYXyEBmPvZgzrpLP/QCJ6Tk327PX4lB1Y3slCRMxqwyrxrHowfg== X-Received: by 2002:adf:9dc7:0:b0:3a5:7904:b959 with SMTP id ffacd0b85a97d-3a57904ba6dmr320687f8f.58.1749888018801; Sat, 14 Jun 2025 01:00:18 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:18 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 10/14] net: dsa: b53: prevent BRCM_HDR access on older devices Date: Sat, 14 Jun 2025 09:59:56 +0200 Message-Id: <20250614080000.1884236-11-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Older switches don't implement BRCM_HDR register so we should avoid reading or writing it. Fixes: b409a9efa183 ("net: dsa: b53: Move Broadcom header setup to b53") Reviewed-by: Florian Fainelli Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 5 +++++ 1 file changed, 5 insertions(+) v4: no changes v3: add changes requested by Jonas: - Check for legacy tag protocols instead of is5325(). v2: no changes diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index daf7c1906711..2bcbb003b1fd 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -730,6 +730,11 @@ void b53_brcm_hdr_setup(struct dsa_switch *ds, int por= t) hdr_ctl |=3D GC_FRM_MGMT_PORT_M; b53_write8(dev, B53_MGMT_PAGE, B53_GLOBAL_CONFIG, hdr_ctl); =20 + /* B53_BRCM_HDR not present on devices with legacy tags */ + if (dev->tag_protocol =3D=3D DSA_TAG_PROTO_BRCM_LEGACY || + dev->tag_protocol =3D=3D DSA_TAG_PROTO_BRCM_LEGACY_FCS) + return; + /* Enable Broadcom tags for IMP port */ b53_read8(dev, B53_MGMT_PAGE, B53_BRCM_HDR, &hdr_ctl); if (tag_en) --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1FEF12153D4; Sat, 14 Jun 2025 08:00:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888023; cv=none; b=nZ56sBBZjou+F1e6C54UdEeOdvf/WePJkGFMWKP+uyNjp+NshWQUiiC5S+X/gn7VfVI/VccqzjvGlFaXyK5qOPm2aZyFAsmQuoobc1PW4uobVlHVkDMjS4AdUL6lgCz0K4YhDSDI6+67Wzw0XyjDUqDbAO4DdXUJgip+7zsdcYQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888023; c=relaxed/simple; bh=cxvip1yaT62CM+//fUwMVTiGeWcLHBVTmroF7OvOZ9A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=KrllxNBWdP+w9qsFE7LyvZUlduuBo82cgARpzfChJM+pVf0Qui5brUn7CSmBKOV2zpa4O9MQnjnYjjd2FHEJ1w+htyndwx84iPR4xLUP13znF67VPXvVW56vBX+BbVLY7cVv1b/dKlGNlGzg2cDCZMH5Q1QG1GTlVEV1UVbs+2g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=femSWKet; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="femSWKet" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-3a5096158dcso2498173f8f.1; Sat, 14 Jun 2025 01:00:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888020; x=1750492820; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RkDKhWADOeV+BLdp7lg/EAzlBGEzVLIjr5l/oooXOXs=; b=femSWKetkOX22GD/N0Qihin8PCwShkQBohrHtx2Xy9f/AsXlEaT+3YXCJZ9LBzpal7 HHEmi8Sl8HJrCyQtmjibadCn3Md8ZMew7B6j5jNZSoAkGfawC3zTSnWHCteiTnfl2ta3 A0nMiojTS326Hv645yKQpeNSGHPme9Qtc+qso2dMcP6OQIhIRgzdd17Rt9Mc1qlO7NkR JvoH8XtkKF/sD4xJdIIVh0Qw85aS0afV5Uf7y2K8X4vpGQCRzsFxScCZFox/Fz+FYHC4 7ZUXR9rRk5lKW/3+iGxSWz5HxRhBd2HJqkxIRY0i+s9M1YD+STs4iPAXx6O+qoqSyWnu ZjNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888020; x=1750492820; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RkDKhWADOeV+BLdp7lg/EAzlBGEzVLIjr5l/oooXOXs=; b=oH4Rc00vX2acE5HcnxH/m4UZcJ9aoGwaOaCVGkMt/Y+bwmDuSFP2SgGL+9QZcXlPRv IEK39eF6X8gpn0Piqi6r82fGhduKWSnptuHlaOqzXCOXdXddsexWvp9zYBic3NMo4dPj 2e7JbGwdhlp26WpzP2sKaYiaB2W+YZJuclrmb33kpxmWczhIwHPUfnorMuV6l0P7tdDK ftjj7iRcybmn5i/g4ZqZvCQlh7R5+9tFZemHUPhUiPNpck78eRwWeT78ozFKoLR6ItHR mJdbx9Bqk/NROVA9orX54gQFenbiX6KQNn1v1amxUQ839X77+yexOKcFigpsd7nqkFdy 73Nw== X-Forwarded-Encrypted: i=1; AJvYcCW5X7chVcaVp4qSLBHoOnK6jdxPi3dDfagKAmkclI+ho/c8W6w04nvt/DwQZTwZCB/bEVPAWsQBpWkCTt0=@vger.kernel.org, AJvYcCWojjbVetDHA2F2Kj6xmSsiAdiqTyOJQhUh6eYgkYtVanz+1wdpypT60QQes1yXD8M+XyI7l38u@vger.kernel.org X-Gm-Message-State: AOJu0Yyr0V9AVvhF08AHCQjaXZGuwQH/Aod6hHytt1zmDgi75K/FOXLj P4ApcTPQwongzJzWtr9mWWqqubBqkrgLO1Oxrxmc+Bsz1dGMG5P6roh+ X-Gm-Gg: ASbGncu41dWpdViGbCL2QTwnb7ww6KU58todQ4dpvFJhFAiEONGOlXFSy61skw1Thha ZKqQBL6JEGrn86VIzxAbqH1Ssum6e7+LXyR1D7Ul6rqS8qqK4wYBMQsuyWFAOj4Ma7Uot487mmF tasR4y4Nf/Yq11yeAamWeRcwntpCAKOnSdwB/PLYDTnKb7sB863EjHS0zNDvieiRjD5qTcv5twi qgL5WOr251vlX4bwFurCRdryTpiGzr6cdXs2pfCV6t1/KMXLOiXPMrbunJypqaKLPr7rVmQC0H3 /Jt7pSpoNcqIotMtcMDEhC4qNaAlyQig0eGrqt5vSkKg8UHKmEBRCkE6+ML8ecHRzQ++eoe+gDB Zo5Ft84YfWKpHqqTg8i4cnWKmWVBppSy61fC3tEsb/IzIrQyyNprbyo/Y3nqBNLI= X-Google-Smtp-Source: AGHT+IEeQkLUl4X4SlZsIGu8Rf3Vu/Mw6OJ+R1Nyy2AYpff2MZa0YgxoBQEAiEyb++TId1vdc3PsZg== X-Received: by 2002:a05:6000:71a:b0:3a5:27ba:47c7 with SMTP id ffacd0b85a97d-3a572e2df96mr2150810f8f.48.1749888020226; Sat, 14 Jun 2025 01:00:20 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:19 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 11/14] net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on BCM5325 Date: Sat, 14 Jun 2025 09:59:57 +0200 Message-Id: <20250614080000.1884236-12-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable BCM5325 doesn't implement GMII_PORT_OVERRIDE_CTRL register so we should avoid reading or writing it. PORT_OVERRIDE_RX_FLOW and PORT_OVERRIDE_TX_FLOW aren't defined on BCM5325 and we should use PORT_OVERRIDE_LP_FLOW_25 instead. Fixes: 5e004460f874 ("net: dsa: b53: Add helper to set link parameters") Reviewed-by: Florian Fainelli Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 21 +++++++++++++++++---- drivers/net/dsa/b53/b53_regs.h | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) v4: no changes v3: no changes v2: no changes diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 2bcbb003b1fd..034e36b351c9 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1279,6 +1279,8 @@ static void b53_force_link(struct b53_device *dev, in= t port, int link) if (port =3D=3D dev->imp_port) { off =3D B53_PORT_OVERRIDE_CTRL; val =3D PORT_OVERRIDE_EN; + } else if (is5325(dev)) { + return; } else { off =3D B53_GMII_PORT_OVERRIDE_CTRL(port); val =3D GMII_PO_EN; @@ -1303,6 +1305,8 @@ static void b53_force_port_config(struct b53_device *= dev, int port, if (port =3D=3D dev->imp_port) { off =3D B53_PORT_OVERRIDE_CTRL; val =3D PORT_OVERRIDE_EN; + } else if (is5325(dev)) { + return; } else { off =3D B53_GMII_PORT_OVERRIDE_CTRL(port); val =3D GMII_PO_EN; @@ -1333,10 +1337,19 @@ static void b53_force_port_config(struct b53_device= *dev, int port, return; } =20 - if (rx_pause) - reg |=3D PORT_OVERRIDE_RX_FLOW; - if (tx_pause) - reg |=3D PORT_OVERRIDE_TX_FLOW; + if (rx_pause) { + if (is5325(dev)) + reg |=3D PORT_OVERRIDE_LP_FLOW_25; + else + reg |=3D PORT_OVERRIDE_RX_FLOW; + } + + if (tx_pause) { + if (is5325(dev)) + reg |=3D PORT_OVERRIDE_LP_FLOW_25; + else + reg |=3D PORT_OVERRIDE_TX_FLOW; + } =20 b53_write8(dev, B53_CTRL_PAGE, off, reg); } diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index 896684d7f594..ab15f36a135a 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -95,6 +95,7 @@ #define PORT_OVERRIDE_SPEED_10M (0 << PORT_OVERRIDE_SPEED_S) #define PORT_OVERRIDE_SPEED_100M (1 << PORT_OVERRIDE_SPEED_S) #define PORT_OVERRIDE_SPEED_1000M (2 << PORT_OVERRIDE_SPEED_S) +#define PORT_OVERRIDE_LP_FLOW_25 BIT(3) /* BCM5325 only */ #define PORT_OVERRIDE_RV_MII_25 BIT(4) /* BCM5325 only */ #define PORT_OVERRIDE_RX_FLOW BIT(4) #define PORT_OVERRIDE_TX_FLOW BIT(5) --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 156771F5849; Sat, 14 Jun 2025 08:00:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888024; cv=none; b=Cbru8Ie5dN3WPwwu7C+onpwHDEDWzGBZAVQobVkZQW8yJWcucbB1WmDb6bTNER9/KgkM5RryTr8HAoEBSqdM8uDWfX455fvsjppxdp6qcEIiN7//DrWycAOrapfRVueSFiez9NxWB7amDFnvMroZKpN5RfnwbeZ/31cRsJHBRAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888024; c=relaxed/simple; bh=Mv6g6TqRLNW7IwtjztJXy3aVpVK4bDlV6PSv29TrdPc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=CEu+dlOT5ekeLz6d7b+OLrMUOFGMcIgKJiEM+CpAHdOAA9ZjtBxFLWK7exaNInqNoN1T+fGhho2HvqOMpfWDO7OQiJWqwyI3t6LnMvbTCCoIIa5he0j0tPlO2sjCEmY1XGNfWpHGutf3blr7n/hGbuztsVrS0JajYvQt3aRwtvA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QCUlt3NX; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QCUlt3NX" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-450cfb6a794so16492475e9.1; Sat, 14 Jun 2025 01:00:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888021; x=1750492821; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7MDXKYAJLJXTLaUVqxsoo9KWgHVtsh4pL8lt56oK4Pk=; b=QCUlt3NXJKLr7vc6wEvXXtb7veLgfybnzXrwx2TSe1f8BsnGCyT9ZhU8BvXVw+b6SJ ZfaxtFgotIw+9j3EDu4Kh+iCLKbBLY3wiqpyBIegKeoNUEypvEK1uHzymiBIYWgekwG0 HFfCSqX6uYSVaY2Yfj4LYh76/lWIrMB3uskGkX2UOs74Wu65NMhukxI+IHUqVT29y4YG 7EEecgkg9UiSf4j5PZYvmt6JIoz+00g1NxGxB/9mWO3w3OoCSI021oq791hQ4AiXvkCZ N3w2UGD5Ho+25HsJThSG4xANzA5eyoPT6lHbTIGpVwDINHA2BDk9nfzl4A964JWtn5hg eB7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888021; x=1750492821; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7MDXKYAJLJXTLaUVqxsoo9KWgHVtsh4pL8lt56oK4Pk=; b=clrIJ8/IRJqhq1Min5ZHVjm5e929aqy6tYfB+U+NGPshlaTPIF64yncC2cv033oZZo IHjpClDvBq+l2KG8wev3UakJ5EQBvnHFfeloBeT3CEFYj8MMGcZJdb3PztS6fNuuNFjL o8sj2djxwsKsdtLrxnmOZJVcyzOm/nY+N7vcEh8LMSH5p/+mFL13Yc9fauMWZwYXfV94 vr1gG1z2zu1EqTuSgKb8p6uY6WbXwkf/6GEOr/i/DVHeD10QVhzXt06tNkM85yrEnrFm ItIHsnKmLbpzh48ob3djuonPu0Azy90iSSUGJhcD5fKwhUfz6Y47qj3Cv03XXkQQFEE8 +3Vw== X-Forwarded-Encrypted: i=1; AJvYcCVK37oQcvFX1MfEb0UyZXqiLJEpJmtv5qVi0cI7XWcjbwpYGdGFxD3BaWi5n0Shhui3APVbXv3l@vger.kernel.org, AJvYcCWdogdQVHHDXEIMFM6K4seAPVbcOZoEV9MTTngzBL8B+atisyg270/VLnQgvmvgLnVhkyIjfpnXte8nLV8=@vger.kernel.org X-Gm-Message-State: AOJu0Ywl+3spBCr2uc3PeYji2QvThSMMEw5pifr5J7EKyJ0lRelsYdgL rCiRDyK8ylwbZjQjbqA+EslPKKUpLZI5ETLIsfA3EaL4aTPpdQtkBZgl X-Gm-Gg: ASbGncsOZ05pcPWcVIwXhjLpXsePMFf1xLJsWPMnM5T4SjNq2UmAosZWqjuTW+7Uzjo qAqP519O4Imrnfv1WydoaUudtpCTjwZESungHdTAgow77fi8VVkIGammoLX4ggJGKJ6wDYPMzUl Lw971b5r/0WzLKW6GgLGPSwCKzpNFh7cQ/ReqbxqsAz1EuFwhL6aj8k9taQ2QCxblufGnmJxZTj qC+4D70JROCItSo6+XAgEn51Wz6hyebWBSRYXSEPpDbI7El2QAiyvU95dRmaqWIdJOG5pHL48qc nZpzjLCx/TEh4W20b1laXrf95Z9BFKd7kWPxoHlpjWW9eaPHqDwlPOsyF5PLukqj9PGgC2/8Tv5 efXgtru0kyTnN5lux/C0unj4ZQRFOnoBvQQaaXEYqUwv3T5cxe9gWkb8nkFVyRYE= X-Google-Smtp-Source: AGHT+IF/kAWmcubIrzJUlbfKoUrB4ad6zjuqAbzVMto7JjdG0ILB6dBICai5prB1d4NZz9pQczgjyA== X-Received: by 2002:a05:600c:3f07:b0:43d:fa58:700e with SMTP id 5b1f17b1804b1-4533cacc591mr22027615e9.33.1749888021335; Sat, 14 Jun 2025 01:00:21 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:20 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 12/14] net: dsa: b53: fix unicast/multicast flooding on BCM5325 Date: Sat, 14 Jun 2025 09:59:58 +0200 Message-Id: <20250614080000.1884236-13-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable BCM5325 doesn't implement UC_FLOOD_MASK, MC_FLOOD_MASK and IPMC_FLOOD_MASK registers. This has to be handled differently with other pages and registers. Fixes: a8b659e7ff75 ("net: dsa: act as passthrough for bridge port flags") Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 60 ++++++++++++++++++++++---------- drivers/net/dsa/b53/b53_regs.h | 13 +++++++ 2 files changed, 55 insertions(+), 18 deletions(-) v4: no changes v3: no changes v2: add changes proposed by Jonas: - Drop rate control registers. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 034e36b351c9..6aaa81af5367 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -560,12 +560,24 @@ static void b53_port_set_ucast_flood(struct b53_devic= e *dev, int port, { u16 uc; =20 - b53_read16(dev, B53_CTRL_PAGE, B53_UC_FLOOD_MASK, &uc); - if (unicast) - uc |=3D BIT(port); - else - uc &=3D ~BIT(port); - b53_write16(dev, B53_CTRL_PAGE, B53_UC_FLOOD_MASK, uc); + if (is5325(dev)) { + if (port =3D=3D B53_CPU_PORT_25) + port =3D B53_CPU_PORT; + + b53_read16(dev, B53_IEEE_PAGE, B53_IEEE_UCAST_DLF, &uc); + if (unicast) + uc |=3D BIT(port) | B53_IEEE_UCAST_DROP_EN; + else + uc &=3D ~BIT(port); + b53_write16(dev, B53_IEEE_PAGE, B53_IEEE_UCAST_DLF, uc); + } else { + b53_read16(dev, B53_CTRL_PAGE, B53_UC_FLOOD_MASK, &uc); + if (unicast) + uc |=3D BIT(port); + else + uc &=3D ~BIT(port); + b53_write16(dev, B53_CTRL_PAGE, B53_UC_FLOOD_MASK, uc); + } } =20 static void b53_port_set_mcast_flood(struct b53_device *dev, int port, @@ -573,19 +585,31 @@ static void b53_port_set_mcast_flood(struct b53_devic= e *dev, int port, { u16 mc; =20 - b53_read16(dev, B53_CTRL_PAGE, B53_MC_FLOOD_MASK, &mc); - if (multicast) - mc |=3D BIT(port); - else - mc &=3D ~BIT(port); - b53_write16(dev, B53_CTRL_PAGE, B53_MC_FLOOD_MASK, mc); + if (is5325(dev)) { + if (port =3D=3D B53_CPU_PORT_25) + port =3D B53_CPU_PORT; =20 - b53_read16(dev, B53_CTRL_PAGE, B53_IPMC_FLOOD_MASK, &mc); - if (multicast) - mc |=3D BIT(port); - else - mc &=3D ~BIT(port); - b53_write16(dev, B53_CTRL_PAGE, B53_IPMC_FLOOD_MASK, mc); + b53_read16(dev, B53_IEEE_PAGE, B53_IEEE_MCAST_DLF, &mc); + if (multicast) + mc |=3D BIT(port) | B53_IEEE_MCAST_DROP_EN; + else + mc &=3D ~BIT(port); + b53_write16(dev, B53_IEEE_PAGE, B53_IEEE_MCAST_DLF, mc); + } else { + b53_read16(dev, B53_CTRL_PAGE, B53_MC_FLOOD_MASK, &mc); + if (multicast) + mc |=3D BIT(port); + else + mc &=3D ~BIT(port); + b53_write16(dev, B53_CTRL_PAGE, B53_MC_FLOOD_MASK, mc); + + b53_read16(dev, B53_CTRL_PAGE, B53_IPMC_FLOOD_MASK, &mc); + if (multicast) + mc |=3D BIT(port); + else + mc &=3D ~BIT(port); + b53_write16(dev, B53_CTRL_PAGE, B53_IPMC_FLOOD_MASK, mc); + } } =20 static void b53_port_set_learning(struct b53_device *dev, int port, diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index ab15f36a135a..d6849cf6b0a3 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -29,6 +29,7 @@ #define B53_ARLIO_PAGE 0x05 /* ARL Access */ #define B53_FRAMEBUF_PAGE 0x06 /* Management frame access */ #define B53_MEM_ACCESS_PAGE 0x08 /* Memory access */ +#define B53_IEEE_PAGE 0x0a /* IEEE 802.1X */ =20 /* PHY Registers */ #define B53_PORT_MII_PAGE(i) (0x10 + (i)) /* Port i MII Registers */ @@ -368,6 +369,18 @@ #define B53_ARL_SRCH_RSTL_MACVID(x) (B53_ARL_SRCH_RSTL_0_MACVID + ((x) * 0= x10)) #define B53_ARL_SRCH_RSTL(x) (B53_ARL_SRCH_RSTL_0 + ((x) * 0x10)) =20 +/************************************************************************* + * IEEE 802.1X Registers + *************************************************************************/ + +/* Multicast DLF Drop Control register (16 bit) */ +#define B53_IEEE_MCAST_DLF 0x94 +#define B53_IEEE_MCAST_DROP_EN BIT(11) + +/* Unicast DLF Drop Control register (16 bit) */ +#define B53_IEEE_UCAST_DLF 0x96 +#define B53_IEEE_UCAST_DROP_EN BIT(11) + /************************************************************************* * Port VLAN Registers *************************************************************************/ --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A5DA21C16D; Sat, 14 Jun 2025 08:00:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888026; cv=none; b=NrayW5o16CkBo3BEMr1jRCEbHA/OL13BMbIK73n3JLN/Z9szsKX5lFmPprimC332Zk+b7fo8SfyPayVZMcoGqz0Cnr4rGzPNb/C90x0jMEu3JG84FIsfkWGB2lAwqVTw+pOSwaqrdHbAYCi8pq2gh4/ERRPcEeW6akPDpTJsRIA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888026; c=relaxed/simple; bh=AOUAt4WsK9h2jFqEUiEg0QCtGpg0pvfAZSiQna9cFtg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=GOFWx9CAnZa3UKDAfxYdSpdw0aiQGWYhGo6dmdIXiXFs/HjA75aEY+Wbdb0TcBTgVLO7lgGTt3aVHqQxs4ypZqPpmPy/Cor7oK/0UlBUz2GKDrnXbwuIeCWQg+qK2iy63h3sqZgiQyx6Dqq/tKbAntiG9ZFoy8swqSqe6tsdi5Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HR9XpLhR; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HR9XpLhR" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-453398e90e9so9767535e9.1; Sat, 14 Jun 2025 01:00:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888023; x=1750492823; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4kAjKQ5iGEvQ2t0m3gX/Df24pB5yfsoEgo3X+blIXQ0=; b=HR9XpLhR8qKzgq0NYg2ibY4kAA18bP8HbZ74L83Mgh46Hgn4EYt1v9VgLrvY7QCWxC gxF+M8GQL76B1/ijsPVPA25NvJjG7tHhDKs7ZzcR0mm9x1hKGXykCphUSDq83tbCg1jU 9hLbHfRYKyd64EAfge0fXRZ+UyFXTHwCMMka9f24UPkHtbx3YtSPtiCZFSB8i/mCIlDM 3HvO42AxE8yzb4d2aL4ltYlnCrGWqa/oxuu7E2/k9k1O7eCV8F5gLlL8TaUrbIbyFbIE QhJrb1uRLKDIG0T8WPjqi6RnWdnIT1z+Br1tbRu4Bor3jlRs32vAP+2BzrzHfeCToGBR CnmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888023; x=1750492823; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4kAjKQ5iGEvQ2t0m3gX/Df24pB5yfsoEgo3X+blIXQ0=; b=LiEVYvVR9Tx7AZ+cyspVJoG+gG8im+Xt4jgckM7Lu8540aomzi0mokqgPzd9Gp4mBm SzLWIoRJLugHWV1Nv/i8HEH9mPLM9dfZhyGnZA310t4n16qz3sOp/tZkaxaMmjuM7k1D CysxZ/S/9J0ADG2UNqyFssaaWGBNRk3Sy5diUCpUETCiSyqxgjev/5z2UC26vVTbmO2z OP4E5wFSV9P4kujtcAyLKxLAjBSBfebDYD+lTDJ0GcjcixG/g85Xr8nnSliDWjagxpHG cdRdpnw3IPFRnvlPjgtmkOY/MVx1eJsm4c3jNywc6fhGkG7kLGpdMLPyp5/Fvtx4uOH7 zf1A== X-Forwarded-Encrypted: i=1; AJvYcCU4BUrSIbqf5QRVSJPBTVqP3wqOeJWb36v/I14Q7lLG0eJmZz0YrxfaNeZ6wr2OgEBExrlbZbDw6TU5eHo=@vger.kernel.org, AJvYcCWwvHEvWok9nTS/3MVCFVk/7cr9hLwYEwXhTKfJm9ANVfAcZ5s2173w+4EbPpxgyXdig1koNPmu@vger.kernel.org X-Gm-Message-State: AOJu0YzsN857NI6hFepLmwqDikKr0/QMv4tHblSJGbMHQ7G2dIeOarsd kfZ+Q81KRZNwnY5W3wXzPd0v1Rtvp8p7i4SgSVrZG4CMJMiBEPnDxR+T X-Gm-Gg: ASbGncuI/91N+LYey8i+JKThDwlMw0Wlbc1YtV47jvsvbPnGWnrws9rUIj2KS5QJRrr OBYjnrO41TK/pDhzCGsK+lLC/wfLIWPZ2cwEsJC6sb7TYJ2wXv3qHNrSVo1TMVHEWvikf+9wyhr HztAAxUuLI3+aKkhQyW6RoLfcsPLoh0QKQeTyWK7JjZ/Fnm+R3oZeL59G5M190+IyZ8qwtBuHTM DUkD4m20sZFMxl/0t9ALhOpu070ssERuDXIz8OpjAk0Rk/gFdNSKXKXOCPAuymFZCbQSvHoG09U Uddc6KE9bBzmduJD+8QBjZarf6seD/U/vxScfUTdxakAH8vRgZDd2tqpLcDW4VwpNwyRD/nrRQl ZDt2JGlv2AcKsoLa7/tD8VZVWJGcOeS3UE3b0+gFGBgkUvh6XYkZUW+2Mh7XMqJ4= X-Google-Smtp-Source: AGHT+IHEx0ejGPrN8nGm9O3D/4kVrUb3sg+y5AFldZN0UpMM9SqJxd8uNJMx6yHnGuhpXL6gpaSilQ== X-Received: by 2002:a05:600c:8012:b0:43b:ce36:7574 with SMTP id 5b1f17b1804b1-4533cae684fmr24974075e9.11.1749888022608; Sat, 14 Jun 2025 01:00:22 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:22 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 13/14] net: dsa: b53: fix b53_imp_vlan_setup for BCM5325 Date: Sat, 14 Jun 2025 09:59:59 +0200 Message-Id: <20250614080000.1884236-14-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable CPU port should be B53_CPU_PORT instead of B53_CPU_PORT_25 for B53_PVLAN_PORT_MASK register. Fixes: ff39c2d68679 ("net: dsa: b53: Add bridge support") Reviewed-by: Florian Fainelli Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 4 ++++ 1 file changed, 4 insertions(+) v4: no changes v3: no changes v2: no changes diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 6aaa81af5367..29f207a69b9c 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -543,6 +543,10 @@ void b53_imp_vlan_setup(struct dsa_switch *ds, int cpu= _port) unsigned int i; u16 pvlan; =20 + /* BCM5325 CPU port is at 8 */ + if ((is5325(dev) || is5365(dev)) && cpu_port =3D=3D B53_CPU_PORT_25) + cpu_port =3D B53_CPU_PORT; + /* Enable the IMP port to be in the same VLAN as the other ports * on a per-port basis such that we only have Port i and IMP in * the same VLAN. --=20 2.39.5 From nobody Fri Oct 10 09:16:42 2025 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9454D213E74; Sat, 14 Jun 2025 08:00:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888027; cv=none; b=nhdqZ/wI0B0ETkV17v+LVgk4Yj/lzawum77285TFAcbTFdSLkEKzjKcK9+ugL622HNR8ugknETNpHrs9Wm5QdkrQf1gpYF8NFOEueHQkASQgbvpwFtZzwvuWkjXKLZQ4Y2p3d4xpQyL9evaG4HRBtftfrZy6+AeJ2gzlc9YhSQY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749888027; c=relaxed/simple; bh=7a28u0sKXG3vFOdz3Lc+cqRQFxQheFOFMjSL4DZVfWg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=EIoz2ZqgrhK7PNgQLlTtefPzIjoPfPHK5PEOL/PxSsEg7VFo87bRAbMBohuhBYn2Lf+1nuEeQ13yfjDpKaLAtY7lgE3AGRdzOQcuNrIc9kWoiTNkj+7Im/JQOBQfMD5K+1dAm/8PifSQRjd4x5b0V/GWmYpx2V/FZ408hR7VXxM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=k5L8Q1uN; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k5L8Q1uN" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-451d41e1ad1so24620445e9.1; Sat, 14 Jun 2025 01:00:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749888024; x=1750492824; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mPmrqGXQSm3KfbZ3QMibfb2/1EkzzyHSibvqUxxDwrQ=; b=k5L8Q1uNgcoZxNro0v2aq3/At8YlL7+cRx76RYssOFBox5xXax5tkgUdgf0e9n4ek0 0gxPgoEm3Zy0g9AvxWPp2r6XdcMKdQFUNtvS7G8K0rBs4hLdNU0oz9rFSY8nyebuuMsK AqGG/kD+yguhjziDQZKopYTvZrq0Zh5Q4CqXdwU9jDnRCcjn8OTWiPQS6SFztU9HQC5t YyO+aypjeJpeUeRWe0xI695PoMU21xOvwzQqF45MgY8g87QHwm706Tk8yEsMZhj4dyw9 qariL36hrV+aoew0ePGtnWckar3CEeEahmV9TO9i4GW0pPGCq+A8rh5jx3wCc0GLj28r jfuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749888024; x=1750492824; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mPmrqGXQSm3KfbZ3QMibfb2/1EkzzyHSibvqUxxDwrQ=; b=nyt7exy2qrj4Qv/Gy6iwGjZfJWGKB8xKuTz9kY1822Ydmuznv0IFj5qPRDBNk8HzIu fC4ucAyjSNu6HMrCJqECKn7AZEB6owul+xI/5PfC5Rvtn9z2/FM663r6QApSe90hdR1q YH7otK8y18tU9RIk7ELl/iy1r2pDNyPvVwSa2p5IGbMq+TWNz/Y0xXzVgqqvwzZxsQuJ llPXU4e1mwIZ0UnHBfH0V2PSJzaNpSm7ReszasdSZoXKAtifAtot8Nu/9/ab24mDMo8B f+L2yE+nLlRN8OU2oyc8hhrQVc5jAyLdcN8bG00Jr5qMUp+ubDtKUpMp5ISunq/OOIx8 J3fQ== X-Forwarded-Encrypted: i=1; AJvYcCUeyBWo8xoYwpCZqDgegeeuiVr+QEUIgCeo0e/jvq+E5NX7cx3WJRx6N2G9erva28mYmFjNoUsU@vger.kernel.org, AJvYcCWVkuWZo8+nfciG7BXa1CCetCKuU4tvo8Z4X8rsOG4oAqN8kF+8VudXBbEMkUpJXexqOlMcvGmCeRhQsqo=@vger.kernel.org X-Gm-Message-State: AOJu0YwRs1eEk5b+wphCi6+ZQNTlMXtp2dqb+0EowOXU86AUBs1sQEwQ ZM04ZVMkwRKXF1rdZdWYWkq33cAHzCYhhlYHZWs3B+u2HC/DFA5XgiV6 X-Gm-Gg: ASbGncsMYpniYIwH+nC1nocjpsXEDQ+TWplGydtVJ9yJE0Vksf5Wbvkv5KmOOJDagTk OswqWK9hc4hyIMU7+Czt3iEdhYWfDtfZqynx8xW9GZcRaz+X8J1HKNDm8ppRTBGhNFV0jr26avL qZV071P4O6tvU0QM9pRtZhQTTOFuCw0/NQdxHtRItbSeiQ2I/kXIWWe216K2szwaHPK18tjHh7s 7c2bjtmwLQXkMggg0c1NZPORZMsdE2dD1Zs2WhyYKFHPgaeOK+P57w0kYaVOib9J92yJP2QGrSe Wnms2VUaPMOaMJo0M1VKkBwHru0/OvaOjHQ3qxS6k9sPLM2mJS3t7pYJBV8RxeEI8tPsavzXRvP TKZydmPf6YbjQbjBmBxWNoLvNUxCavn5PMGAKFCA0pNBRyVMJNo34hSyNB3VeBejKpD6Nd1je1w == X-Google-Smtp-Source: AGHT+IEhfGlHP+zql732Tqtn/wDmxZs4K4d5mAMoyJ+oqHAOC0ufQkaosT+ghLdgpzXRaYCMBT9F3A== X-Received: by 2002:a05:600c:35cc:b0:43c:fe90:1282 with SMTP id 5b1f17b1804b1-4533ca43db6mr23361945e9.7.1749888023794; Sat, 14 Jun 2025 01:00:23 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-2300-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:2300::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532de8c50esm75443535e9.4.2025.06.14.01.00.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jun 2025 01:00:23 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, vivien.didelot@gmail.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, dgcbueu@gmail.com Cc: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Subject: [PATCH net-next v4 14/14] net: dsa: b53: ensure BCM5325 PHYs are enabled Date: Sat, 14 Jun 2025 10:00:00 +0200 Message-Id: <20250614080000.1884236-15-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250614080000.1884236-1-noltari@gmail.com> References: <20250614080000.1884236-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable According to the datasheet, BCM5325 uses B53_PD_MODE_CTRL_25 register to disable clocking to individual PHYs. Only ports 1-4 can be enabled or disabled and the datasheet is explicit about not toggling BIT(0) since it disables the PLL power and the switch. Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 13 +++++++++++++ drivers/net/dsa/b53/b53_regs.h | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) v4: add changes requested by Jonas: - Avoid in_range() confusion. - Ensure PD_MODE_POWER_DOWN_PORT(0) is cleared. - Improve B53_PD_MODE_CTRL_25 register defines. v3: add changes requested by Florian: - Use in_range() helper. v2: add changes requested by Florian: - Move B53_PD_MODE_CTRL_25 to b53_setup_port(). diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 29f207a69b9c..46978757c972 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -660,6 +660,19 @@ int b53_setup_port(struct dsa_switch *ds, int port) if (dsa_is_user_port(ds, port)) b53_set_eap_mode(dev, port, EAP_MODE_SIMPLIFIED); =20 + if (is5325(dev) && + in_range(port, 1, 4)) { + u8 reg; + + b53_read8(dev, B53_CTRL_PAGE, B53_PD_MODE_CTRL_25, ®); + reg &=3D ~PD_MODE_POWER_DOWN_PORT(0); + if (dsa_is_unused_port(ds, port)) + reg |=3D PD_MODE_POWER_DOWN_PORT(port); + else + reg &=3D ~PD_MODE_POWER_DOWN_PORT(port); + b53_write8(dev, B53_CTRL_PAGE, B53_PD_MODE_CTRL_25, reg); + } + return 0; } EXPORT_SYMBOL(b53_setup_port); diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index d6849cf6b0a3..309fe0e46dad 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -103,8 +103,11 @@ #define PORT_OVERRIDE_SPEED_2000M BIT(6) /* BCM5301X only, requires sett= ing 1000M */ #define PORT_OVERRIDE_EN BIT(7) /* Use the register contents */ =20 -/* Power-down mode control */ +/* Power-down mode control (8 bit) */ #define B53_PD_MODE_CTRL_25 0x0f +#define PD_MODE_PORT_MASK 0x1f +/* Bit 0 also powers down the switch. */ +#define PD_MODE_POWER_DOWN_PORT(i) BIT(i) =20 /* IP Multicast control (8 bit) */ #define B53_IP_MULTICAST_CTRL 0x21 --=20 2.39.5