From nobody Sat Feb 7 11:12:54 2026 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 49124221D92; Tue, 3 Jun 2025 20:49:07 +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=1748983749; cv=none; b=SWz1PzqhoO0YtAAXP4FMltORhCdF1+F9qAco8iDE19PJfXiFDVYH82DS/eWR8ehkQCDUyT5QCtd25vk0D7WO6cz+3rgtE5bcW2c9IQ8tBh4xfzCMvhkS4ks4+OhBc9BfyYgLqEzFWb7s4jUbxKVXxmIdhSH8XEJOGS0tIMr29s8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983749; c=relaxed/simple; bh=z8dWJaKSmBcpaNxvbQJBeyBiVJ30AUubz+jlLPX685c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=mKZs/HWNWSeX9QieqVdsQ1P4pA61UsEvokL8IIB2TArTNz5H1485dx9XDRpN1pkLuzscRgLY5Kj+9U4UIHriMKhME8WHeTeDHZWRNhDr9+OI+jEZQXYzVh2S/4CfGQCRSj4RRx7mWy691Rddox7wAVlrXNckDTM82kMjvDrIHjw= 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=YF1VMVRk; 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="YF1VMVRk" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-451ebd3d149so8273355e9.2; Tue, 03 Jun 2025 13:49:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983746; x=1749588546; 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=1y5MonuZ51OuFIGrTHJyuvp7/2bU9PzjiD+ht/MTKec=; b=YF1VMVRkpPORV/Ssry9+IBMSSqn8NAjRFl/eMbUbhggYL1cuByZZd9iFjwfwg276h3 grBDPYv38Sf/eJUjwOwVRCKm+4aEK5I8PvzitPWjqRw9mXW7pBjuFb4f97/Mcf2XCH1H Kfh+AZTFn4FvdBtlRRnmtD460dQvMPuvWaaOG8J3ZirU9l/p//FzX15WbgeW53a3f43w UeDS8w0gP5Af0YkvKbnBEreEXCoDGlnQrhNnIlM0zMAUyUL9/T0xRuhR6WAfbJviZ6qN XFb4CwakQDDRUvJ7ccV7rDK5IUZlyKs/MI8EGletutWu7lFgsL5nlEEtZYSWLxh+KjEv DtKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983746; x=1749588546; 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=1y5MonuZ51OuFIGrTHJyuvp7/2bU9PzjiD+ht/MTKec=; b=U/4SPReTchIlDmI7PE68hMF+57otZcwVof0x312hAWZCv9flZcScWeLInPJF47Qqzx 4LCi/0NUJQQvoOWgFRp26N6Hedv+VhVoclxy7Pmxtp7iSaF79+BZrmn3TySTafKTCzG+ MxG2t07P1dqcK8cCS5F8/0D6HoE0fqas7uJ/AbUxIiP4d7nLiuwzjkYGjkxKe8N73NY2 dW6tyUn7hZzr/BctmKmZngubgY5izWlYfu/1XnLJ84Ym8w938bllRlzTXbbEkJchc4jL thf3JAVyy9HrNAvGYnelTdrvsAuy2J074FS/U8Pf92sN5uqtX1OUcI2n9j2HlOed8Oqm ye7w== X-Forwarded-Encrypted: i=1; AJvYcCUmkcMR4EOBNITBMt3++bwMzhcWxKLiLH4OszkFo28z4FmOX3FipOEx8AD/JzniP8Rg0TmEtTFvx8DQopY=@vger.kernel.org, AJvYcCWthRF5EUKiDO/zlKtrWzoYEQjglGuxl36BAafHI73KvgiD8xka85Zy+lvielZWL6nQVZ3c+Xfq@vger.kernel.org X-Gm-Message-State: AOJu0YyWndC/BMpOJxFrsjWt/fxoRSI99kafjEtt2gft3vQ64Kwbo+0m puxMKJOWfMHVDzT/5cdCOzerUjwnanYUs119CS25O/gx60RL9O3JZajP X-Gm-Gg: ASbGncuLfuYf4a9g3+lupf27nKEE5OA2KWtnhAaLJqWESZhZtL8rkNeU+gbp+mxp+WK 1ptLfjQquVUTO1pp1ZQAvv7pMujPj4AanHgWNK6j0Zvkeia6czLX0ueT2VtmyvdQy7CWLRsMVJn mUGaeRKo0RQpbjRkIfwPMZctPql2TOuEkry8AAQ7LikfxLIZFGBUCMpBSfrt36b7jQNhILYtpUb PQPNn/ueyhiFC1jGH6hk7m900SnMLiiACWv20spEPkJlrQVsQMUSBlGnzqSDedb9ruznNNuQ++/ tV8U/e6s2hYiGdBwY4+WSStJqg5nm/gw4ZYCr110sv6KZ5nCD/Ufx4DDtuoTPeOQ6hyEPHpqOnJ CkeVcOrdlVNKE2ujxIgoXGLflpFzuj0Bu+bHT3OWIHBTSwa48GZDJngbTl+Ew2DE= X-Google-Smtp-Source: AGHT+IGrWxT5A3PsP//vwc14wFJqopVqwUyYm9UoQnhfQvbZhwnvjIvgU5FSDz1QlHtUDDcHMu8NMQ== X-Received: by 2002:a05:600c:8719:b0:43c:f050:fed3 with SMTP id 5b1f17b1804b1-451f0a72fd7mr1299325e9.11.1748983745278; Tue, 03 Jun 2025 13:49:05 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49: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, 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: [RFC PATCH net-next v2 01/10] net: dsa: b53: add support for FDB operations on 5325/5365 Date: Tue, 3 Jun 2025 22:48:49 +0200 Message-Id: <20250603204858.72402-2-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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(-) 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 132683ed3abe6..feea531732c7b 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1781,6 +1781,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) { @@ -1795,14 +1834,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 (!is5325(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) @@ -1846,12 +1889,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); } @@ -1863,12 +1911,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); @@ -1895,10 +1937,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 @@ -1915,13 +1962,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, @@ -1942,14 +2000,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 a5ef7071ba07b..2238eef2a8771 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -298,6 +298,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) { @@ -312,6 +325,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 Feb 7 11:12:54 2026 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 56A41221F31; Tue, 3 Jun 2025 20:49: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=1748983750; cv=none; b=XufwDOieye2scnX1XcO7EXgY/RYIMqnB25uU5vz+pvz1lCcs3s5MlthhordKW4fh0k+gfxd+ldRu/q176YP60HMAKdxH+9fgwaU0qh0rRu2lYu1ko2+oJvWFr3jSGfBXikh5tXWo94arJbPL6/3fsWtYaoxBM/J4hmAi3P42MWg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983750; c=relaxed/simple; bh=bLdRTIaXhaS74UWomOCqZxJGucm8brlKdCwRnDtbXt8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=P2wOQVrruq/LvLDBKnXYySHIPSbdYWd2t6aaG3noxJygdj86bh5nXikxiEitXqKpepXIKtggNqORhDoAo3VfpeXll3N3XnSv3xjtoP08IosYxyFt7qwW67cOY2Ih4aN2MySHerqtEQNGtI4mOeeygsq2hcYzCbrn4Has0hFuKoo= 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=M2+53Fn9; 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="M2+53Fn9" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-441ab63a415so67346415e9.3; Tue, 03 Jun 2025 13:49:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983746; x=1749588546; 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=6veEb/KWAhbZcVIjM6zW31T3gcz+Ugy3LtpGhiCo/hE=; b=M2+53Fn9jLcEcy77o0TYOvLWslNCswYF+94+sDdlTuYz+0wzoo0N//yFF7bWoH0tAx z25f2so57I3l/RRx1/U1xlhvRmKh6Rzs9T+krvTSmtHBMmQvTjj9/nCPveQDDgqJwDVM nIcT/vrmbNbDuIiOjJRRL9W0w94LrAMkom4A6IiH+37spjqAMOTP1ai+R06XQ8c8GDeD bncxvH96+WEw0tRdfFbpIhF1cemK/FLmt3iyCutU2w50Y2ORhlXuR9/3PHhexAU6oMYW lgwohDA1Q0atWMu9zn55gOJ6ANen2TpczebffSKSBGZMiEUHGVxQiYjq4khEhNagSwO2 Z+Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983746; x=1749588546; 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=6veEb/KWAhbZcVIjM6zW31T3gcz+Ugy3LtpGhiCo/hE=; b=Wn5KoaW4BBtvBfQXAt5Kn4zity3ioNR0apVPFZuFUl6g+Knrl3hPasgtT/Msfi65D1 SUGTF+e2af6cNeCCdmAbu7nAgZt0Mx5KyDkGBUxYAmILRCKt/bQ8o9vJfWmJ4ArP6yid jT1N/WbUUGifZIx4/NZaR36ykd0LsRX7z8H+DMqzkUUkf2b4UXcr/uB39qhR1tvfjrDo J2YSh32SbG7zVDLncNMWrcevsvCJHuEXScDgRGRtWKshxm7WB0s+vxMSTguDkcslzxOE UNCSDrV4hScRlp6cLVK3UcZXJqWV8pNiL7By+gnBn8J054VmIE+OtFOGDSJ1cg6Bp12L Einw== X-Forwarded-Encrypted: i=1; AJvYcCVfmmHHtAZOQ8KIUQyRZtMvE4sNCnrT6y9n2W2rSrgNI3yNy4OXodsl/vyTV9JYnnYjS/x5LVlY@vger.kernel.org, AJvYcCWtj/2QcYINnkAJLkDP+8faLcHiLnP/d8FjQFOmp1DSozQGGP5bTKnkUNAanNbpb2XPSn0vXuQuqvyxsb8=@vger.kernel.org X-Gm-Message-State: AOJu0Yz3tjF4/DpbCph5FOSDBYkva0LxvzlUvoTfWU1239RDwsQXj7Lh qWS5CE0Qp71V7uVBOftavzbi3OuL4z32wNtjToz2fC6gSYb8mDo7x5Fa X-Gm-Gg: ASbGncsDL09NhNbAEmr5/uc/71DR9OrjzVmTHYwtArkCewsKJCgJoPuGU2fUV+dslDq gs/MYS+vj3NDOrFqJLfpKzXeoWGSfXu3xlB6jiB2qa/qjrIWHNonDpmwL9FpkBrRHHwfU4v2R7R eDamJ/OT95Rfm+PjT1w6z0wq8TLULIdsm0RRyH4T6Czx17WqK1bMSNvMD0pZc3W45LFK1EGEN9l FvPTFQjn/XQD6l4NRLXLZIbLM/iwpQ0F1RM6hrd7eQJsZFYbY2IuacIwq0NdPWjQfXsReaATGeE To+YUK9vTbwBWNYkuZxeNoZ8P1rGw42BBHNqHzI3cjyzSUXrUxyscYTG5R0IVwLms36aAIiL4NU +V+cSiypAiyX3MWSBW59Wmd72vf7mdjhfKaSEm9bSxaO1JFwvm0/H X-Google-Smtp-Source: AGHT+IE6EeQhG2oVrPlF9Ndqe3xtMBUoMmticZC935ob8iZom3JHsUGpc45T6lYCyebDP3AMe5cSgA== X-Received: by 2002:a05:600c:1e8b:b0:43d:fa59:af97 with SMTP id 5b1f17b1804b1-451f0b45248mr1079835e9.32.1748983746302; Tue, 03 Jun 2025 13:49:06 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49: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, 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: [RFC PATCH net-next v2 02/10] net: dsa: b53: prevent FAST_AGE access on BCM5325 Date: Tue, 3 Jun 2025 22:48:50 +0200 Message-Id: <20250603204858.72402-3-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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(+) v2: no changes. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index feea531732c7b..525306193f80e 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -486,6 +486,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 @@ -510,6 +513,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); @@ -517,6 +523,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 Feb 7 11:12:54 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 608D9223DD4; Tue, 3 Jun 2025 20:49:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983751; cv=none; b=sbcOFm2EEA58cshOfSs3U5A0bCIzkx69pHCht9vv3DOCeyqF3LjllnllCP1VcFmT63E1dIOz8tvL/p2Q9c7shpdlG+tnQY6jxYOTpMd0P1SLgFp/oXNYVWmIQ+rACZ27znqq0AZ2XWTw1DVwutrFfyFAuCVR+S8k2usGfkYpYgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983751; c=relaxed/simple; bh=MFodoEnYJ3jsHW78dm4UjN625qdhntN0iqnJaIPCeUo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=Q8sbLwQQiXjUgS+V7mMccWfZ8EYGMAw6z3eHO6yVyELYVfV4vls37xtkatc+K6ziLYfn4IZ4CjYS1VfBLC544DANoKatrpppCXdMxgdvqRkT0OqZnN2XiE+Jgvq8a1whpbu9THOzSUElNR+GweBXaLzPCrsUR80EKPZGPo1j2gE= 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=ED7Y8iyV; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ED7Y8iyV" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-451d41e1ad1so27164635e9.1; Tue, 03 Jun 2025 13:49:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983747; x=1749588547; 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=WrLj8YDGR2svTUzDCmjGgEt/98uPt0lyYQe6XuCq2O0=; b=ED7Y8iyV1h+xddF7jrB+iBv7gF+XfdqTmdvxU8V38V0TNTNqDWcepVdHAQbeRxo/a3 b05TD4HKzLl02Bdad53AmoLDwIWuz8m3qDqX6woV36qtOzCL0IRm9kNpIS5ME3wtkuEA +HQ2asjnO/H/GbL/jW2zEya/HPZUXeYTDQ5gZj4k7tg0sVn5lsZ/pXLB9ppxM8vnxUX/ Q0RQODCH/nqf8HIzUtFZXCaL1IWRCRPoRpxdWp/TBWg8X5Y94PvSzEzP+Fm6wbmP9CSO JYtJSH9q7MIXk3/gZpR9IN7Snge/8v/hbM5apKH5IGYQxu7OFaHGS4kzupFIbcBJ7j85 2VLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983747; x=1749588547; 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=WrLj8YDGR2svTUzDCmjGgEt/98uPt0lyYQe6XuCq2O0=; b=PvXduJBZrDZ6GTLYi19hOemRb6hDEcB09y7LMGfAC9Du6SJv+21m0lthGwsZUBHSyA bsfuT9EqRe+nSG6O6nLZspdMG1Ve/VGecFdkKVlXJlqsAVm5TWHPIm6DKONSViqpVlUO cr+wL1ByckOyKp3pWwbeXHXhjK6e9cm9jfAZyodxtlqjP6dIxpRULholOxMRmUSFmSv3 gbzR/Ke2az+1x/0ak1wle38gxVwTPjunfV+5imcnIK7p819wTJNSEtcNhiMGXeyFaVk1 xhYyEUrf1MgIqVx+LEw3iIuJ2O0jFNydfkXApsOmuNaJ3pbbvE+Euv3RwnRkhnqmt6/S Djkw== X-Forwarded-Encrypted: i=1; AJvYcCUAqw56nWeA5AMVfPTiBnCBrI+pKCkrJJQcXHg3JGT8ZyGZXr+3hw5uAOOyzkR34cVZmQBvhwLBodXg+bI=@vger.kernel.org, AJvYcCXsA7l1iMt6KADi5J6n/pcD6GFBpzNeZnZalBSChIn4rRt5ObcbaCTKYyap96GqWVeIg2QBVC3M@vger.kernel.org X-Gm-Message-State: AOJu0YyYhM5gyTiN5ll1HM9Blg00tqWAN1wjYVfUebiXEP3od383oYFT kGu8ICxzwjKeGQjcOfZOc4MahRZVtTWKvaojjrcU5EGosp2+Z9unN7pi X-Gm-Gg: ASbGncvHFfMqQl8D4mr9wxnFOalnHMkashhSF+WNwQEHPS9N25IfWDEa1fCW8L+08cE xyhxAF1s357//WzLn+JNyGGhC+txyrMbdH70hkW8qh0yVeC8Zmx2nsYNI2n8Rp1Emr/BboJ/bje 6ZlYxM98aUmj9MNy+7ueCfqIohP+cuFaxbqdn2fAG2IXgkQkewLcFq6bnJ/7OQlIS59+bNDFJV1 YlUQE7xsZT1sK0LlU+qundf3+SIF4q8DZkj2EHa9KxofEci5iHVAlY3pJL+9uUM1uxYRngqAW62 P79x03KFt5vaa7qOnlhfTpS3k14Kma+m0pmpMuJiueryhr2Q3t1X22wC41MNT949ZtJOvV6XrNe PC7xiBJQTePly2q70zFa6mKr2O/q7OGW9JCT1wXyjskKT+IwCoxyPy0qfspki32U= X-Google-Smtp-Source: AGHT+IE+YzNqDQmxaM5kVGpzjMXzHj0ewkdFsvWz+8rMWwHTJNfXS2gE70poYHDgO0qm/Lqo+NWjyQ== X-Received: by 2002:a05:600c:3f14:b0:439:8c80:6af4 with SMTP id 5b1f17b1804b1-451f0f5285cmr740395e9.19.1748983747529; Tue, 03 Jun 2025 13:49:07 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49: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, 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: [RFC PATCH net-next v2 03/10] net: dsa: b53: prevent SWITCH_CTRL access on BCM5325 Date: Tue, 3 Jun 2025 22:48:51 +0200 Message-Id: <20250603204858.72402-4-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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") Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) v2: no changes diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 525306193f80e..1e47ef9f6fb88 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -360,11 +360,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 Feb 7 11:12:54 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 601CD22539F; Tue, 3 Jun 2025 20:49:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983752; cv=none; b=D79t6aPddyu+J8/CWLCuFHMqcuv2/byEOR10L2L5Hqhdv/rHs2oTUgWbFadgP7BoctQ7L+C46BB45qHJ9Ndm+qupYtCFyfOEfhl5ihyOEmCfIvX8PotE+zJtMKNNWHeU/fOSsckKw+VT0J+Z/ZUjocGYKjEAIk0EnyYi0JUV9JA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983752; c=relaxed/simple; bh=R9PLylbzZUPbUe0c6KxGPPdXB8z4mSNhSyKwVyQ3f4s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=Szp8if30bnH9tMoAVsXz6ghvBD9+7hjhlZHg+Cc3frx2bZAGmROBdj5pOxAvZAuVZYaY/x6GACQZC6C8rOzuply0NTTDtvy9jbMTAoMtR6iKHR8DKJFlnQp4JpCK7BdPdR0qLxsg59+8uBA7eA/ieXl7/sYA7akj+HNARq1Pwqk= 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=KDMsNvsP; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KDMsNvsP" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3a36e090102so3547060f8f.2; Tue, 03 Jun 2025 13:49:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983749; x=1749588549; 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=HyjQbUGLzhevUUG6mqEZwljpIOzcn4r41+/GD9oU9Ms=; b=KDMsNvsPk92UurnpoWzTPNBQminy5Xyzw/wpd0zFJlmY1mSdgk7UuylF5UvtlKVIkT gZ7GitqhGA3eS1143NI0kYgTt8AzswOh9uKzPp88EYDrIZqsKj/HSMNUgumX5NH4sPN4 hxu8tGqVDGNrpGN+blLgCmEVGTnkkHyR5RDUU1KbDXkhDCgpECOsR1ZEuHuVp9KZOb1f PfesIZDWsCYdBdojK6LmKt3QU4e8+08k0yctB4muOBTeBmFtwN5gkFrRDLpp6Je9DZIf ZpDJ0NjEcQ9vBZA+Sg5WrDIs4Vv5cmSw5zvG535pzYsRag/4ELFQDI/CP7mycIQ/jq3V dppA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983749; x=1749588549; 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=HyjQbUGLzhevUUG6mqEZwljpIOzcn4r41+/GD9oU9Ms=; b=dnkfWmuL8So5n9xXoGpmUcUbl+4+BpJNvbuNFRi5QaxC+PdhSYAUr+42ysbqZKXC/2 voVaTGP8dlOThHQhcgySNj6kRRMQ/HLxDnhIsaGcG8AWd/NUHEzOBEhyHgcY2CT0VOnM KC4rUByHSH+FduE7Txgne429mE5i5yuVda/Eg3a4FPu/m9VZbYennt2H8Nw5YfhWCiSC ESX7dvLnFPYjLfChUZPirx1FhIph4+OZbO4d77VSp5L5r1TWzmob1zKTz+zhhLafwhil 8H9pztDNA22MCE2fbHKVgORl4VtfUIWmD7xsaOUTvTmoEVVzDoyNEEXxiaQO+eo7YN01 k+Eg== X-Forwarded-Encrypted: i=1; AJvYcCV7dvbc0iFlpyMk9v2FaE182TuiuvPUOjuj8ehaKaFMlTzKQmvH1I8o0MgMAS6v2ABScFfdq2qGKrBDhoM=@vger.kernel.org, AJvYcCXMlS5QlEB3mJZZvtvFaGudzsfgVJqaWLSiZel0Aq/LtG1WdIZEIj6sni29lSPQ1Qpzq8vSnuCA@vger.kernel.org X-Gm-Message-State: AOJu0YzRoQjb7cSFIs5kpQyS2mE4vZZkFduk7j/cDSg/akamL9ve9+RI Nm94aovTjawv8WdHnG3+QrdEnN8G/vomIqC8yyQRtwa2dA6sV3pD5qyFQ2CRDA== X-Gm-Gg: ASbGncvnEq7taagf9q9hT0lDTh84fBo0WTm48tqRb9zZPevET2NNfg3lFamMmW02Wz2 U5LG8iF/tspxT1VgT8IZurO2bIpEQTDx4Qe5MgsfaAYyzLTm6EMDlxtiEB9cZqTJZ2GdzTXXg5b J7KuY4FIT2FYu1m4eqH1TCgAUHDs688ACn8j3Im/kbHqvDzIZJbwh3ebIBd6BuWvFCPtxaiut/o kfDHBBtitP9k43MaS5YDrfLjcFUiZ5DOhzBxy01ePfa3CZfFqQz9Nu2kjg5o9f1+xWDZ0fABqF/ ph1OZ3i7ts3iQQKf+mmmhmPtzDWDXkWkZu+mpWJ6dqEnw9/hAWOizjVo8u4ZEhFcHdN4Pfu7wJq H1PCIxK63VrYSUpMlKIYDMZjEIKkHg04+pNYG22BQyY1kE+b0eKKN X-Google-Smtp-Source: AGHT+IFxbgmPgPy8L1rNEmifwRytupcobckAzCPFGEe3JDSyLkdSwcMYVhhle3hat9C4q0vsawS76Q== X-Received: by 2002:a05:6000:2dca:b0:3a4:e672:deef with SMTP id ffacd0b85a97d-3a51dc316bamr74245f8f.36.1748983748670; Tue, 03 Jun 2025 13:49:08 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49:08 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, 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: [RFC PATCH net-next v2 04/10] net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325 Date: Tue, 3 Jun 2025 22:48:52 +0200 Message-Id: <20250603204858.72402-5-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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 --- drivers/net/dsa/b53/b53_common.c | 18 +++++++++++------- drivers/net/dsa/b53/b53_regs.h | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) v2: add changes proposed by Jonas: - Change b53_set_forwarding function flow. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 1e47ef9f6fb88..f1e82a0e84ea9 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -365,14 +365,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 Feb 7 11:12:54 2026 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 B200022F766; Tue, 3 Jun 2025 20:49:11 +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=1748983753; cv=none; b=WKU+zNFAHgic3b3g2VrnQNnFjztxbvzMuzQnCiIcLO8rBalV2lGvC6HVSAuqzeYRQkjW0j6R5kphR4ze4BHS7/YkqK7VUVQcHQpFBpxsrwCcywiGlUVowBRq9bq/7O2ByEWPpBj6QZTmreG5e3Z4/PxD4kJ2zWaPaO4tpNrXA+I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983753; c=relaxed/simple; bh=n/bgIhFTed0kA+8ogu3e9r6YUkUg1esbTZK6SEVpDu0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=Q0ELej3+PQDOcLWPxSjYUab65OI8tfLOPzVj+l4UB5U2zKK+sD3Qa9YphUz51FhHdo0xkj1rn+8ciurafBdEtfMCJc2rEgPA6pHAWc61Aua6ELoHdXaxlKZ/D6KkcP6Dyvw6waWZn2MuRO0epymMbFj1I3UuIHVx1RUyFGG/h8Y= 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=FJlkVr0h; 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="FJlkVr0h" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-450dd065828so31487875e9.2; Tue, 03 Jun 2025 13:49:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983750; x=1749588550; 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=dEargT3P78owSoRseiMu/y0IGCgyp/+OmHkvu02Af0Y=; b=FJlkVr0hmwkA135JXuS2cqC16fM133poDYnZ2CkSjKn9d6cuexy8cdudP5W+4h7TBI uuelRY2qkZDac6GvLuAR2JGh8EE8ximRrEbbDs33XzHZYjiu87PvJnPKKLs3/hZM0G7j EQRoKOOHTPL8XzoSGo7SHtv4So3k0ahNVX0HBEGLA9EskGPf+2Vu5FlsA8OxLY2AWS3r +H2lTamZbzRHs3JA7wp/JnDZgKboNqkyN9+iJvR4ZK7AhmaBM+i+5Q+KNtepHWR0Mjtr +5Krf5+SfJ1HHr1BWYoVWXXKL29K/+0FEvRlwbMhYMwfTyPkZ/fEnv0zQoc/6r3CiE3U x0EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983750; x=1749588550; 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=dEargT3P78owSoRseiMu/y0IGCgyp/+OmHkvu02Af0Y=; b=WtxUdq+6WWHXF/xlYAlXRqxcLxBkvGvpJzySe3iuYsJuUVyspgRzUF5XftKDGKvaCF 5e3s9QE88u7QQ9poCoVlnhizmlctzNBpwPgmyh2vpnCbtfQgAGEbARuaMhAZ+5K02gEx nvQn58yMMKIQG7tuGh/N9HdD1WKvtyk4FSNwoCXYm4BPp1HenrQTC4oY/+6IzYDsSFHn OdDlgEGc86fyzUyKYHE1VUT2w1Y2xP39egPSKCNh18F3fWyAAQ9LWkcK7E2490hzgE9G RAbnape1RxjTm9WWFdU//CRgQrcVbuy63s87xvljmYQUAK7l9yDvtAjnZ7xsOyDZdp+F VIZg== X-Forwarded-Encrypted: i=1; AJvYcCUhx4nCpouK1ZleEfRtt479a1SvlWFpt477krU7XCqJ1j+zci0JdYbtkUU5Cg/Xak1qUDjbX61PTudMEYw=@vger.kernel.org, AJvYcCXspNeise+3aGIodo+MgsnJdZD1w10kbBe970oluMnZfyF4hs8mjnJvw19YW55QJXPSvvIElfZq@vger.kernel.org X-Gm-Message-State: AOJu0YxZx6gWgePpEJ4CIODCmOqCS6Ug9h8rTRYPr1gJfUdnWeSOL+fD H6z/rmq/9X5FQDZdUPRsN7pVdYJx1dHO1l0FAvzslANLUyLztsQYZtwo X-Gm-Gg: ASbGnctnCfnYD/K3AsI43vZgElU/pB6RFGKNRBoVg9c5NQiSTQ4ebRlNgtPNaAuU8C6 8zU5/er2nHbS5XzzCRkRv0Ze3cq1jNxKtV6rIrso8YdLRd6EnWR2boKrqq+J7mQ3rLb8DESxaOl tJcnekXB5ECLX0JM6KxdWvF7xODN82/zrmiBgP5ab6QPVm1L+MVkHJR4ZGtom6jez4yOpMPUTxT WEzb/dHWQ1TPGTymiQJ0DCReaHUYfB2k/zkCeZPmAiC1iTmgR+AEoYwBX6K4dk7xXPsgtEtCtD4 R1oRSwardQ8h+67G2qUeU4bUEF7LUrGCkQkGTKZx08WTlVk9bxjs96OpBayLOh8MW8yOdKys/wr IAQ0xq0JyVE2c9Pl7PASx1o0CBmRB656jUcoqVYPvDTnDZYjVGqu3 X-Google-Smtp-Source: AGHT+IFlG1kg/mtA/8RQANgL4qp3Z9sOTadgypTRyTbHD2RGlEWfxQgcccB7HKYUvkFzf5NuOPSjJg== X-Received: by 2002:a05:600c:3e0a:b0:43d:fa5d:9314 with SMTP id 5b1f17b1804b1-451f0b3f30amr1082295e9.32.1748983749840; Tue, 03 Jun 2025 13:49:09 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49: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, 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: [RFC PATCH net-next v2 05/10] net: dsa: b53: prevent DIS_LEARNING access on BCM5325 Date: Tue, 3 Jun 2025 22:48:53 +0200 Message-Id: <20250603204858.72402-6-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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 --- drivers/net/dsa/b53/b53_common.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 f1e82a0e84ea9..143c213a1992c 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -592,6 +592,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); @@ -2264,7 +2267,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 Feb 7 11:12:54 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCB9B24DCF9; Tue, 3 Jun 2025 20:49:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983754; cv=none; b=kGPYOKrXSRoDUETRZJLzT+oCtOxo8INND3xq+8D8l1oqOYrVGMYxf1KjYU8x8t24dS+Q09Phl3QhB0fBj9BEPTaT47LIwtlrJOWXbqtOKEfaBqK2tOSHGNBgswR4iM3nL6nXoiQB+5k3HIJGWtGwkxEZsR09p8dmL1EnFy4VoG8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983754; c=relaxed/simple; bh=xMsq1BEmjGy13ZIn7lFR/lNYbjg/uXqfolLFRsEXlwM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=hnGszARxPkHQnjccBkcMXzCwtJwqfvpPe1uRy2Tse8L09iQ7sBi7NOqPMBvC5LuARSADSXfpJyYGyQCKLCOxqy8WPi8BywCYPpwRC3GutQSfU/979iVXcWVk8SsPH3gMDD3PbWcm90LTlUG88oSzus9kIzR3UF/GDyzZoKexKzg= 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=jLpTYfJC; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jLpTYfJC" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-451d3f72391so42877555e9.3; Tue, 03 Jun 2025 13:49:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983751; x=1749588551; 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=dRdbt6V9pkRCMzRa1/bwpnovvAg9OUnHvZR1pc6vjHE=; b=jLpTYfJCXrnRWkjCCYW3FEZvfBuOfHrgc1yytIHnCNi/GBD6U+VX+XyfBpy4NKfRT9 8+1w7F+t3iXotNzeVRoPKvfDB/GkS6KmGcDwQLtQkZUIoMscDD13bosxIzZGxmg3XLrq Tch0Sx3Ie0LF5WLUGt6px+VMJx+C3uIxWi7zsOXeZxZYCscsimkve2AnlZVhHl5KzjdT MKSYXGDVXEQRRtfrFOYdJWmdHfrTP9ZS48yHnBYVvW9S+C062hdyNeYndpyAwfwKlq/j c0M+El3Eu/NHSDN92BHWmbBoLVZJBzlxrh5n94PFVyTzENvMqBXvoqr8bOvmcZUDi8C+ VaaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983751; x=1749588551; 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=dRdbt6V9pkRCMzRa1/bwpnovvAg9OUnHvZR1pc6vjHE=; b=hQUYxA3BVBaRzDWWL038bqG4xx+UYkunP9QKt3Ot/YPLdvNB9+ir33Tj7Cz+HaL3N/ u2/ovz7Wpq+eINpVRznaOcabCVU7HlHYz/SIbLeyrJ5lpcMR7DNmoITxAF/mFOzQanus kJ7+HBiyyPN5o8qJeVbcFyvNw2YaKKMp39fjFU5KIH9T3F+TRKbKisZfbyXts12HZ1Oj ZSxioD+J8oIh2iVABZo7fSZ4eIF5cxGC7z5LrvLaO2fWz0k0O3FiyMornSRFhlmGEtoQ oWpf3/XeZ6VTkpsWwhEhlThtSQqxzZZtHD0CDmz+3B8CZ6/QdGxVz65u0rhcg+k3RYB2 OOpQ== X-Forwarded-Encrypted: i=1; AJvYcCUD8I6ulCqi+SY97SemI/ng7vq9rYStoTAiN8dTBiPdjzJRjwCSLLmPyudZzDJL/TXF1CU4AX+U@vger.kernel.org, AJvYcCXoI5el8QQSXZ6aB6M/YWK6fV0Uz82+nhzBxJn8dRGTmw8oYi4aLNw8dVPT9yepNBzmjXdCcRwJ2cIih7E=@vger.kernel.org X-Gm-Message-State: AOJu0YwP53apeIU8InHUaueLZjF8BLofRGrg8ktfnyCuNPFZMhAYM1LG OdXmOUUGmz2A1OT2HT7kRb6WICTnbf8onUDK0ALmScTp/8cJyHMPvAzi X-Gm-Gg: ASbGnctTRYnI1MsA+/+pcu7RmcusJmIi0a6no/UP71gmg45qgYB3HMejk9cboJFraRA 8IMztjV8rAkhpCcrMW1uvdiKsmdqkMLokQX2jFzXN14EfM3piShokFGn/EgdX7Cd6YottClhEv+ i/L9BGibPcW7MKtB+BCC1KV6XrTnTPhRDVeDRw/mjuo4DVbFpwwbSLJe+fxOST8mj73EtYK+7C+ unHhPg5K8HtRcBjZPn/pLKXT6RacjIvhX4aKGiQF+frlhUdBCkyz7tDx28ldIRtlvzSGRMiJy+E IPf+Evp+PdsBxDT6PXuAc/NKPwijtoNtb0Dy19OdTRPVkHn/GtsRaT2Nq+4PoULascsNTmbvK54 aqs0YKyRJqMplqZReiB6soXcX8f1t4R2T3QxZxT6iPCVPa2a1s+80HMvUchqcoG4= X-Google-Smtp-Source: AGHT+IH1WEGuyW9XKmKz4BjVDXrWRz/lz6TUAN58rrx8wLwtxVwwJw+frJLuVX0Iu/6RQ2MIMA8A4w== X-Received: by 2002:a05:600c:1d24:b0:444:34c7:3ed9 with SMTP id 5b1f17b1804b1-451f0b256f3mr1050815e9.26.1748983750959; Tue, 03 Jun 2025 13:49:10 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49:10 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, 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: [RFC PATCH net-next v2 06/10] net: dsa: b53: prevent BRCM_HDR access on BCM5325 Date: Tue, 3 Jun 2025 22:48:54 +0200 Message-Id: <20250603204858.72402-7-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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 BRCM_HDR register so we should avoid reading or writing it. Fixes: b409a9efa183 ("net: dsa: b53: Move Broadcom header setup to b53") 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(+) v2: no changes. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 143c213a1992c..693a44150395e 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -729,6 +729,10 @@ 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 BCM5325 */ + if (is5325(dev)) + 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 Feb 7 11:12:54 2026 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 0ACD725393B; Tue, 3 Jun 2025 20:49:13 +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=1748983755; cv=none; b=XmAdsq53T+WnbGY1smF9eSWE2waNyNCVva718KUZXP88juuU8fje65OcqX5Nj3j16aDr823ZDxBNN7V44uO6e7ISlFBpDWtSqH325bs9xYRQEFFLPiLKaN3EH62VidK5QRAyP40svh2UFnpnQxPfifqyavcNvP8mJTP/g9z6mRI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983755; c=relaxed/simple; bh=B4/uKeFQHpyqNhkoU3L8RIaO/6OlxwBv1vJVz2FE9rE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=aEx1dJqghcwrq6iDjzULDCEDUifLnDm6D/DDSzJQ4rdTVTVlOXbtkzqlIcsCZTNZrpYcS/BX3D+q0hqkXBMt0FDAa1HPDNKJIDqCcMMw7fnVEOqGbXNrIa86GPNfKEOJ/B/1YO2FustopG0WYHF+PflB2Jo3Ks4igpWZAbs5Xfk= 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=I3LAiM8s; 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="I3LAiM8s" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-442e9c00bf4so41021495e9.3; Tue, 03 Jun 2025 13:49:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983752; x=1749588552; 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=Ts5xavCFNYjvBrxVH+680SHA8PjLmI4AmY4J+ku+0HU=; b=I3LAiM8sag0B01e0wTZngfXv/Q1UEYay8+zuWuta0XxOISrQDkDw8HFsYeEHmy3bYD PHD36avYIfhvXbpa9gjkS0khtCi896omRanFjfY9dq/aIDKFOPCPalR+CmxUi0K/6xvM WDowkAQTF55S3Pswi+Hba6AGpHl4DHH8gK1AHxXH+tDVFWoGwUArTba7HwbTpK5GAA7F z2S6NPivRJ1TlwYGTcgfDjnj6pq5gqYBuGI4xG+j/G8vpukS8E/6m2ERd4ijPf0cfwbg 4Dj37F61c9IQH6owgO1bWmH5cd1mk+DYegeXw+cNZjtN0JNVNY8Ikc+W4MJ0KwrrwuDP 38uQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983752; x=1749588552; 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=Ts5xavCFNYjvBrxVH+680SHA8PjLmI4AmY4J+ku+0HU=; b=WZ8LK2fl/Up6JIw4XR8TLPUlZ77wrXNW90t9R7SOXzd1IDcCB4/LkUG24XkwSpK/PG 7e3SdWtbAOUHp+UxzA9MsHxpHe5KLjEagmEBHPI3ZKOnmMEHlyo4CZu8KBpj4VtX2n/x PF8FRdN6yjnAiTS83hYyhdnpWkRJ6bl2WHNDxrYh1bmVjTrTF2lZKuoouDtDu3IcLoQv HmKhTI/pWH9fr2T6KDCaf/A55sxgR0Rhqef3RaXJXBW9p/B3fXXuf8FH9eE+aQnWpnFf 40Yv5v8agxRewBNB8Uuf93weanQaIlmB3YJHqgWkvRUwaWDANd3Tu5cX7VXDwpGDhfi5 iSYA== X-Forwarded-Encrypted: i=1; AJvYcCU0jOIxGqG358Uw687TbvyKFgMX6VHxAkSNxrl1clH4T1POYXIcMNPD9XFjH/0mZyknjFJKheBnleLc6uw=@vger.kernel.org, AJvYcCXkSNmJppqc9TgzcwbHS4uKq2gwoYN0lZioeUay6MPsblGyhdyV6BUqIGF/XEoGCUBMWcaIAQ9f@vger.kernel.org X-Gm-Message-State: AOJu0Ywsa/LVmfh4Nuer5X4e58rp7jIZP4HeCbilEcBCwDCanKXxudP6 aezAp4UXrxD68lQzqUd8D4c7PvnT6YDKvsr9Bxfif5tewe6w40mpD0IS X-Gm-Gg: ASbGnctXeDuTLcsFi6iTvv9eONqQ6dtNloJKe3vO82hxGFVvm/xl12fe6PrW/R2gLd/ UFjcdfBoBg7P/zmaqQdfs/B1sxd6LVGOjDzubrPgoZsrgAtjVAzmQ3Z3yf0Tc5noBhApsmFLSiz W4y00ygXz1cYs/oEVk9pcdHcu9wMjku+I9Xqf5Qv1Ib+oZqiQRJKNjaZ4ZlBlIVgPO0sMJFqHAG kzKrPwu3DWsqslE5KAD/I3cf4/4vc3QtB9ddaibVAbx3WsyzJi8am4KS+Jw2b7xAKEfV+nB4ebM 8sPVHiXyNz1E3S3XvxKgnJnLet00A5ZZAXrAt3lnVyt8kY5WUhfNRt77CdKAAseY6zk70jeemwq Z3a2ulKMITGwa2uuTzn65giYIzsO9a7fUftr11mnD3h8jsEuMG98iKGDchQEyE2g= X-Google-Smtp-Source: AGHT+IF+ZC3Id7w/YC9SXgrH6Z+4cQonivRVcLMBCmGHFBoV3nFaiJfvjePaJXjpr1hpgYEhDos9Rg== X-Received: by 2002:a05:600c:4e01:b0:442:f4a3:b5ec with SMTP id 5b1f17b1804b1-451f0a64f08mr1415505e9.4.1748983752142; Tue, 03 Jun 2025 13:49:12 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49:11 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, 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: [RFC PATCH net-next v2 07/10] net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on BCM5325 Date: Tue, 3 Jun 2025 22:48:55 +0200 Message-Id: <20250603204858.72402-8-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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") Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 21 +++++++++++++++++---- drivers/net/dsa/b53/b53_regs.h | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) v2: no changes. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 693a44150395e..4cee69f29cf8d 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1277,6 +1277,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; @@ -1301,6 +1303,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; @@ -1331,10 +1335,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 Feb 7 11:12:54 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 26D1425485A; Tue, 3 Jun 2025 20:49:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983757; cv=none; b=I37lXRDL/MlKuQGUKRKzhO5np8C5L2qBJ/UGUlUctEEyuvCmMQnahvq5ElqKnwjI5EF6emxLT4XptKb4IZz0r0OViDyUJ6biR/tqSXuWoFx9N49LC/LBqTSfcujzYRCDsra3xFmSd5+53gBMg9Ss4YbRUhFus+cDWEJ36BL0FAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983757; c=relaxed/simple; bh=W7udOWw1v+LTQ6uO16H4YPvSI7aqLfB9vzSb+0XQ7/o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=tZsVl/PC4b8ClXU6qYYNLWBfFfRumFUMK9K56II2SNIzJYY3r0zrDgK3Vmr9gKDguPvvfvhQEgR1MctcEbV3p0xA3MWzGvg6m6u+w7t22ansWVlEOWWCua13ksGZKPf8rJP5G/BgCVQs8Nt289ug2IJIqzeQAoirKhprZ+F7OLo= 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=ekgY4VZx; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ekgY4VZx" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-450cb2ddd46so39726415e9.2; Tue, 03 Jun 2025 13:49:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983753; x=1749588553; 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=2nJaL741oCxwloVL8uy8t6yLuzw4na0qNUKiNxjWzvM=; b=ekgY4VZxRP5Z+eEk/Ir0eFME8Qv8ge1mkbFiflSp3kXP/h0a4ZDt002pL2N1M/WJIe +f2DhiwqhvxOWFOEJ1wpBBjjX6+v/f0duvP123gPG+SJT5OxxaDgYbYIgwLfS/G6fIMO YwJMNoxyeCi0jrAt94XJLUkAGXvZ48Ul1sR3iem5ADUw5i2WW1qmVi9G4FASITCbWrul vta+eN0x8j7qzH/m++Y4tH7Y6ubLiLysTxQ7KQcGqKudeaEJddxrnBmudMcCTlNdtZwL Zv2EpYUmu2Rem/LFQ6wWbN6ydXw9mR41Pq8sAjlSrQ5bKdn1XwiHg2OXHXOZWpDbVjZm HzVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983753; x=1749588553; 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=2nJaL741oCxwloVL8uy8t6yLuzw4na0qNUKiNxjWzvM=; b=G/l6yuY9xvqCGVt2F5Tmq45D6YX2AcMth1sCp1QF60LzCjBVPTD/KQDOatYDGQ+qDZ wee14dGRWPKqBSIDcqjPStEVVUDbSaEoFKbNviKpJpfJ7vCHZPh0/lrGLYIOnluwKZNx ykVCkrnO4RNHbvbTUxSSMSprP8fUQprz3yh3VrlToUxNWDrSWdVCUqvCz+vEBHG2cPru gVyBEFeZtGpqkOIbTBeqI9ZLgmyEDBRDZJp/+9791Z1BbOrKBfLDErtFctt8/biF6VIU JJ6OXupzs/gg+Lg1Nyp+xNJMy0Cc+7syJrJZwTEs3V5KMrKt7Tr0sf1+fdyHQvNDZDTN +yUw== X-Forwarded-Encrypted: i=1; AJvYcCU1Ccn75meD4SVjd/mrXIjXlViIsDzRSYW+25I7pmWIrtek0CF2EOtAkP2KmaUJRAZCTbqFTQQz@vger.kernel.org, AJvYcCUV+jTqKDmTcJzd6NkmwY/SbghBYC24kIJSMiIlKay9kvOR6f560LIjk6uukbLL8f3Inu/WuqIizRKfn7I=@vger.kernel.org X-Gm-Message-State: AOJu0YwxwsQ0nbO5ptHhjDJlNNRZlBmRyEtpi9NnjtzDcgbTvBHrEUCY fJxVcVCnHLW9K5pcGSjtmDyEqfw2g3hzIEQy/QySGTjht9YaBA2NPiP+ X-Gm-Gg: ASbGncuUMQrUoEaBXkWQuxWRdh48Ee+JnYGqS150TlP8QtOb/cNQ2JyZoQnguwwjG2T OvxsAcG2iTwpGliVDqTiFcFXD5IGlm0Rr7li+4l6JCeMD3XMuwLYgJn+HVWXFGtdvac8ZI5XJKX NJlENuzJswlRDoaEDRIwG6Rdqg6ZZ8ypD9FXnD67nSz1ZlweBh0mbht6WUYiTJFatJLuYTUml38 +lyKh53jSNLDJ/7uc3DzFSbBAUrIeG3CqCEV1qWcMsvfPUGnwQcK2T6Zu08gGVbkaHJQO9iBruz j5J/jZJ1/LJ1tWvm+E0YpMBXp9Ek/OU+H59X9bdIix7ZiqyU13WebPUSb2dne596qZkibRKW1QD 4j2tu3B25zJGI0o/lCUKnpTZp+CRqIEfs2WDR4YzYWH2TXVufwXlC X-Google-Smtp-Source: AGHT+IFYfiBBW4r+w05kNkE1fPEAuh6HUwhqbHJ732NmY8EMizB2mgDVAvOEriL4FgWCPDyq9xx3MQ== X-Received: by 2002:a05:600c:3b9b:b0:442:e9eb:cb9e with SMTP id 5b1f17b1804b1-451f0b27e55mr937095e9.26.1748983753360; Tue, 03 Jun 2025 13:49:13 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49:12 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, 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: [RFC PATCH net-next v2 08/10] net: dsa: b53: fix unicast/multicast flooding on BCM5325 Date: Tue, 3 Jun 2025 22:48:56 +0200 Message-Id: <20250603204858.72402-9-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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(-) 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 4cee69f29cf8d..d7148f0657563 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -559,12 +559,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, @@ -572,19 +584,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 Feb 7 11:12:54 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 525F42566D7; Tue, 3 Jun 2025 20:49:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983758; cv=none; b=XoJ7sj9oRqjWZxlP4R3rirf86VfSifiplZdhM2QJv0DtW7STz14bBkDgw7g+YHDQVYqxFBp5KJgel2YF7Ow+4q8WjG7JSqvqF3HNSfTwhsT8tZBmq/5Px8ohsmJ7G813r6Tm6Dcu+bC+qNBwDi26ty+Xggs+0be7t0CI+06iPVQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983758; c=relaxed/simple; bh=MEpMRmHfbUf0z2aluN2/rCAnMZy6tF6+/xET0oFe8ZA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=LmC0g7C7Svzb3vYsg+FpPv5fyoGCSYUWMQyewebu7KEQ/flxOrljMRyuel5OwKCs+QQcWMNg6FtEhMhG9YMrgCjYf69JagrezRJh6H4sk5TpqsXRUEhAoDPD4ES2kIhT9ShqFySQPQQUjScj5u6VQuBHZhkH3HiJi5TJCqMwnoc= 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=VPw5WHp1; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VPw5WHp1" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3a366843fa6so3235798f8f.1; Tue, 03 Jun 2025 13:49:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983755; x=1749588555; 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=lk8Gsi4l437183PilLuaTkLSSJsiFmwPmRwiAB6KZT8=; b=VPw5WHp1w/BMGEMhevqvhE7ZDzlQLbsFHmhSp0JWgZtHtOzzj8TygVDOKIscvi1SDI OOBd2CisjYT4Gy5sfqegAXyx6PPt1RBEOfP32rT/GUAQmeudTQ4ELoqsmfcsXng85GUG 0zklQ4St++eiMnWshQhETv0G5m9OSy9WLyqimDkRKcAvJETFMeVGlgLg91knY2FnaTAt Yu3ODvUUe/1WICX7nf3ByT0C1JpfM99dYDKJZJrShxQbbAyplm2QHXyYfcySUEpJds9/ MdnNmVK6Oj9EIzllHyb9n2hn7xS+k5P/JQq8tzxAvsgWhHAkbQfQYTET0Zf+5AY4+OQ9 Q+Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983755; x=1749588555; 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=lk8Gsi4l437183PilLuaTkLSSJsiFmwPmRwiAB6KZT8=; b=n3URfTbwSRxtmfie+wsXYGwCLSCabbjdfezCmwE5OPHYppi05FHwEBHZpGxjvVp/UE Yc2gTN2rysi5Fw7R/hE2zI3GK4UKNPBJOevgwHcx0NUtN7P0/FntUQLvqPL7vjYVgHAa NY59fMdqaVt57hfmFB4Lwu0g+zodJToZ51eDVGZU9CjE31qFPeh3imiQrOlG86c9Y9m/ nLA//cf9hfyS64I7DSlGZXYAoUE0hnaalNuwq1sQYiWO1fVnO1RAKoxnLneoRbfc9tx/ wX0g9DdCtt/j+7oGhTbvFvUw2hLlje7sTdSSW1fxz4OlGwjE2r0nXdIfJWQXSXoF+ak/ jAOg== X-Forwarded-Encrypted: i=1; AJvYcCU18RV1Q5r/ZhOAjtMQ8FSSGc8XgpnUoHWdcVxmGj2U7HHCH22kJZo+vjr9ewNFi5ItOG51afHT@vger.kernel.org, AJvYcCXIkgXmozptMcNdoneUQ8LhOXisIhF+XK+PlPb+eOmdI5d3rD0j9/wgLG7rtE/qbsMcQfdZnHEXC+AbF/s=@vger.kernel.org X-Gm-Message-State: AOJu0YwYp+ut4qvUT5CFj2JDOBCW2X4DRtO7XbGjk6cm876xpnTopAdR C606yCxV/Y151Crp+F9VVYNU7NLNc/3OtPlLPYZCffb5zfzTopfZ3YtZ X-Gm-Gg: ASbGnct1E+ZmzXvJ8XJ03Vx6fTO1tOlMkHI7YSsSe4UmRovXpTyQi8/dnnnqn1KVEUk SfQrd8SZD18aEiCb7naXZlmyOztWnsIDYe2S5YSZx0WgTTSqaPPlzSGuHgVOPKvUVI9b17bjHHG c5kS1XvoEaLRZThVNExt9VayQIVeLqOUGixdFFZs8f5A6ISHRf1znuCsJ2s/jsXgLXP7Mm06jb3 teCzhEsSjPyGvVtbkk7Ijo2BHDGYNZyqtiLlSDcx4q3ebvbPd6xA//Jces3Ls4/yn/1Lphcz4Wh rx/SCKdnK2rvh+0SHiaRUvRr8pI2HpUNQEqb8bvbBjijPLa8cG3ScaHcV7nxYBKQhANR+LmYEqG yn/3jBdYhvHU+kYp3x4UZC5ERq61oumGoCpStykMGD+URFwKoC7N/ X-Google-Smtp-Source: AGHT+IEAMALaVZQj5zk38pcjkcVnrX/m9ol2RvR0lla0OhPgN40/AYjwYiPCy7faYp9SGUmlW7StlA== X-Received: by 2002:a05:6000:1a8a:b0:3a4:e8bc:5aa with SMTP id ffacd0b85a97d-3a51d8f698dmr201446f8f.11.1748983755431; Tue, 03 Jun 2025 13:49:15 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49:14 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, 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: [RFC PATCH net-next v2 09/10] net: dsa: b53: fix b53_imp_vlan_setup for BCM5325 Date: Tue, 3 Jun 2025 22:48:57 +0200 Message-Id: <20250603204858.72402-10-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-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 --- drivers/net/dsa/b53/b53_common.c | 4 ++++ 1 file changed, 4 insertions(+) v2: no changes. diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index d7148f0657563..a9b19451ffb30 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -542,6 +542,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 Feb 7 11:12:54 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4EA2E223DEC; Tue, 3 Jun 2025 20:49:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983762; cv=none; b=JPAK3nhdzHXCo2KP3ZdNm+4Glrtky+siBIFgluoxv3ahvPljo118eW8f06c0tI9LRRoRdhor4nQXpX8JCyoBQJKIgIRFznxfBS20y3WyEw/969+QxTRkVz/eaeszzGDCGjtctfSTsvjW0H90+0lbekhl+DQIInGA3qJoUwyPIKw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748983762; c=relaxed/simple; bh=pJeUhTGk2r0dYnI9s7giRBaPfqwvTfhWrM/fvTBAFIY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=NVGUOoG9701g7HULtnENbXc5j28hbzuUCV3rMPwjoaijM/t/FfCrwT4cBsptVBiTWZk9PU/pAWO70ZYENIk/Qat1iXe82LFYujOP04RxDN/IlfA2t7xm5j4x7x+TSXbhErc0y1norsDrq2ZXVKOeSBYd4fqIzmNTZxII0t+NLUU= 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=cYCA1Ow9; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cYCA1Ow9" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-43edecbfb46so46680305e9.0; Tue, 03 Jun 2025 13:49:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748983758; x=1749588558; 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=52v/QbdUUbBmAHN06fRxKClhmySRdSIjGq59EvdtlaY=; b=cYCA1Ow9OyVWFR5iX2YwCxf/65EWiSyAcgJePQAaQMWEW+C2GKd5uKISnth6qqCq6H v/GDuKfwisHSjlO82Sib9oSRPwaJxVp0GjXwzPsRBrT+OmZGVmIMkyPf6Jk2b5AmoM/8 KHsNwzsbD0fK3PIfF5NqwXHHgSpXqSaie+pQeYgtxZNOIqwB7QNGow0NkJ9fvL70HYFx dZ+Osx+WvXzc1mMm4kGntryfRRum8mQfflUuuc66RQpdSyPAof/x2Jmmzv8Py/w5b91d hXpqKQref7dv54hEx+Ok6mxgoByeBlfSTmufML/0GvR2RXKEKWtV+RdjWX8ALU6RVFCE xbyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748983758; x=1749588558; 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=52v/QbdUUbBmAHN06fRxKClhmySRdSIjGq59EvdtlaY=; b=erb8jXf/QOapqdhTDJzpaBPIH5IpRlmDTJW1z8l4T0jX9Vu+aBjDrDC+So5rj+MemG 5JpV+IsSGeuBXB0NncDdX1roPEqADP3wV6zGSGFv0FTAoCVEsFuWEiwsL9OQ/ZNGpQK2 YSlQSWSGfno44a1NApiO0FyLgUQU0VGeRfyKARsljmScWACJu13jHIPIqQ52sLoP1jlR Xt39QqtSb+KW63PqMJttq8CCz2l46G8ZMN52B1596VJDBU/hGX2ScL/OoGo4E2UguXDn VRfCVHNEB1E2pTqPDcN762e+HkJyAOd556fq5LPIF88JkL0jq5jS8B+u02+iAk34Vzve UIbA== X-Forwarded-Encrypted: i=1; AJvYcCVXRrKxkEy2s2cyRbVXpA97nqiUljXd8jike3EvcnWijnlSeGZf+TrGEJCQVLEpq4FZkuOXkIxg6ejjjCQ=@vger.kernel.org, AJvYcCWjJVAfOfoQD16OgqhDN94VykjqQeh5IpMdzyGhuc11rQf1pNJAAIAUEhffedEm+fSBtElwBnmP@vger.kernel.org X-Gm-Message-State: AOJu0YzIQTNwlQRf9grbMc7SADl9KkvC+N2z43PNzw/4VSDYKuutVNBe 66ynyoAXYFDxQAQNWqJnGCHIeDs4fKjZ4rpIpQAI21yceQDNDnVovOuP X-Gm-Gg: ASbGncsKwSNUmf8V9JWQObYxSquNIeuVD66Ifl5WIRp9xZu7kEe8RlcRBGDc0vxaTK7 J/QtYBHZB5p0Jb+kaZKg9QlhRepAQ7Z9FgGQu01O29/UDQPMQMJ+cSdPZU84k2kIKsvPJ55I14a 1nsKU2/d4vIYGnwjyq16bjh7yrYVOW/1AH0vGKWmLdw2PAcRGCfWKCNGIPgjO9l0LT1nkzpN8WH 4IhYTU/u/EBIsh9EJBJoh0g2Dyo8LBVijPHqIVd1N9ma3UPy5QcmzsCvbanUALBrGNjmrxI8iM0 qqs8EZ8leFLvGIu2rZ70tahzOkZOskS5hrggu/uQKqUwd/J6KJx/ltjv3C7P+xWTmwKZu+reRI/ qb5XyqXZj2rmFcrkGMxQqPk3wT4P1r9Fk8BZwaW75RpBDbwWGFzju X-Google-Smtp-Source: AGHT+IGHYkpyvUUrj7nWooHHRmfgpgS7hoX5OXbIZZL5KGDhdzj/iQAOMwGWeClAIz2T3PkaS/r9Ew== X-Received: by 2002:a05:6000:40c7:b0:3a4:eb0c:4087 with SMTP id ffacd0b85a97d-3a51d93450emr151649f8f.25.1748983757536; Tue, 03 Jun 2025 13:49:17 -0700 (PDT) Received: from skynet.lan (2a02-9142-4580-1500-0000-0000-0000-0008.red-2a02-914.customerbaf.ipv6.rima-tde.net. [2a02:9142:4580:1500::8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-451e58c348asm26258225e9.3.2025.06.03.13.49.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Jun 2025 13:49:16 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: jonas.gorski@gmail.com, florian.fainelli@broadcom.com, andrew@lunn.ch, olteanv@gmail.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, 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: [RFC PATCH net-next v2 10/10] net: dsa: b53: ensure BCM5325 PHYs are enabled Date: Tue, 3 Jun 2025 22:48:58 +0200 Message-Id: <20250603204858.72402-11-noltari@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250603204858.72402-1-noltari@gmail.com> References: <20250603204858.72402-1-noltari@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable According to the datasheet, BCM5325 uses B53_PD_MODE_CTRL_25 register to disable clocking to individual PHYs. Only ports 1-4 can be enabled or disabled and the datasheet is explicit about not toggling BIT(0) since it disables the PLL power and the switch. Signed-off-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 13 +++++++++++++ drivers/net/dsa/b53/b53_regs.h | 2 ++ 2 files changed, 15 insertions(+) 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 a9b19451ffb30..38c08f6278d27 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -659,6 +659,19 @@ int b53_setup_port(struct dsa_switch *ds, int port) if (dsa_is_user_port(ds, port)) b53_set_eap_mode(dev, port, EAP_MODE_SIMPLIFIED); =20 + if (is5325(dev) && + (port >=3D B53_PD_MODE_PORT_MIN) && + (port <=3D 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