From nobody Sat Oct 11 00:29:00 2025 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.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 9C2E02153CB; Thu, 12 Jun 2025 08:37:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717473; cv=none; b=NIw5xLxuRD5dm0eGOiz5qvtIPErj+v0yH9c3iknfivcMlt6unmvMeQE7AGeiCFfwTVnC9lOrtfD/BHuHg5iTtKnid32zauAnc4JBr/u5iAtemdd0/qHiRmyv5rgepprNMLbiCxgB90AFmnC1NNh+r4gfF+t/Fsfvq1xZi+8JQy8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717473; c=relaxed/simple; bh=SKX3n2KoR80sFyL3CjqAFbZXtMNIYMCK6lq2ckC9GpA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=lDU+O+ed3EehPrLQp0TBM0aVrlhNdl5xMVLAxVGYMnelIqJU+MfvImGnioYdA7Awpc+ZiN3VWdo5Fgw8wdit/6Lv1QrRhfyzduTwxb+7/yRMNcAgcF6E13ViLwVTJaMPp5ufb/LgeiGxBV5nje2R9FtCuiGXnrFNP+7q8GrM7Ss= 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=KodJYzWC; arc=none smtp.client-ip=209.85.128.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="KodJYzWC" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-450ce671a08so3660185e9.3; Thu, 12 Jun 2025 01:37:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717470; x=1750322270; 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=X5xNmkaWi31kNs6rrCrNFgmQp9qCyUxpgbVRh/iX7yU=; b=KodJYzWCojkYFBCJbBR1eVNJAUmytmnRq006OIDTrqyznFhzVL3Z2mXSpf8r1SNyT+ K4DpFgea7i+jp3b+pJW66/4HprUCf9rE9jXqfFT8zZoIlM6C4RNGwaokXEGvDi7lwxRz PEsEGpPnW8ooOcmDukyeBSJ6WDe7Fm1Ox7cLKsRY04KH3822+MWNj7Z5x03aE/be59Hb gy9/finhNvxT5idFgilw02T1sqQhSjNnxzlGAq+s3Hh1yOq74XIVafvbT54P8YAqYgfo uXlDKrPT71etNAnDnB3riizyNtdwxxJCsiRH59VfL390QlL8aQRbSVw3aDVYRuU5mb6V 3dJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717470; x=1750322270; 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=X5xNmkaWi31kNs6rrCrNFgmQp9qCyUxpgbVRh/iX7yU=; b=pMXW1cgr4ZxdSWqCMLkBGdG+gEIwlzbHEUH0UbsA9Kmf/EW/vV2YUBaiMXfMKZWSo8 ZOjE45J1efyJ9778EruMoK+G4TsEAulEQQFM4WAFG7xREo7xMSVXS5O/OsHz41P2n8+c KLaVRjav8rw0oVpO8twVUSlIaq/bVAwKfUxbBy+NuIqS4B+4IsQNU55HWutdUKTuWWQQ xFaw25foGAJ4PNhI65FQz6N37ztKmH43X6geDxg2d0JZ12QccBwY7glGsRWgqKKHwIZH kRutk//2Td7jJgKAWtTXvWIKHNIEsRHKdS8pXPKP2USg6tg9haH8YQ8la3/OMwwaagWu 4UVA== X-Forwarded-Encrypted: i=1; AJvYcCX8lHutJNh7gkodB47XxPd8f95pZj1ZU5FjQQWPCLc9wKOvU1EhnOjMAOQSelYG06CfG0LdXOt8r1nEm7o=@vger.kernel.org, AJvYcCXJ51nKS09ymO5WIjyYDbo+vu8Ys45JboQZTH4H7SD00sCfnmN6UArcwdWEQnTbZLjugIzDt3Zq@vger.kernel.org X-Gm-Message-State: AOJu0YzxmT3RTOoQB400RsM80AMhuqjaEvo0SUACFu9SVgfu5RgX233W o4r9hud5SJ5+Arqcov8FVKgGGRMSSQ9Jmp2dPvC468fQeUArVglb8Ou8 X-Gm-Gg: ASbGncsU7vhN3/I/02CRR+u68+yV1mGaHk9CK6B3GaAi3Jae8/5fRJQXlzro4yDqzXK ggQyGQj4dxE7trdgsO/cA2MI2siVCnFnppoVOUu+58XPRQ2eRZnvA+HWiFJlMXLx2ctiB+SJ0yK sl/0992hGamV2kp0F76pChSoBZnwFctgvdTHlQcp0MoGgpXrxxNZEk+Y4Co54X3hNI3cR9wuiNz UNBfA2EI889UX3legrWrfHNpG+hKbcogg6GrqJ1O1r9m37obUwrTnxcIX2ZaXCbQ7PMD7+noFOm hXex7wltJRdf+KW07GCq3OE7ZEqgmAbP55lzevsGIp3OUp/s7djkFnLeBQQhg1xHzXpbYha+RXk v+TV0LaUkt5XLnyH3Xp9TiOWJwmnuiGq6G14d2QuN2LWId3cFwgkIQ8k4S7aA1Fm/hwhk0TG/uC W7dg== X-Google-Smtp-Source: AGHT+IEHHIv8NuVLbcZZ8JAv4BOM12zfMynMkKdvMKGpcsUDQS6Di6dzulDkZ+SzMZCqZfX3tx+6TA== X-Received: by 2002:a05:600c:3b1c:b0:453:66f:b96e with SMTP id 5b1f17b1804b1-4532d2adaa6mr18267825e9.11.1749717469571; Thu, 12 Jun 2025 01:37:49 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.37.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:37:48 -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 v3 01/14] net: dsa: tag_brcm: legacy: reorganize functions Date: Thu, 12 Jun 2025 10:37:34 +0200 Message-Id: <20250612083747.26531-2-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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(-) v3: no changes v2: no changes diff --git a/net/dsa/tag_brcm.c b/net/dsa/tag_brcm.c index fe75821623a4f..9f4b0bcd95cde 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 Sat Oct 11 00:29:00 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 E2F91221FDD; Thu, 12 Jun 2025 08:37:52 +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=1749717474; cv=none; b=uvZB6jGlNKCIVvboBPZPsipUnFqw0Hsqg7CCY6atR1lUhre9Y69R467h/Wa2kbJNYs84ehEQC5jiHdQbLcGPaXoI0/rTH31OXidMIFYpne7TfuBThO6598UWXYgxjopxsipcx4WhvZJoiWytcVzHeZmhPcRyfqhcIq43sjPy4g4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717474; c=relaxed/simple; bh=oV8NiAb7Ct+i7S9WzFcFRYBoFqF6dVQhRk9sWRium9Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=HEovtLk4dv8S4AOZZ9XQ9X3jGYBhfc7vT75GJHVDC2VWj91XaVSby+e/MEp/uz8Nq/MJTNwa2fDoIUMrF4RItfydktJFKbJFhmP/IL4SiY5abqxVZy3Y25VrvZ1m1JaN6F6TBCube1ZzKRPxAPdLYPgED8KiSrjpzgSnakui/PA= 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=eNeXat5e; 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="eNeXat5e" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-451d41e1ad1so5099815e9.1; Thu, 12 Jun 2025 01:37:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717471; x=1750322271; 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=r3B32SeXRU526IkGF7S2nlgc/H8nFrvkPADRZbi9N/o=; b=eNeXat5edu4Q454/h+Ln/n4FXXuYsc+aHEoFYzW7uXhzrkiwtGgB7mSV3f8psMbZZQ FJB19Dc0Q5CESmz3JvfvP3/WqVrTYhsBtOQPuELq5u+SlpAsxm7oKxpQi+5scdtcpSp6 00M0Y4A888HtKbkPPIN9DjyNXfaV1Jo2XiZFcBqR1EDNUHNmujqc4ooCV58ROKoUT1qv zRFMCgkxnJDXXItmY8Dw7Nz8U+otDDRu/ZVKdP59/wQztf2a/+UMLfoKPszk60C2KDdO 4JGCVXsdiN2P70iOriIXf89HOztySNgNnTZ2u+45iZHk7EIiNt09nTsxR+GoOXVbbwh7 06mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717471; x=1750322271; 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=r3B32SeXRU526IkGF7S2nlgc/H8nFrvkPADRZbi9N/o=; b=blyXFMcWPXJsGQ+SnaleaVOmMfvMJ1fmDs+Z3n3bYqPIprKZk4hxtx7dBAzARxFC0m x7wp1pF9ZP9G6jLhZM5ZX7PGD09XD8kvkkXYEmgP62NBnkuDAcEatqeCLFIl6gGHd3ZY lVsQ5c6UzT62jsaKRIXuzDrxWRcr4MJ39MO4QIvqpuY4WOgKArKr3pqjbhRi2viEn6I1 hCXig7qSlPd6vCI9ox7Id5K3z2xSQYvgL83SAuk3vkpck1JDrRbkSFIDOofMGi5rN9MS 6uISbbxN71kQjBlUPVzatLGJvqbbbqpWy+q+cTg954qJN/KiPCW4/NOoGO9KFj20FplA q/Dg== X-Forwarded-Encrypted: i=1; AJvYcCULVPjythqz/n90P/eppZx00GdLc9eMfG83Pucv+x2wlsm2clOFloy8m1ebwaPhAvbCAhS3r7OZ4PvSnsY=@vger.kernel.org, AJvYcCVLrVjr1DwptyIFQ3kZCU12CHm70NPNU7ZYhBS7IA35LgQusqRDKsI5Ql83vT586v7utIeSjJxd@vger.kernel.org X-Gm-Message-State: AOJu0YwrkZeUvpzQyfi1CLwuETVQLJzUJs+CIe99fOpLLnVlymjSOmcB AoZX0uu9z2DZ+nAsg4EsVKUvDl538tQ1MEg3HsaXemzg9lchntua7y7l X-Gm-Gg: ASbGncsP9kvBsuR9RGxI6J5/sMvT438vICJkwHUAeYCcPiS15hwBwR/zIfdhuazcwM7 DPUz4GQfeOguoskL+0eFyZeHoc1c8TvmnM8jXL6OV+0b4osuiSAA1EDUFiLRb35wtSpJQdtogbL gKjDLaIFxU4Ng0+YP3dTCNZIaSNbSZPINzQ3JKOPieEQJh7Xz/gH2ljIyRbp9RTGGUm3xDnSn6g K0tkBh6JAbwuW7fYmv+8LZkqguU7UzZMdexWiGFgJ7/0JLz46k4dYpcCxXiWfAko4OaE25s9riN vioGIAFbr3VJU8Mab0ukeuB4Nnz6a40hdMiE54ZWUlEWsODd5p8QNAuOPGi7wf75JClbwoCgrDc P88HFCGsSy40O2G2yrxG5jXJzWuG9ZXTk5cJ81YEHRASs8gAkPK3mNd9aqz91X2YI68MeMhwKx1 H5Jg== X-Google-Smtp-Source: AGHT+IGgWJM8N/ee9Uhm6kLiiR+LpUOOBnfVs53QkFTh3jN8SEhb0+ZcZ4CLVdTwkLFLC3YuX+Fycw== X-Received: by 2002:a05:600c:1d22:b0:450:cc79:676 with SMTP id 5b1f17b1804b1-453248f972amr48568415e9.20.1749717470920; Thu, 12 Jun 2025 01:37:50 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.37.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:37:50 -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 v3 02/14] net: dsa: tag_brcm: add support for legacy FCS tags Date: Thu, 12 Jun 2025 10:37:35 +0200 Message-Id: <20250612083747.26531-3-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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 --- include/net/dsa.h | 2 ++ net/dsa/Kconfig | 16 ++++++++-- net/dsa/tag_brcm.c | 73 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 88 insertions(+), 3 deletions(-) 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 55e2d97f247eb..d73ea08800660 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 2dfe9063613fe..869cbe57162f9 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 9f4b0bcd95cde..801f90d136f12 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 Sat Oct 11 00:29:00 2025 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.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 3BB9C223714; Thu, 12 Jun 2025 08:37:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717476; cv=none; b=n2OIS5bLpz2fnu79dCZHP0pSRCEv+y7Tn7H212cVnkiUSJDvJOjkJqtRTNNKOowlYsibvZ4/9hsISk7mToTSdL3g07UzmoeTVrILrPA6lyXfPm7CVLO8K11KpqNX9akdqpTawCb55dLhHKGAftLzSH+kDTzj4t8VWcrcLB5NlIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717476; c=relaxed/simple; bh=3lcRTCoK6helibVxRxtuZ0AhUgecBUU/DefGsWxslBU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=m+RIcf6wwOFik7uWBykFaJNft2lUxeDDorKz1rQikMusrNqNsU38wdt9haTmjuwrSbZtZhtNAZXB4QGxYVlSbvGXuA2Erw3ir4+pJZ4x5nDjxkjcPM7GzgTy3003WhqeedBJP5buq8ljQcade0NHWx69qMYo676F/Xp20sF+nB4= 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=SXllOk3a; arc=none smtp.client-ip=209.85.221.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="SXllOk3a" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-3a35c894313so632717f8f.2; Thu, 12 Jun 2025 01:37:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717472; x=1750322272; 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=vnz1Aho6mg87+r/pdfq+KytTWdWFTN3tXlweDvzapkY=; b=SXllOk3axJnhh4tK2aO48MjVR9DK/GOhiI4X52zdSlrdiXo/7EKlamLHwCtMuqgCTP Ooqh3YCeA94jxfjDDo3+LX7mCA37uyMIZqCD2ttNtDNUM2edgjZ4f2eXK9C/vo1K4O5h H01M/g3/zKXWQnTworKLl/429H8WyyqA/QFPcc50B3mRM7QQpO6tbL+2LZGAFXFGMPUG qgD819GFlzOmvuk9dcsEfbMN9keLRTEdvalbAqm7w3Hp81VclQeRtiplgfUv4wcoEifo wDIPADPUV40CBP8eN/8hZeWNMl8bWvBGboGp4faHjivj95F7ZDpAS26q1Gy2uXRMls4/ lRkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717472; x=1750322272; 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=vnz1Aho6mg87+r/pdfq+KytTWdWFTN3tXlweDvzapkY=; b=JLNQs2ih82bhYkBHj/2fAPW6eDJPJG1fLfACygLX9be7o8X61lbkdyxqgQ6cR9LVPv QvUk5LUgesCPl/5zRrYizi007OaiN9mnbZzQzPj1oSNQfiFaGUr1qiwHR1DwnO3e1ZkH R9Gbj9CvhXspi2wPBOZ+IIL6HREAeay94UXfCxz+RxYjJkeocVCE8x5Vm/CwQgUcD2hx Mi+i/T5fMRjysnRiH8phoLV2XgFrY0sWJCQCJGpwOKhUjp1FmI+jJ+sWlIMbV3FUZWyv H8kfOtW62abAsneMlKCbd8bXaUxMFLui5GooVS98c5o0uxsKw5+UBGzA7etSRCFFqDJS cTgg== X-Forwarded-Encrypted: i=1; AJvYcCUDwUNuhLgS9b37uXyMb/mPo0U7A9d72mYGqATHLo2sWjVsGxMe7cQvOMDWzai599grdP9eqTkC@vger.kernel.org, AJvYcCWUBkF341i5pfRHqFECqilVtTGI2RRHVpF/vzpUZz0BzuW1vSohzDWUrUnW5LhMd8p6K3jM2/7oNo3NK4M=@vger.kernel.org X-Gm-Message-State: AOJu0YybYTmpcgMdL5qqJyPqFq9sAmlJ2SjNl6j9j4oO4E9DNB1nLQ9J lmjJqNV2fPLxEDl00GBsqPV/x3C9vfF9LoPx+ylenyDp2b+cwH1mIYFw X-Gm-Gg: ASbGncs9wAjLtYOTqemPTwcPtTCq1CC8seSigbvzQbilWAICwWlvki9a+iQIZ96z4Ji s15z4QYGC8+BjcxNi0UbdoINeGGJ1nfJNEs/VmXfCf9AgOGcDMaAaVbtDyLWUB2rR4SFhCfms1E V0wits2BhOsvI6i0PgsHtS9PdTFryJxwJEJ1Yux7ow7ieCuMGq2rTqqOs4Yfm0flCsT+0j9O0b6 p1dQ0v3FovR4eXn7OHGqWP+w0uvAx4ZCP30PAQx2hoP2tT4RDXgib1XWDkM3cvhtiHfGlLRWLeF yU5xm1cl4Nh/ZKEdMhmw5QMP/gMpYix/LdX7qmmyo3FMf68fXqAJu/zAZCGjUhY8xYggMBNk4Oz /hZ3PNfR9wBEeqBL0izjKNpRPaZZn+rvy9lGBZ+i1rS09EcWxPxehro4z7kYKd/qPo1QmBwajg0 LGfxTh/lruiOWY X-Google-Smtp-Source: AGHT+IEUJMADr4QGe11F8djL/zJ1nou0mzkg74o4ndABompJbu6leVbZKQ9lsSEeWKJtUzwq/evIyw== X-Received: by 2002:a05:6000:2308:b0:3a4:d79a:35a6 with SMTP id ffacd0b85a97d-3a56127854dmr1630440f8f.14.1749717472346; Thu, 12 Jun 2025 01:37:52 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.37.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:37:51 -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 v3 03/14] net: dsa: b53: support legacy FCS tags Date: Thu, 12 Jun 2025 10:37:36 +0200 Message-Id: <20250612083747.26531-4-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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(-) v3: no changes v2: no changes diff --git a/drivers/net/dsa/b53/Kconfig b/drivers/net/dsa/b53/Kconfig index ebaa4a80d5444..915008e8eff53 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 862bdccb74397..222107223d109 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2245,8 +2245,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 Sat Oct 11 00:29:00 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 E411A2253EA; Thu, 12 Jun 2025 08:37:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717477; cv=none; b=drJFHM3nLNheAnxX1XszFRZ9dqmEM2Drg1Z2B4fnerN45syjvf0yVFIygCtfxWoFVIvwqbGfw4o5GEJq8X4M/CGvA2h/VXqaLOgKqaVLldhpb8f4MD125vlLkjt6BiiESJXu2mELdsziEnYrDm70w+yUakmVwqKJfL6RdMNec4c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717477; c=relaxed/simple; bh=5kNxnD3+SbZKfPXiMYutEJNsOJl+xVYKVGc6E8RoHKE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=SMVu4tN8Xtm3SAdVu2EPRV4DtM6MwfNShf2KlrISNq5+F6a+je81yYfdDHkV6uqYu05dh9pSkH/cVQzCTFTVKEvh0JaM6Y5pfGMCu+Gi1vsr9OgEPEXwNE/Jzg8maZBwjF5irh0VlBUAhxApmePqh7v44FoVrOGnoARay0kJ7uw= 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=friikbIv; arc=none smtp.client-ip=209.85.128.53 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="friikbIv" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-450ce671a08so3660545e9.3; Thu, 12 Jun 2025 01:37:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717474; x=1750322274; 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=/3vjBnVSsL/AVQ5DWQO6/WstPUY+2e2Mt4DVotijAg0=; b=friikbIvJ2LRbsUEaDmsMo1fKDnUfGoPsWucAqEEl5+eS1oEHaEBek+gIG+LGw+igp kzRq2orBD3u/jwcyt4YKXinIIrixcZBRuEjT4fab587V6IQwx9v40a3GoBifx54gV9b5 I15n4396jJ7Ssw8OPbRXKRL5ZF9ZQC7B/nNGujBKfGxfo/ra5K/RJGPOS70TB6bsOobY SisA9+OWDXIi9pCT4HAQ//7bYBFxOuZwu5DCBytT5e6A8/2FvDZAK3Xe+Rpvl5VaAok4 6SG6DtArIXQUQXyzwvp4D2RQPhcAiBBHGydQ8e0hbhGQfywFgVXGgDr6cGF4PCiFMdRb jxwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717474; x=1750322274; 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=/3vjBnVSsL/AVQ5DWQO6/WstPUY+2e2Mt4DVotijAg0=; b=bzKeRi3jXnN1Rg5xOPkwsnSseO6wisnOMzm9GCg8XjXk3R1epnRJnaCBrVrsnVKwiP 9lobb/XFqZcP3rN/H48C+fQYhRZQBgaVBHKfeNkANHvSDTSV4TEtQXQNA3/P9eSPB1Hs Ts0nW8PVlxo5hUv0ZdYcbIuE6InvGzuiAyP9COgIJ0hFNPsGNutNkjeSyJ1UoUFETs6m uta+6immt36ZaOn14NDS7/8EEHggBZcBYHjxqTx2thOQIUa8RIuGe9IY3Rpimx4tzKzm 936LqQUSbMthBQNAlhQRE0nbnD1gAdHhSV5PU+9eSeD8S8cC7kPw8xNEKHBWxrTeEMlR hWVQ== X-Forwarded-Encrypted: i=1; AJvYcCUHe1EYmBzuAOGH/kHPCsv6YcmbvaxJJ6JPyF1c7E4sLo/DIVaNJ/xwE1hMu5pVV6N9ZH6GFCnj6yzI4wQ=@vger.kernel.org, AJvYcCXGsNgs3/C7GFcgn+oqsSzY7ypomP7vdW11U1JjgTZptPp9QaxRClKWN+ZCoQqiq2GgzZzvk8DX@vger.kernel.org X-Gm-Message-State: AOJu0YyLV0MMFcEBr2js8lYOEoiHp7/r/K9pkbz8gabIBBueMCpYCA3M BMmiQeh75RBXm4FEL+3Rcxpc1H9WqXlVNThCVSPpYSUL5bOzP4dcZJTr X-Gm-Gg: ASbGncvYBOF4f0bZIPDsjiWG5tSaF4P198RtMujwQ5VwJCJKM3njdC4w8fLPYLSJ+ob FZy9U/84qQ1IlCf36zxrrXEGxVuJLmvMzHcdAV4Y5FIrPBabmzW/WRVG9nFHwY3VHgwc1yXkQXQ OAAZ9g/sZD7hU65+lTApLUiOZgWBOUeipCeDEfKNQA9lJKMFfKlDuSuX9mss79XODYxpQisFuP4 JLm5tidKWIn3bPj4jWRZ7kanK2Tus8CjJIBHE2OfOIphTQ4y8U53/9aV/H9v/3ZGgTgiiKpF3y/ rx68iP5sQQNCqwUjkDqwTXzVRvaMsVXvhAqtPRZctZzT2AwjoF1T9moAJlayrPmI1kZIwhfFRIL GRtKFP+iTd+I0YVMYRuTpmbIuG/dyezUa1IXvTphhjlyyz+bnuiSVIzinbOI18mGIPAh5INN2m4 hBmFC1tE2ybvKs X-Google-Smtp-Source: AGHT+IFu6ZfTNThPdqjaL1g5Hw21C3pnbqFrHDMpBXbwlPnr/OVqxocUuZQkdwM3BG16HzqRkLhy+w== X-Received: by 2002:a05:6000:250e:b0:3a4:eda1:6c39 with SMTP id ffacd0b85a97d-3a561308a8emr1635284f8f.13.1749717473894; Thu, 12 Jun 2025 01:37:53 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.37.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:37:53 -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 v3 04/14] net: dsa: b53: detect BCM5325 variants Date: Thu, 12 Jun 2025 10:37:37 +0200 Message-Id: <20250612083747.26531-5-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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 BCM5325M switches lack some registers that newer BCM5325E have, so we need to be able to differentiate them in order to check whether the registers are available or not. Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 34 ++++++++++++++++++++++++++------ drivers/net/dsa/b53/b53_priv.h | 16 +++++++++++++-- 2 files changed, 42 insertions(+), 8 deletions(-) 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 222107223d109..2975dab6ee0bb 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2490,8 +2490,18 @@ struct b53_chip_data { =20 static const struct b53_chip_data b53_switch_chips[] =3D { { - .chip_id =3D BCM5325_DEVICE_ID, - .dev_name =3D "BCM5325", + .chip_id =3D BCM5325M_DEVICE_ID, + .dev_name =3D "BCM5325M", + .vlans =3D 16, + .enabled_ports =3D 0x3f, + .arl_bins =3D 2, + .arl_buckets =3D 1024, + .imp_port =3D 5, + .duplex_reg =3D B53_DUPLEX_STAT_FE, + }, + { + .chip_id =3D BCM5325E_DEVICE_ID, + .dev_name =3D "BCM5325E", .vlans =3D 16, .enabled_ports =3D 0x3f, .arl_bins =3D 2, @@ -2938,10 +2948,22 @@ 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) - dev->chip_id =3D BCM5325_DEVICE_ID; - else + if (tmp =3D=3D 0xf) { + u32 phy_id; + int val; + + 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 & 0xffff); + + if (phy_id =3D=3D 0x0143bc30) + dev->chip_id =3D BCM5325E_DEVICE_ID; + else + dev->chip_id =3D BCM5325M_DEVICE_ID; + } else { dev->chip_id =3D BCM5365_DEVICE_ID; + } break; case BCM5389_DEVICE_ID: case BCM5395_DEVICE_ID: @@ -2975,7 +2997,7 @@ int b53_switch_detect(struct b53_device *dev) } } =20 - if (dev->chip_id =3D=3D BCM5325_DEVICE_ID) + if (is5325(dev)) return b53_read8(dev, B53_STAT_PAGE, B53_REV_ID_25, &dev->core_rev); else diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index a5ef7071ba07b..deea4d83f0e93 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -60,7 +60,8 @@ struct b53_io_ops { =20 enum { BCM4908_DEVICE_ID =3D 0x4908, - BCM5325_DEVICE_ID =3D 0x25, + BCM5325M_DEVICE_ID =3D 0x25, + BCM5325E_DEVICE_ID =3D 0x25e, BCM5365_DEVICE_ID =3D 0x65, BCM5389_DEVICE_ID =3D 0x89, BCM5395_DEVICE_ID =3D 0x95, @@ -162,7 +163,18 @@ struct b53_device { =20 static inline int is5325(struct b53_device *dev) { - return dev->chip_id =3D=3D BCM5325_DEVICE_ID; + return dev->chip_id =3D=3D BCM5325E_DEVICE_ID || + dev->chip_id =3D=3D BCM5325M_DEVICE_ID; +} + +static inline int is5325e(struct b53_device *dev) +{ + return dev->chip_id =3D=3D BCM5325E_DEVICE_ID; +} + +static inline int is5325m(struct b53_device *dev) +{ + return dev->chip_id =3D=3D BCM5325M_DEVICE_ID; } =20 static inline int is5365(struct b53_device *dev) --=20 2.39.5 From nobody Sat Oct 11 00:29:00 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 8647422A4EE; Thu, 12 Jun 2025 08:37:57 +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=1749717479; cv=none; b=MXod1u5Idfft5lYkom1tmoj02Icov6uwcq+5/1rofUtqoT2fPBSwC6tQ8yBWVqJUdZ8jogpFH0LOELpyhDSOtxLK4kECh45+zixwpquVDBsgmH66jwwap4blSO5bKg6xbXmQNa7e2tqBB+3SjBlCVBmnYwnNDo8mNGqssKVQO4A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717479; c=relaxed/simple; bh=TC4HdSiEIwFy8CYTvbyXaKkGNApV91M5gHfBFsCvfdQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=dwvE8jiqns+K4pXS0WeDPy0Gj0NyM+wWxrpjaG6V1ynRG8Rlsnrs3GMyJ97CCEiw+VLfP4BknpdogLZTMU3dmy8hglKacUpV5PGgMYLjmd65oejxeQlNJdPjXrF0dkuG9rlj92yRogqpuyAoEsPZnqbE2xTAcdkcd9Pol3XdFzw= 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=R2LrhK6T; 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="R2LrhK6T" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-450d668c2a1so12849145e9.0; Thu, 12 Jun 2025 01:37:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717476; x=1750322276; 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=v6p1j1qTLF2MFMW2J8lJBrQ9BSh4eJu4r76wlgaGnm0=; b=R2LrhK6TngeStPinBWWZSxOOkTWmZMzxQkfpMYF8ddEQnKG7+mlkBs87Pfh/lVGoow tWX4UV+ay1gHVT3rO8+SaAj4nbp8V0VPNIZ8xXv6KLH2aOSvNNrvo2CLSJsvWITKIQqR CdP+dgvq2WndQ+KdsRwuidGBj4yfwa3CQHyeIIy+R1E4OIG7pdEEnShjYn56rsLSDzk7 mB4q2X/vGXuQKtnXSA5Dr4sLYl8Aps7FO2nLyY/YUlL/iNT67fwlcaLEjVPsJK5NZGvW XXC6MoCMl/pCCbmwRhG1MmQUXiDAx7nOaA51Hrha+Glp+aOh3J5Oc/PifDtQV03ryZFv Upbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717476; x=1750322276; 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=v6p1j1qTLF2MFMW2J8lJBrQ9BSh4eJu4r76wlgaGnm0=; b=thO381EcMlKln8J9g7PJsuME873ike3VFOtFpK1cwQJRVTSh4AqLa2iEFPoVcovAPe tnFWzibKfhuKo1K9jb4JO/I6QBQ3Jtx6XNBNp5FNsIxbLD6UrfCDf6Unu7KjxrTjn0Fo MrDbLkdoaMqZa7ncbEeqeHX3gcc9DVzmC+13AVsW9oQkRMDvoM2192gdEejXsBiM19a4 DXdcdVymJqZ2EEYmn9PYppacKZMtrRccLHCsCLRB2CEU4QZ0I/agtJaKJA/yhp+D/i+l tWEYRWIMJPZMnEG7oXSDHObYktNcqvkXFTTtbDxKcqX1Vs+FXy0t/4ZLRojWoE1gFSLw YMjA== X-Forwarded-Encrypted: i=1; AJvYcCVTdq0UkFdsZNYLnloJ3EYYkaLFuadcc5/brBqvUM4ii0bg/IRiIiw/otDmCyynt0vZjYYXf6yo@vger.kernel.org, AJvYcCXwW51Zem9BvYrsBwB1h0ja9X3Qw8MT2alNc61Te7nLgLEqdhYuyzudF82kTZ7/I4rvKTSWEDLgKWI/qlU=@vger.kernel.org X-Gm-Message-State: AOJu0YzB7imojE0wgdhIYyiZV6wLyWtDdVkH/QPdVO815ByNQG0dUKZg GwiTIUIqRpN+kw2/rrgrFmoLmAfrLlpKtwHj/5uQQpTeHLZCankyPoYE X-Gm-Gg: ASbGnctH9hHEFrCm2D4keOu06fHOIunA1wlMv45CCPPFZIfUleyXrwHC648LqRp8u/U e4uWlQb1A3ABzqy0+qOGsxxDzJNxxD4yTBKteVA//9wkJcvIKyNumUmj1TEj9064ojQgeIgR+uB LWnqCDge/iMxytm/kNKeYSgz7Ah1w7KvDa4BX47EcRHuUB671Y/grx9+VfwwMeOjZMG16bFBty4 FNjcMoXt57xfW8mS0LxrLRtGBg4qXD7K8sIgzKoNvrhOZFaA5NheTa02Vr/f1OZEEDUREo11Zh3 bWooW8+gQgYO1+XWDLMXxNh8z9BNY8BPmrvKyW3qtSIfFIiGMycIO9hi3K3Y93wxZ4OmlD7Ibhu kLxml09f47fPvz2H4vIhhqYMgCEGx1okl96EFH4VYmD3qp+MgVFS8Fg3eOaZ2POorYng/DnAlnx z5lQ== X-Google-Smtp-Source: AGHT+IE6XC/rxyJu1agJncMCz8ww7gnk0K0k0u9ms/Fu0Bj20CXryD0+vvWJio/WYUFMokY33rV/0Q== X-Received: by 2002:a05:6000:2312:b0:3a5:2b1e:c49b with SMTP id ffacd0b85a97d-3a560828446mr2072372f8f.29.1749717475630; Thu, 12 Jun 2025 01:37:55 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.37.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:37:54 -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 v3 05/14] net: dsa: b53: add support for FDB operations on 5325/5365 Date: Thu, 12 Jun 2025 10:37:38 +0200 Message-Id: <20250612083747.26531-6-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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 | 104 +++++++++++++++++++++++++------ drivers/net/dsa/b53/b53_priv.h | 29 +++++++++ drivers/net/dsa/b53/b53_regs.h | 7 ++- 3 files changed, 117 insertions(+), 23 deletions(-) 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 2975dab6ee0bb..f897fab6b5896 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) { @@ -1778,14 +1817,18 @@ static int b53_arl_op(struct b53_device *dev, int o= p, 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); 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) @@ -1829,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); } @@ -1846,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); @@ -1878,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 @@ -1898,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, @@ -1925,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 deea4d83f0e93..2da71e967310c 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -310,6 +310,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) { @@ -324,6 +337,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 1fbc5a204bc72..1f15332fb2a7c 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 Sat Oct 11 00:29:00 2025 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (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 14AE622D78F; Thu, 12 Jun 2025 08:37:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717480; cv=none; b=hJ4o4GIaHwH8J018xtpmNKOq6A1x1Q/98iRdHKOSLm9l/iSDJm9uHj6V/ADcENn0I/lBVAbWOTj7f7ptaZKVLdUysPmoftuBT7YpQLbqbQmVDAynIQ0evPMRPxjKHjxgzIF3pxPXA98VE/hWIVe48jcNjSd31ImKK/eyxQ/X56g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717480; c=relaxed/simple; bh=XejVSRtPDX8wqZ/staI8F6QRFJxANYGNa1nbegLejT0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=iv8MpxfX6LlLGthnn3rORTdxU8voGpC59msrbml8xfMCLkjXrNyq/b2uibIc2D2n34F29aaFu288qzDY8zWtdq3cTj/vhSQbnVd7J0Qy9bNO0c4H+VBmUtiYGlKVgV9vGvviQsgnFP2i8NKP0PnOAKIJGp0OaC5Y8cFgGJbsktI= 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=FPtthYoK; arc=none smtp.client-ip=209.85.221.54 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="FPtthYoK" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-3a4f78ebec8so502471f8f.0; Thu, 12 Jun 2025 01:37:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717477; x=1750322277; 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=t7cH50gVxX6qICo5DanmfB424fMjg9VvlFFVHp3kmuw=; b=FPtthYoKC610aS5HWQfA2yhmWxuQ0QqK5oGhTfiS4JcvKc8TLWLCknPcPxP4dXqIaS jJwSIwJ7tWZTTodmfCUA/+i52y7lWA5+MhHpivwXVUGKa2CnxrRAJydUtVYopumkJXJy Cv7jvpiSuky/pnDv4aDK878ZjCHoRJV251kdC9oCl/uC2Iw2YpHM/a610fEn+db5PX+z BBuyqF9tT6EK4KYzhbx1RGaQByQIEmoMGLgvYCPEvlcrTnT2++NTWTNH7Y0KjdfbhniI AIGn26nLO63CrMnvRI0JjztRHQ8q2zQ9hDB419wvGR3K2CXblVQ1saSu8LOgF8rhKpab 8SWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717477; x=1750322277; 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=t7cH50gVxX6qICo5DanmfB424fMjg9VvlFFVHp3kmuw=; b=EBhmmrud89RSLEvuCe3dZ7Us6oo2JSfksimZza20ka8wC/bd8XyCFUaQQCQLYWO8lR yjVFv7aX13OzxPHTpg6FLkIJBurcWcW7i8ZF/LeAyidMQj61i71l04wfYuQeOyn6ewVt jgCi6gd+d6vccs+t6jCSAduhlPS4U6kxQPVhJnr+j/Ouzy5RcJy3UZWcCv+Ang490W6S SOZMdt+xE7d2snzWd2C0bIYpX5jbfNB5wsnSySNArki+hKBAkLQgm4mHgTkv8jzmyjTo 0vIsV17CAoUsCSRs2n5/RigYHQpZQLl3M5yB2bKB0TwbW24posLzgn/4sZzY9+1UuiEo wjXA== X-Forwarded-Encrypted: i=1; AJvYcCUOTKVDxD3KErEfBIabl0L6rvGqspIDggKkZY6evULbzkL2M8uAEZdA4W2ny2I6CxY2T99mvK/A@vger.kernel.org, AJvYcCVrU1QDEsVAqsUcyuGLjCPoSqsklOBSjG2KtUbQCX9v2xCfmJrzKRfzKGUK6qbewowi2ZDeOB3/PbKDmWE=@vger.kernel.org X-Gm-Message-State: AOJu0YwUV78cdd9v499c7fY7RyB/VKqEKe24jB+SvU3hd8PHJaUHJ35p VN/0N7c4Tqwl43qBOVGn7QM++VS1ZXtNhMsBKgPFuAcPqVkEeg7OifwC X-Gm-Gg: ASbGncure5xdUdF82X06FITanvpUyXmdg2Ot1lP2egVSBmHgpxtyCJnW8irLNvbMhs2 7AQWY4W0mVkgo0zsLdRRVqliMiPgUZ4NqFB6W07xQ3Hzj0+N2vJgD+ZLLYomdt9ECPY/XrETGFd Dy8SURL1Njo18tqUhwBkWcmURWXF1ovQ+/6Fb3UnxLsq1/JNL6XlM7N1KYYw4qQB5p+Z//KgkdU ONrUkqnIKIc0rpR7mtRS1CzUifQRsdVeDqrP7rIE7cnhv4SqqPsj+tirkEtrudbL6KRIG8jgRJ5 R4hexG8YfCoMxMeSqi+gD2Se12pObdwfRAFi7Y/x2VCOlM33H94K1Tq2v+tUybzaH2p+okJriwZ fnf/Jwne1Jv17ZrKJ9c8ycIt0uRsa7YTu6agvulfaQZ5901vJ6z0lAAFtZPPgdXpLYpjs/eHPPm K8zA== X-Google-Smtp-Source: AGHT+IHYLFjic5AKHmX5O5c729EMv4fxnyD8SpuPtkh12oezKYHOxsya6Mj7xU/TivnYJ1QobAjh9A== X-Received: by 2002:a05:6000:43c5:10b0:3a3:7987:945f with SMTP id ffacd0b85a97d-3a56076bff6mr1279137f8f.57.1749717477274; Thu, 12 Jun 2025 01:37:57 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.37.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:37:56 -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 v3 06/14] net: dsa: b53: prevent FAST_AGE access on BCM5325 Date: Thu, 12 Jun 2025 10:37:39 +0200 Message-Id: <20250612083747.26531-7-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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 --- drivers/net/dsa/b53/b53_common.c | 9 +++++++++ 1 file changed, 9 insertions(+) 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 f897fab6b5896..4bd8edaec867d 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 Sat Oct 11 00:29:00 2025 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 A2FAF22E00E; Thu, 12 Jun 2025 08:38:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717482; cv=none; b=CKO/NWAA8QSabDs3lplyB61qWLEUwREMkAb9XQNKePPJuECYEFHZraAaLSOiDX0pLoS0Adv3qqM9SXYMAemCxeNRjjrLas1AxcWrtlKxPTFXpGGaopym2tNhqKg4GAdlUOqyHZJwAGnLHgX/+xBw55zy7JuvFzxXnSfbYDDkur8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717482; c=relaxed/simple; bh=Q4v9J26HZdNWwOGNTpjpEMqW9J4W3sJ8tZB6LBI16RA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=b4CaVX6zcaVy8e7N/6avfH57QvRz5fzLKx4cM9EaaW3ILJqxN/zwR6uq3nF6eA3td+fikj7QorR4E5Euj3T5pVayYXo/CrAeI/7gAI3BiHe0pCIX7qCSiSc9R37c7R88ZuVRL90RjzjMSmh9N63G+iYGLQ93gsX7MM91blJYuCg= 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=LIIaXuhk; arc=none smtp.client-ip=209.85.221.53 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="LIIaXuhk" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-3a51d552de4so450497f8f.0; Thu, 12 Jun 2025 01:38:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717479; x=1750322279; 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=sJzX2R2KfTeXXlJYQHYgRh4q4thsZ383C0wvsVo42i0=; b=LIIaXuhkOd99bSdYMSOtpGYRTOjbbbEMPni6UQ3hMovTV53WF5XnmVnGrSjc2pEXhj EEP79IJAm0Ig8Rn883XAnexR0cP/uyiMyKPhGuudopgmJh73LTMpqvMukYpby+vafoP5 usMrSNecKpmgPTaBVbLd+DZeVWIOHcvBGppad3F8sf/qorhhFee32gqt9lfhMK0A3v72 yFjWSLHdh4+wvpQ3mfDXlefHGGce8Z+hHGo3JWtEqUy71lebHCe50NigwlCoXSC+5NXt 3BCz62ZX+5rhg6AdwDTsaKyXk9rYVCVwscTpM5eSXk8vuL+Wd4ZyG7PVnrvq9stj/iwB sWqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717479; x=1750322279; 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=sJzX2R2KfTeXXlJYQHYgRh4q4thsZ383C0wvsVo42i0=; b=XZJ43FqPKi2R1bi30c6yN9JevRmGvk5FyJEcMAdsj1JcvMF80FNd1wkpC+9DQSEkyp xF9f7g7YtuOpZfOgvNjb2pXsycNGgkA62qmXMGwYyvXUXyEJnqTyNjWiybgCTCOYzOyH 61bDsGGqmIGH4b4Fy58j0TROWmh1F12GaCp8mkS6yJbnMqc0oENlIJD6OcP/Jk7l3mu+ mZBsJkH+wT93ZyRyx2Y+i2odhoPh9MRpBOhWuOoZ87u7SLHFinUi1O2zfRjVj2DbhTy+ CRtLThgk36sAowW8FjEKBluUOqpLWdHgH4/6sh5gTRDocGC2CqHeYukHZBYQ8263BXfu uFTQ== X-Forwarded-Encrypted: i=1; AJvYcCWVD4kCvx8udBA4xL7DXji7f72qaJwkQlKOw2WFklLLCskZH6HLokK+TGCcyeGxlYojgEu0RaXF@vger.kernel.org, AJvYcCWpL19JQlQ54Jczs4KL1RZmxRX7ISdsw9/JL9nOS2nN/aOOT9+YeFY/541IeUeTsxe58fksbRVDv4bpfwg=@vger.kernel.org X-Gm-Message-State: AOJu0YyI9Y3bVznC/DonUz/A0OdfWOlu3YJA6Fdz5JWitDf2TNEM+2/w UgU3yHwo7ad8u0WzJcdMNNdwStJrrHSi6QW/d//8NDzgEF88DTA5QbFJ X-Gm-Gg: ASbGncvUYesalaFlse9HBS+7r3KKUo5yGhzlAw5YlKGoy3BNiRPGaR27GsciJ2PoC0M UsszM+Wc1Ns9Qn9ooZAFAkJGmLbl3dk0udckO5S3h/MbZ+4wntn5egHQ0vULdVYOlPUelK7HWFk dEPiwKCoj6edqVx0dgqoD6N6WqoPrQWSUzgeneJcduWnRRlPxzzaopKqqa+Ir2f8iMFL5cgK56I 0E59wSFKpNNPyXCZX7RlVbWNmH/sUisHNnXJhn/oZxU+PA4T+qpePv743xSFVV7DCL7dh6XmvFC 3ZM4S8PQsEaqv/eVLsrnTwE3ginBJvfR0Rnb3Lwu9hwqFQ+dnJHTz/h90IEbU3nGevxhrHDLqhI 8rt36snyzF28qZZHSDh8LmgoMR5IUKM1n4Ydypdu9dQ1yv0XqXSMJ55qHraL+IEOuVz6MTdmFmE RKDQ== X-Google-Smtp-Source: AGHT+IFAkeuUz2I+r+Oceqeg8mNB5CqTuTR+pyfoY+U4k1Ia4uVVMgO+5yP+6KCEx5KQlcPS4z/Wbg== X-Received: by 2002:a05:6000:4284:b0:3a5:2fe2:c9e1 with SMTP id ffacd0b85a97d-3a56075a5b0mr1888946f8f.30.1749717478914; Thu, 12 Jun 2025 01:37:58 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.37.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:37:57 -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 v3 07/14] net: dsa: b53: prevent SWITCH_CTRL access on BCM5325 Date: Thu, 12 Jun 2025 10:37:40 +0200 Message-Id: <20250612083747.26531-8-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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(-) 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 4bd8edaec867d..b8fe0b24a8341 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 Sat Oct 11 00:29:00 2025 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 696A923026B; Thu, 12 Jun 2025 08:38:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717484; cv=none; b=XqmurZGtKwLZWEqsDiiPhzZp99x1w1h/B4rQjuaGiREFASInNNKb0c9QiwLsZHkaW2NkWWdrNee7GEscw/+C9uNXJT+pxQgKw/trbYqROJ3ZdaWWUaHLoNd6aMDP9VGTYfHSgmn0QpPViBcqjKMDTuWvmhg+51Imt09TNeK+2No= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717484; c=relaxed/simple; bh=6Bv9CtWAluSfTpY1MxunvCcX8hhLpM+5VPzaJCnwbUs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=rrXBN8It28lSNaMdkPv1bWuX7sF8QqOWeKS8u8TZGo7+/7pVrjLHOItc7mfoDsvjLBhpNPHfaixqmr2onYob2iZ1wFAfiQDC7pj61EDYNhXWsLkugl5D81FvlaXnIjo/qp70qLPt6BGfdzczthxFaWEVVFKyMPhqsgBLwgYRJjU= 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=Q+dWj4l0; arc=none smtp.client-ip=209.85.128.54 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="Q+dWj4l0" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-450cb2ddd46so3225675e9.2; Thu, 12 Jun 2025 01:38:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717481; x=1750322281; 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=lVCqFQgBOgpvWr0qP1ve65t/43M5mVqOsj8SRkrVp8A=; b=Q+dWj4l01rsoDvw6y/ItQfYXNOzGTFZgq602sizI46OucEmglwZAi9LOMBb9KADzgc iOUFfTVwuWDN4gHq1NMrswOH2kf3PFOeui+Ro3Sqn2KiBHYcyfE9w8EB+6o6Gvt2yGM+ UyhhSpirfHTWObvYjvqWsANR7EN2396Nyx7D9WMNFfh12Dz6WUSaMWS8pDS5XlvTgrEB n3FWRQKh37obdZxRdqTsvy3wwxZcBzrM609zhASHtTOZyagIW97tPeyB0TfAEoXT+DEl DHGzB+acahuj+oraCR+T5d3lzMSfHbg/BcovWsEWB+kDNrLCF+INkL+mq6ZAJ2AZlhN2 QHRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717481; x=1750322281; 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=lVCqFQgBOgpvWr0qP1ve65t/43M5mVqOsj8SRkrVp8A=; b=bOQUu2ylXA8vQ2Og2+byQTK+a9BMEmxtDzF2WQGQAB/bsNhgw/nSzanAkZ8xO4Bq7Y u3azO5AFv2HEijn6mL640BqweBq7euwbeQXekfDxJnKAmJ3/pDivWMf/LJwNTFq/5MbV M37eEb4HIdY5Tvv1i/SNszfumGNUHzBX6KXnEUoWWSlWGY6n5189YkcV3t3WsZV7X/e8 zX/REha/sDQlomv1feJjJobDjCScS558UUzwM5OrAGyi/HwsWucgYWCyTNqOTHmJ41vs 9iCcrvzdwCcItWj9Oe9VziH9FjC1sKsJlqK00xKEeBI5VOa2sD647oegqEk4Ga3o2H/A TTdA== X-Forwarded-Encrypted: i=1; AJvYcCUfdM+8+xRUf6SiBd5Ql+71algxRJoHRz6TpO92mVR0j6zLHHe0HJikh6e+gfoYEJj85wm2BDSyxzrXb4o=@vger.kernel.org, AJvYcCWb56HUvASBpxx6PgLbLC/MC8jr0WntYxXqtubgN8hNcXOqwBQBJ3Daz3zrgRyAJ6sSL4/4Kuy6@vger.kernel.org X-Gm-Message-State: AOJu0YySEtP1FQ58O5H4NpJm/lsdp3TWRU07Upvmmdpt2h8BTSNE/5eU 7V6AS3oqMrjVffivXbFO6uKA/+ZJ4ebROy578DHERdhtc/8b74F4sVhMXS2aYg== X-Gm-Gg: ASbGncuwJgWPJlNINasAULZw4u0MLsWhr1twXcqApmET6vw8zrF1wmKXZIACAIZLV0r UGe/e62IO62vnXnKTQbrWt7AU9hOdF41kkfTuF2GIUpaMFqDSJbg8/Z2e0k8P4AsVLqQ+qoVci+ R38OpBsxjgZlbK5rkJeK8DhPKX945HN5HNopdXOZ3Q+YlHAcSnoRnCGHTqdjFWxpgy0AZJE8Ztr TDzXvwJPeRoLzcT9+JP3n9YeVhDyCT9GSFBxNTflDzgZdMMGr5hD6IDs5G15W2abYA0vx+fR4sh RAeyaqML3wLJcNYQZ3MPJAFUM+QhIeW4d7dtaKY1n2QRM2a9ReKWpSV32hKyHAm44+DbgUYN284 N1lw6rGDHBuYcleJ+mUgvjm9yM+66OKwgakseN3YeaYC5yJN6dM9e+dPRr8cFN0rCR56MzUlgIM 7FfQ== X-Google-Smtp-Source: AGHT+IGhXKZCerwbTJkbV217nr0v6xUWh3J/DJyXNEfoP5GwfsL0KqyN33WOSLrCj6DvIgAGCxkB8A== X-Received: by 2002:a05:600c:1395:b0:453:cd0:903c with SMTP id 5b1f17b1804b1-4532486b8b0mr63101385e9.2.1749717480301; Thu, 12 Jun 2025 01:38:00 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.37.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:37:59 -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 v3 08/14] net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325 Date: Thu, 12 Jun 2025 10:37:41 +0200 Message-Id: <20250612083747.26531-9-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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") Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 18 +++++++++++------- drivers/net/dsa/b53/b53_regs.h | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) 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 b8fe0b24a8341..f898ec1a842fe 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 1f15332fb2a7c..896684d7f5947 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 Sat Oct 11 00:29:00 2025 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.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 40EA0231A51; Thu, 12 Jun 2025 08:38:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717485; cv=none; b=D0i2v/0WFy8VcZOWsVcrElLjOia2oSEmp6gh0PVEhIMo1/CHhpDq1oUkrOCtmPyhQoqCE3C15LuW/SCrK6QAY0z4iH0YG1SoxW17xpFwK9S5UenvjnK96Ft9U/S49XwikuFLFcGA/svCgdNb4RWP2iFh0I/0xM3obEqf1jVeDtI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717485; c=relaxed/simple; bh=zg+59sq5JrM1iZpeU3fLMf1TIaG4fqrubLIAQkPukLs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=D0CIQ33vK9vjZm9l/ntVdbiAKhqf68zIpVEPp1SxSPatIlU6Wow3RvwaIz64nwQoSPUA29UV7a3OmFyW6Gw38SVIVVWu3X1Ogbfm1e6V7vF3BByTPLluB4P4xAvoir2WI5ivQZwLl4AZypqJolRyDhtimyIIOLmOP0EOYhMNkc8= 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=Zkoi2uAo; arc=none smtp.client-ip=209.85.128.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="Zkoi2uAo" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-450cfb790f7so4996605e9.0; Thu, 12 Jun 2025 01:38:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717482; x=1750322282; 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=omJJLvAMaBfP3FeeT/uE4GuAA6QHfdygJUFvpjEt87w=; b=Zkoi2uAoDHLdG4rlQv/KEFtnMoI73MIGn8UVjNPd5GusNj6XLSz26KuEvQm9XWclOe llcHO/3z/mmGLGmiRpQd6JViG++Ws/ZTtqWaKE+6uvxLLD8YEeZ18LXm1Vxy7StWrhQ7 jE0G/ZtExsDOFnSb+W6r/QMplTbKC0pmZoRq787jlI7AGBOwI84pWDik4Lh05KY4j9B4 XenGibnr4AGQf2Ocdas/1QZOF5qITlJxmpFL+CogzkoCETy4AKsVYPniAMlh8VLFn5FD 3EEDLcCXRju33QahSVY4jYm5FBT5hmavuU5cZsh4OyDMZmp/62Uc5vmwFGGrkQNAgxfw 1Kew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717482; x=1750322282; 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=omJJLvAMaBfP3FeeT/uE4GuAA6QHfdygJUFvpjEt87w=; b=gJd95WtNgfBtQ5t2e9adtGN26COYUdHzWCm0NCnNIf0aFM3XEMR0B2OFBhwIy15VLm BMb93QDnzHjKEQ+CxOwgM27nbVG4C37JXsfgAZfsnTaKEQMQq7R+08YhLDunz7CzDElv OPDT1ojrTFRex308D2gXonLv19baJtFpNauUCuHSbC4GyB0QIdom1VLozIpEtE96hALQ C8URcgFfQOOauP7bLqymczF0aLpTXD3l9gvK9fuBjrW6ITWgjCVUOj7DVfo1iBURt6vu c1myItcsZJC+y2ldurX5j3GCqVeDqv40ryTuY2kuNJIUAfAJggOzz6RNE+wssLFpV9BG HZJg== X-Forwarded-Encrypted: i=1; AJvYcCVXqJTmsutrIs72e5OfcLMTLT/+XtaooUbHqqGY3tslqVgAFY6SZ8B+IsXaPXr4Xr0l/LekqPTBOsco5/8=@vger.kernel.org, AJvYcCWtVjezuz/O+IkIbw+UpGJdMFyhFp2Et4LUkj1H6Ns3bh+iILmuOHj68XssbEFzzxbo1NvtIPBb@vger.kernel.org X-Gm-Message-State: AOJu0YzHPQbaco5qMJ2vjm3I19DrfGdlKKKHl62LeAW1JlchIkYwZeD2 kAhK5aVoe7lLr5HP/7Az/rrAde6aApwK3FYfEsUZH2y7Zz5SdaQRnOHT X-Gm-Gg: ASbGnct6PXEcfs7xiV1pmroIU7+h+eopadC+yafCbkuUuuaMKAJ74nWTynCvhCl005p cqkIfHzgosPs1JdU1PWlHrZPwcApZJkwn1uRpZONcABJns+V6aI7icVH1RZJ9UzXgnkOatixmzf 1Ulv0l6o3ipZ7kvS7OFCiaIju390hlq6GmlY2EwaISdhXk1k8uK+MykyAY6ojPU0VgrKI0J7T+n 2SkcHDzURVTG+3QEBTjPqv7JWp9X4YicIXPPt0HZSabz9rmkCXvkkKbl18/WjqB5GVIJF3A/8yT HxS07m1+o6LExjlj43MbnRludDMtMhGYxNqwata6V6dRi5hvoE8gx72Qn0/U2ooN3vdseZlWsUE FxEEG62TF/wpYH0uwtd1R6Qbr/+x/SnI6kXs+Yprvx22HR0IwiGmlm8KOiEKH3mxzSjc5kt3fQm btgw== X-Google-Smtp-Source: AGHT+IFyBM4TmXlFNWlUaBSvTo8QyAIeMsVmvOe3CPdW+3KliwiDkG3WIklKpdI8FqC6MNU+uMskjw== X-Received: by 2002:a05:600c:818c:b0:441:a715:664a with SMTP id 5b1f17b1804b1-453248c0ad6mr49114335e9.20.1749717482127; Thu, 12 Jun 2025 01:38:02 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.38.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:38:01 -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 v3 09/14] net: dsa: b53: prevent DIS_LEARNING access on BCM5325 Date: Thu, 12 Jun 2025 10:37:42 +0200 Message-Id: <20250612083747.26531-10-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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") Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 f898ec1a842fe..1ecadcd84a283 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); @@ -2247,7 +2250,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 Sat Oct 11 00:29:00 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 6632A235070; Thu, 12 Jun 2025 08:38:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717487; cv=none; b=uFyTfLJhQJLGlUS6cp9f8VM6YCUYEHNGI5tCuZJuTPBnu0L/QSoSiMK8muhjoslE0Rxz1ZQFH7yTiJBqXQgjB1Q8CW36apCm0xRFPbya9UsGCi8Ie81ogYKbZP9JeXTzBLTYosjrPkZfbVkwZN8GGRFrITF0CTV0f4Y1i5CoNNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717487; c=relaxed/simple; bh=NEP3F+vUUicYzuhgzptosUL/Xcq/QFfmF695lGtM0YE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=rgVj6TP3Kknz+gdX1DiJiPOvZloo6NcSnaJQZ9cSQgrYhqlHEGN8FvRGkBWOIfpVBuPRFUinvdvSpSnb2IJg6YDknRAcwINPUDiupbNLUagSy8Oi/a9iz2KBZlT17yTcKWE+fnlv7i30NR3LiB/3WA4NFxlF7+/nBpbgFS1loUQ= 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=D5KluM8k; arc=none smtp.client-ip=209.85.128.53 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="D5KluM8k" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-451e2f0d9c2so5117745e9.1; Thu, 12 Jun 2025 01:38:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717484; x=1750322284; 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=uK6r+2HTB3R8tDuUpgjuCKn/Vgifq8Kb0Spys3/XbcY=; b=D5KluM8kNa/80FNiUFMNg4x+zAOKZnnZXUiw/KkcLazCPQ+7eoNOB5QPx05ezpHsH7 IzWzJykBFE6+wSTggEYwEVLKbFCiqmKYbQ5P/vxN8SIqQHBulm0ccx7k3eZ4p3Jt+uEt H0/8GdYZaFWA+RBjGM0PlnCVIGgrp0q9hFLjV9N2WZ1q1Na6ruygVJKHBo5vzwpE4HUb 5kRFGs8zdkhNXb7hIzTrKktQsvAUNz6tgvr9dmRxVfBGlkNcx2VdqV74+wQ5E0N5Afaf hoJbGYUAlBDORuhUFd3UVdowjATCER+jKzhiI4xAwR1aDYKgNwogfi1wtOBG4eub2mKX pWeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717484; x=1750322284; 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=uK6r+2HTB3R8tDuUpgjuCKn/Vgifq8Kb0Spys3/XbcY=; b=iyU5Mav3zPKZqBF/8JPOQ4YaWPeNtQUcYGm1iOHnFYiIHBEeKqAVL43jYxvkVIyq2i cS7WEOq4Mkaop/arRiL5zFspSEqeCw3nkHbs8GPc0W9dKNd6WJSxlzhH+6PO7aIZpnnO Lc2OTrBtyIxzDMc3Ik9D6DUgyUAwJ2E9uuDXcnmllO0vgb+LnmEyKCGOw9EXHh1jvDlN 3vEbzGwi8KwVa42O4n9LhbkAssas+2eM1cL9wLuGcBVVMrhcSwRs87rd+8mjSnIyPWb9 UsmH4OfRESLboYxL6hXRzWq/U2nzMBc2hkowKjJQacoA2uSxiz6qDk7eCXmfrHggUc/c Gd9A== X-Forwarded-Encrypted: i=1; AJvYcCUKco+6deeHsvnXnsjCC5SgBXyCKrGHmQG0uuQcC0lSBUnUzXVa6L6xvEd6VR5IqNg/CglsWA+j@vger.kernel.org, AJvYcCXH/2sOM8HourOnrVEf7Rr7QS1I9Qs5XGgq2zsKnqEbF8tipMDcR8xqQqNvOIHIC67PEb7tM6eN4EMaV8I=@vger.kernel.org X-Gm-Message-State: AOJu0YwHq6HDA5jVQAJgPbZC1oFDjuVgFfsPkFD5cYHstgXA8BSKwoa7 4EpVfHnvBsUexj73elrLKPIY0SqMgmhO2MxvtpEuFU5WC0FyWT6Qqmyg1NCt2Q== X-Gm-Gg: ASbGncs10XmWKueRuaz0CClnri/ZLWweJGpxPA69fuOVff6qVODJcCh5mb5g58HuKGm E72ZLLdUilJ4kvYGsKEt4BUXfvSS5xoOmQa+KoXQdNGtWDNt+s+jK7koNOaqY+W6nRqSHWc5oBS OgGxl8fs/va+TWhKIybKRweKe5RBv4zD4D+ZOmOD6OAvMMsizMj4XxMFdiZ8xqC37wthWsmXsSA B+RnCYQSVJZn0LK4vjx6GWz1bOvf7Xaur3Mpdy3rl7may2MnMLSbODlkT0LOVPTvkvj+Lr518Yb Ay0brJUd0Q+x89FF3TuJqiOuQFnhuwdocFAy3uDrVYjhWMQdmTCao5EaTHYPcHT7B3LHEW3O77i V7rntlKqBsjtgkgnwKyG0LtVRGHhVobTM4gSdmaHAe9T7bUe1qDdZmXWKW38LBGxCkaxMiOIuVL iwMTV2tInrj1Rx X-Google-Smtp-Source: AGHT+IErjM0t458OqBkklX7FTLPrnKm2zIjciup6Ea4jkaCN5vkL/tJViAszKZpnogVrBkE/FLYYgw== X-Received: by 2002:a05:600c:630f:b0:450:c9e3:91fe with SMTP id 5b1f17b1804b1-4532c183f9bmr22774285e9.0.1749717483529; Thu, 12 Jun 2025 01:38:03 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.38.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:38:02 -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 v3 10/14] net: dsa: b53: prevent BRCM_HDR access on older devices Date: Thu, 12 Jun 2025 10:37:43 +0200 Message-Id: <20250612083747.26531-11-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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(+) 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 1ecadcd84a283..d082e5a851ab5 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 Sat Oct 11 00:29:00 2025 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.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 D7484221FCA; Thu, 12 Jun 2025 08:38:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717488; cv=none; b=btShEj8lOV/KbfAjTGW3wlA41lNvEYwtrFcvFZ1jzYGkbkGi82IKySbLtxxwInBD9kmygEaavuGSido41X25pK85F4/Td5nYYBaVpbHPq3zjKUkbIMP+1bRBa11fIok9dyuzBEZ/xPYy5539iu/RBRawWIIi4HIw2mNduviyvZ4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717488; c=relaxed/simple; bh=+7VQIdXcx79FWgJguV3+lys0EfRmIKvgxhqfFabs2RQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=fSvzkqEqN/WJZe+IkKpJ8K3FVa/CgyZ74kaTp0WO7XzGNYq5KqzcPkey3OSA74FlWNjmPGMCt0LBUBw5jhN2aQg3yHSoeCmZd2soLa//6LCZ40+H5m+wZt+EeVVtIuRlEdLndLSk48aeewdO9e2OUb5lM7prV5j9UKAE1SKrvjo= 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=ixgh9naE; arc=none smtp.client-ip=209.85.221.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="ixgh9naE" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-3a5257748e1so515099f8f.2; Thu, 12 Jun 2025 01:38:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717485; x=1750322285; 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=HVkM4QRo1KHkxhSmC2rIaxb0hoCWldCV9txteEDW3iw=; b=ixgh9naEaj67ujSrtb/irBK+lmqGteCKuOK/LpLZ5l0uLxVb3vxCjehC/orEkEyMmn RxhgxWMrk9gUJsqitLSzSHoo8m8pFnw7rzzf4oKGTPDYg+4b/cK6f39pWUBIMAATbBrm b/V6KsC1KOOU+eLv1/w9J7rUSg0LtctQ/JrIkDYod1q7M7jC87UcigxZYVBeTg6svA1x QVZETn2oD1HOojr0P/L/R+xWD+wT1yR2sXJN9tznPcFxb+BkAPOzwpwRp+BDF4Rvm7BD xUxtUB/aTIe7qX4xvk+688e3FfrFuvP4D0H2afNMTnzSgOa2WjHleCkkLFWIsQGj1g32 16jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717485; x=1750322285; 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=HVkM4QRo1KHkxhSmC2rIaxb0hoCWldCV9txteEDW3iw=; b=qQ3Sz/rW1wnv4pXgH8Z5fjk5xjFwh+ZZDNoXou4gGmPYmOMSaMQKbVM9qszTnZGZlM utCwcT6U7KRdp0m5BIbOd1RjYFxPYcTynyHSt8YoquLZZduKr2xG2e/XSLWQam+y0j/Q HLEggUhwSsb0iDzD4HFCJpV6nIIq6E2iEiFbWssifgL3ecY0mkAYs79M8EDmuCcftuf3 Eybv04n+Lef2Mi5uFMsglIob6Oc+Xmw4QVhNF4Hk5Da82I2Bf7IBnHHIaM8B68AIRjIO Qe1WQqUomp5tBDgX/YQzynifqO9rhW1ymHdg5WWxPpXzbJpwppYWZUHw873nQWO3TKss zJVg== X-Forwarded-Encrypted: i=1; AJvYcCUOddkLK5RWPaQpSgBdeEwieNBv33rt6j5QuJYJ8gSiwVFZts0CfifQ8lw4Tnj/nBh5oS11UsQM@vger.kernel.org, AJvYcCVDFWhQmRoHs5tw7DYFMpIMZemnqMY2U8bTWynWd7dLHYmoAI2DkTtphoZO0nrQUB/Mx9nAEt4Re8cO49c=@vger.kernel.org X-Gm-Message-State: AOJu0YxFhUBhYoJlgHl7CpYBcBSo78PDKOGtIgIsnYegHaXLQd2jXPxW bQ0G05Ow6h8HeM4Q2pabXY+qE1xTAM230cyS34Nt0GtMdLkwjDnCN/uy X-Gm-Gg: ASbGncsTw/TLbW30Q1VV4l6tSx+gfDTQvC7TQl26hh9C8QqKifGqteiUju2oYn+NzmH 00xVNcgzfNJRzRGiUtHlfSWZ9oIbxoNDYUmW5cNTmDpjCgUE74Byj19v8IFYKAa/1dVxE5OzNru a+FQXy0GCHrfD+b/ZAZURU6agBCyybbGt7L52rnZxPG7YyR8z0+4XT6mCxScwsAMOnJwIoXkEjq jjh/uQe8HIUOZoST4peEbI2oO6y1AgyBbKdRD4S0musaoGH5G9zKjX92m0CJoPxHtLb2QEoX26i VPPalAMjDlC/foEKvVdUJm1AijdFr19Sc+CPQEhuhdkTHYM1Icqnz+Sz+exqZ3irKHkqODWdD6P DrUVSOfnSsaYdU/saj4OjlxwykJ2EbNoKvCjFIWXIS4VLr+pWaIhC4t+zf5HrkC5f9VQh7/NQle heHw== X-Google-Smtp-Source: AGHT+IHUKb+2p1EBinulFJLR/9fVwt+I/wVUkwi/EJa79TifWfb1AA/4y807zJF+ciuz+uFC+xcesw== X-Received: by 2002:a05:6000:250e:b0:3a4:eda1:6c39 with SMTP id ffacd0b85a97d-3a561308a8emr1635886f8f.13.1749717485061; Thu, 12 Jun 2025 01:38:05 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.38.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:38: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 v3 11/14] net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on BCM5325 Date: Thu, 12 Jun 2025 10:37:44 +0200 Message-Id: <20250612083747.26531-12-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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(-) 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 d082e5a851ab5..74e3b6bd798e0 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 896684d7f5947..ab15f36a135a8 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 Sat Oct 11 00:29:00 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 C6A5923AE7C; Thu, 12 Jun 2025 08:38:08 +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=1749717490; cv=none; b=JP/5mdGikdxBfUrbkYGWIoiRmZdonfkh8xuKUmfxNZf/GLIbU36Gb8oFE3HgxfCBv6mjR1TAXT907fE44maypwywCACi/05d7E2GWb66hwOIwC6jFZBOx3U+jAVaqJis/is6qrEwBj3Q2RQpXR+EbdA01sTfuwVWGo8oMOJ8x4w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717490; c=relaxed/simple; bh=dfvvOJtgmo7uVHROv+tK7uPwhE4O3p+WvW10g1VWRK4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=D+Ooo8zqcgMKmjGr8p+tw48KE1vbESRsZJFUx21WvmbttOQrK8hY6H1Tr3eI/KVn+oxTzOOIYR4ZRShh/Y5XDDlfIojlWkJLN86mcbI8mmjurz0GeefQoCGlLOtjTm2T7QIhHclUEGjtFnybvmZlmVZ0OZ48QIo9ccBk7EyLyz8= 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=Y4Az5nf+; 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="Y4Az5nf+" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-450cf0120cdso5447995e9.2; Thu, 12 Jun 2025 01:38:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717487; x=1750322287; 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=rdmV9T8PMH27bsi/E/KTDvhysrg64/shEp9442bFwW0=; b=Y4Az5nf+OOApthkNxa1Ux611pAhwmZobrSCKPpJTRsWFQekTZh6TnxYyBtunkmMQd+ /e6fotfDdcO1UxfcPcbr98f7XDsskuwJInNkVOdqAq0MvKh7icyuBWEYPRRq+3+QN/Xi HLo2HSUktj6kfioimBNJV9jq8rdo7SXJaNELd4aolmj5mKM8qtMzWq9euOq/BnPPadvx j4YC1zjJr4rOXINKq3YyfAI47nruuGEjoKybYTqFEy0Q1f5jT0ziHhByVsHi+nbEWmVT upWrpggYbvqLpwy1ETtWIzbzAqgihjIwPwd7LBAYDEExRV/MWB8E/5AH0pbE0gZ2KIFH zY7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717487; x=1750322287; 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=rdmV9T8PMH27bsi/E/KTDvhysrg64/shEp9442bFwW0=; b=qJknjNaXTf5ZPJARAmFjNt8PLb8Hp6ukR+37KAPbAPlaky1mkvHTuVH6Oe2mHJ1TqC c2Zr4z7PIQiuy2GmqIgRmnhArM5skxIzgkopljvYpDMXmBKcZNLqUrWeruJgWnAzyZtS eeG3bUI6rKQxc/tUT2kHDtrAdtW2wuKV6GFaIWznTyhgXJ/5615l3alrmAZ7VClQyB5i fd47FgbIH9POXEuxGb019LOSLTlB+JH6PkU9DjWoagk55QWBWoX/67UvzL07S1a1D+nJ 4+UO3IZ2s0xFVuZ8GFQvamiLxP6UiyCQBKShkca0v5KrIec9BTyifJRqgL4KkjD3Tmo6 +pSg== X-Forwarded-Encrypted: i=1; AJvYcCU5UdblgduOhbpxrJJ0rHyjKqBlVk5rg5r9nGjA83JxUOJDUXCTulvAOCfNGKzscQ0db+xsDct3@vger.kernel.org, AJvYcCUjcpqAFHCjUBfdZLj1OLXUN+hbwVYxxZSKu74SuJii0Qy3/xGp2jfQkvF7yCm5QSnOVzBCLwV0cSa+k/c=@vger.kernel.org X-Gm-Message-State: AOJu0Yygj6F8vbwz+HTxvYTPCS3hywkhwEBR7gxu0V7tyjIe6TuPessd cUUfQ4nZRixsFyLMCwd3K9V/WuleqfdPmVttDhqSojw43lLH0R0Zeo1L X-Gm-Gg: ASbGncveRWi1fYyGMILyNs6SmXi7vGhBV0JDUWw8uF5Ley9goePiN3nQ4AvYkIZkjj2 wO9ubsFQD2PzJaV9z/sRy92/NwKuoGMZp+V+BY01/Xx2s0kF05N3RBRFIWtze4xRa/0IFzWt/kY 1OVrIrR80yM1yXD/px9xn6VDxF1uokMuj1ijotRiOlQQc/r3Hhbn1yXXm6GzFuywQb2HS1Swx05 YPwuW7ykeX8Ao+vyHN7raWT8mFKvNt6ZQlNymZBrlX85DvqWCsWOF4gPjP2C4G+Bai7yrLk0J4A G0U1nz37UZERCWOB0kPYqJ4Y7Liuk6HF96Dzt01Qe4xC8QbFyQebw440k2uM/6SqPofpT3vEGe2 e8ehGb4GazmHBDpO6Mzhz2KORAKE963TXDcDZxInK8D3elsVPErCU8hUGRoZ93UaypwwTYIXaKQ svSA== X-Google-Smtp-Source: AGHT+IGiaUi9uqAkArO1sEbgmkI2ft1r/OgtCQWyexyGjTIm7faJ3qKYSvusS/ZBGaUPR0OBnvrCdg== X-Received: by 2002:a05:600c:358b:b0:43d:ac5:11e8 with SMTP id 5b1f17b1804b1-4532d33d8ebmr18019515e9.21.1749717486906; Thu, 12 Jun 2025 01:38:06 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.38.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:38: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 v3 12/14] net: dsa: b53: fix unicast/multicast flooding on BCM5325 Date: Thu, 12 Jun 2025 10:37:45 +0200 Message-Id: <20250612083747.26531-13-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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(-) 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 74e3b6bd798e0..409336d380bcf 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 ab15f36a135a8..d6849cf6b0a3a 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 Sat Oct 11 00:29:00 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 893F923C50A; Thu, 12 Jun 2025 08:38:10 +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=1749717492; cv=none; b=GdUkrj8h3poYwU8xQyMnSRgbvoevsy927NMT9pmbkZ4UXbJQxg8dDZ4roOngyudx87D6Us0jdFDLnI9cmNI0uhFlpZ39aRLlSv7HS+tywENnOZ/c0PCDZ2ECDVhBd9zQbvn6YFQNPweST3rkXH7F/GAbbAiT6ynfrKTzgV43+V8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717492; c=relaxed/simple; bh=Oc3K9Qj3j07VPt1MMG6hbezjf1/0Bckv/wKKw681Bf4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=nASO6PkGrYoZ6wi730lT9W0K3NRbRuQhSw7aOFc8QynEJYTU6OJTTfbuaDNhSxIcLzHeKNe5nuV1vmwFx5KYh5pmnrwvOh4MEXTS9KegiTU0bPo5EqGTopSonD4Xc4KD4pcXHG7seJHmvgJr3SCEwMRtyVVCFIUrclpJWuisal4= 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=h2SABpia; 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="h2SABpia" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-43cfe63c592so7514445e9.2; Thu, 12 Jun 2025 01:38:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717489; x=1750322289; 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=QUsIyz0LM6FC1UIezR6DWbKPfstHdTwXyFgsLht6qok=; b=h2SABpia88XzHjVJCCP0cu9ZD5wGy2A0PkaMZKBl6PA86Rubx0GyjJyyr2N0EGKjsg Fq+Qa0TN7BHUFDELjH9rIBwfVtXKqTG91USD2eQfTLn2WSZf+vGZWjG8NKYBz35+PbSy Cd6x/q/vtZppefZpr1B783h6R8Wj96ERtQPzYovB9kjD4v3vOrGCa5H88TD42tOjbBfC CWeb4okKmRlt8vaGjzhtjr0qK3quYuxRW8GjQvs2HpXjcbPvgT0OZRb8LaB/lTxClwnC k6sQimk5VAW6mlFaQ2opMJA7ywcyBvN+e+HK5Q81/t2sJXMExft8sDN1cHvExnmvIE82 3mAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717489; x=1750322289; 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=QUsIyz0LM6FC1UIezR6DWbKPfstHdTwXyFgsLht6qok=; b=jajVMLTxxpu9ZO4TSJesqvJiysgGGEvpIjBZ/axtyE0Vo3oCoko9mSMfqc5lbjorW1 N0RzVqJgGc/Jjtkupbs7b2pGhS3IN2tA1bp61ARxjaWLzKMDR8D6J5WArvAgnUvR2PgM 6e7McPIjNkzFLVf1x9vd9kqZ84uEKFDBFPV90FzCk2aKWz1rGjByI0UDZ2CwDSHqC12h YG3cNvh4+fd0EOGcjoRCgaJR2ZYxoC7DfXjSJc9mAEdeSiqfwiqv6XCmA841pfPlRCQi 2iV0BUKarBwrfgTtHoobkcjudQQ8VGXtYY2x6rQ+ht9qeI0DErYwpCCnC7q1Ys9ipLQR rjfA== X-Forwarded-Encrypted: i=1; AJvYcCVkFNP92mj1u+agG49wrRTwnSXayy7JkyvWp9luzkTOu3lENh7MvuPoodTf0+bxrErLB/9DIJFTL/6FFJE=@vger.kernel.org, AJvYcCXle+0IsX0sss8XJt5F2gPzI9WWVtY+ysrhVRkUjY1hNSyvVE6che4Bl0CF4yG9GJtO1HfMyjxF@vger.kernel.org X-Gm-Message-State: AOJu0Ywxq4eav8KGEkKdI2O/ft6z+fFECsv2cLNpXhvVsZkM+ThW5Aiv 2ZUyrnQa44o34UH5/G6Td+ISDgvASVBpdilIbJHYfsyyQX+MiL6if+66 X-Gm-Gg: ASbGnctfL68PpcfZhvphLxFMM0FPf0HE4oPJXW9aWMtGGh80IQoQRS+6W6V+56Lr4nD HnxvLTFY89H8BHQyTp7aV+rgilU6PvxVWme5jvIHhzfgjnOxQmPMuO/XnoF58iCON3POPXa7RUG 3enoRzIH7bNn9KP2EeWMMOr3pr+tmpL3yG7NdpEdjhT/F3cFIfwobYcJvvGMDwDlJD43wjTc+KD J52Ob6Ia+MoVGsZyuOz/Pnr5P7QEl2MiLSNk0l6CXyg1cQ8+29lhR/N/4ul7u0cY27I4f+DLhLI iqi8rSlrX17oA57sKl9lcaET6Q1xQE451vM+K4Far+XYnq59btixFO4dJvi4S+f1xFwedwn3cGi 3sTdm5EpyLeoQRMfqussxMDQzMgUfstBWiehKwuDA/k1BW0MokVc5QNyja7kOCCrf/q/x+K/SAs P/lw== X-Google-Smtp-Source: AGHT+IFNp58Cc7Q11rPQcj5sMp9yXP/vONjBIqfnlEC9zjGjdel/UlozNPzGqMkNeI7nxEo4qpqg0Q== X-Received: by 2002:a05:600c:c8a:b0:442:f4a3:9338 with SMTP id 5b1f17b1804b1-4532d2fa8a1mr18472735e9.21.1749717488604; Thu, 12 Jun 2025 01:38:08 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.38.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:38: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 v3 13/14] net: dsa: b53: fix b53_imp_vlan_setup for BCM5325 Date: Thu, 12 Jun 2025 10:37:46 +0200 Message-Id: <20250612083747.26531-14-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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") Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 4 ++++ 1 file changed, 4 insertions(+) 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 409336d380bcf..3503f363e2419 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 Sat Oct 11 00:29:00 2025 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.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 1D2B923D29A; Thu, 12 Jun 2025 08:38:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717493; cv=none; b=rN9xF7JQw60CBnBcTddkda4yswIdieEsx6bSqz8JFSk+31E6wjh1a6XbFKojaUEOAtVc4AZ/Qli9Xhcdr0AZR/gJ/j0VIvvCdnPYypYf5iYBxyDSIF0d/Blvzvu0ttfDC8QiM/I0o+cINdT+Nab+V+93j1msdzO6PpSzk77MQvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749717493; c=relaxed/simple; bh=kpj3AK5rs+N9TYEtbGrRUGGXrqhAbf8sJlWbuq0dU0Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=Gcj5GHn+CdJRObesuqcgmIcU/wLKRMMrr4tCdqpMqXUyYxnJLdJiJjhOXhPbGAm/mxMSCUuYGmsuO6vsH783CojDrIfMsbzjWsa44C++06QZi9MSIT6ncTnWjY5q5yYCDLyOhDXJi5I/Er+yz0+ZtGk9aKf441TUGSUHpkNVYGg= 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=W/FmAibw; arc=none smtp.client-ip=209.85.221.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="W/FmAibw" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-3a4f72cba73so1291035f8f.1; Thu, 12 Jun 2025 01:38:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749717490; x=1750322290; 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=kjf4q87bTB3LUgZ001uanVcydc8/XjXZX0ocWOFGfQQ=; b=W/FmAibwUbSq32whkUEUN7TuWI1Cw8O711oS+XiYLhdTDq2oK5nperBetIIGyLLopr O18Q6Av0Mg0KyePYp4WSMm508fCHB9uQGfmA2jyp7KBelAwP/9YYeYQBqKQgczhws3Nh ueFpzPwMKd7YeIDVonsdBcSHKR/cw8B16+A/b8vMX7uVrawJoVtniJXmFSX+Q3FNxyeN lZEMsJXORFlE2Dg/hEntoRxJeYPoS3PO0xEzdg/k4zFfZxJx+V1iV+dX9xBaNzwD56gM v2I5wMAwnIhoV29Sn9qlgZGoj7xDkYJv+VgfxLAYZi0TorlyWHzj6iqTrTIKTcElF9rO +nKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749717490; x=1750322290; 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=kjf4q87bTB3LUgZ001uanVcydc8/XjXZX0ocWOFGfQQ=; b=AZXAS1qfpP5n3q2/unKv3lwcuJzOUhddG4DjdGGN9GBTGqNeSqFNuKJCf8twK69Alw +NRsKiN9DuFgQJcMkymUGvOsceEkd1ItkVudNoS7Qab0GEQUJkkGAN1sFPWNi/rAWFGC B32zk58O1QRuobrI/8Mo0CQ9ybVI6rFfyt6HZnPj0ZFMGafKUahpVSGGrMv0mfy5mGUA bac71TTIrhbwkaOgoHHUF6XdWeYv4uaYad9nfhJZYlCuc0fcmYg4hm8HIKLTYFf2B2g2 kzkqSqFiLv/Kwq/MqynQJzXxB6ulDV9LtgBYk41BXizs3+yGdHUbnK9LpEbMgbxWZ/ds asMQ== X-Forwarded-Encrypted: i=1; AJvYcCUEePwg2q6zbVUZF9z5qvR7AA20r7Dhy7UdDB67e/csuECAHKGrb7zWq0gCuifMFbWsSYfsuapuzkpKImk=@vger.kernel.org, AJvYcCVCzy9M59JIOz/5mySOsZec+rdwlDFGH3sosaI2umvNx8UqjzXEglI5VZNngb1e8Ey8gBjVS6MR@vger.kernel.org X-Gm-Message-State: AOJu0Yy4s5iQBrLYgvnF+viMiptYafIKECi/W51VZLX56kV6lF9n0y1O tq4539cqNoYIf8Rr0wA+6skp7fOp3THNbNAA7xWYTFZF+I4bc9lSRxDx X-Gm-Gg: ASbGnctMyojWDofCkCtQIRh4rwLcRn3n7N/rawLBMdFAxNxQHmBaIo4hQWRJHDsfsa5 yD0ddqk8qPx0KBZGg4cLzWZBNndfzKyxJRC9RX3G+8EphmugbkaMDtVHGPxhfdZU6ZSQSxjuhna VCk6qTGiAWBWJM0VTKqobYRbc4AIrkbeKbmf3u4crBGSfrCwf1XMfzzOEl8x3ac5zH2fp5LeI2b 0aQU7gTjcByI4uR1zKoUxOSP+V21aFFBuzLfMb3di7pw41tjanZbTACHs6bgMpFoJpWp8fWzx3T OCfuLt8LmA1xgfyN+GlSM+eiFiGqowMr8kX05ri3miqMU8lgVFaUVDbIOATVOYJcSZmqlYlb8Of 9Milf4bpYz3vQAYmD4TR33HeLRUxBsgnn+e6+PbqExOOubud/efbwJR1u1sWhJWeraxG6uyGNw0 XiyA== X-Google-Smtp-Source: AGHT+IGSTzOzf0ROryRS3ep5kgJSyB0a008xyqqyJ+bk19UPTMzotMcnP5PdEEqK6qqQJ6Wg07DMdQ== X-Received: by 2002:a05:6000:240d:b0:3a4:d685:3de7 with SMTP id ffacd0b85a97d-3a560778f99mr2248674f8f.8.1749717490349; Thu, 12 Jun 2025 01:38:10 -0700 (PDT) Received: from slimbook.localdomain (2a02-9142-4580-1900-0000-0000-0000-0011.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1900::11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4532e224956sm13350975e9.4.2025.06.12.01.38.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Jun 2025 01:38:09 -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 v3 14/14] net: dsa: b53: ensure BCM5325 PHYs are enabled Date: Thu, 12 Jun 2025 10:37:47 +0200 Message-Id: <20250612083747.26531-15-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250612083747.26531-1-noltari@gmail.com> References: <20250612083747.26531-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 | 12 ++++++++++++ drivers/net/dsa/b53/b53_regs.h | 2 ++ 2 files changed, 14 insertions(+) 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 3503f363e2419..eac40e95c8c53 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -660,6 +660,18 @@ 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, B53_PD_MODE_PORT_MIN, B53_PD_MODE_PORT_MAX)) { + u8 reg; + + b53_read8(dev, B53_CTRL_PAGE, B53_PD_MODE_CTRL_25, ®); + if (dsa_is_unused_port(ds, port)) + reg |=3D BIT(port); + else + reg &=3D ~BIT(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 d6849cf6b0a3a..880c67130a9fc 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -105,6 +105,8 @@ =20 /* Power-down mode control */ #define B53_PD_MODE_CTRL_25 0x0f +#define B53_PD_MODE_PORT_MIN 1 +#define B53_PD_MODE_PORT_MAX 4 =20 /* IP Multicast control (8 bit) */ #define B53_IP_MULTICAST_CTRL 0x21 --=20 2.39.5