aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bmips
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2023-03-24 10:05:23 +0100
committerÁlvaro Fernández Rojas <noltari@gmail.com>2023-03-24 11:23:42 +0100
commitb88ae628cbc924aa9403e208a000143bc7a4647b (patch)
tree1f3d25fa562c321c3d0125fdc392acc22bee8562 /target/linux/bmips
parent66f087863391c4cdaaec8e3703acc9f4cf967843 (diff)
downloadupstream-b88ae628cbc924aa9403e208a000143bc7a4647b.tar.gz
upstream-b88ae628cbc924aa9403e208a000143bc7a4647b.tar.bz2
upstream-b88ae628cbc924aa9403e208a000143bc7a4647b.zip
kernel: add more dsa b53 pending patches
These patches have now received a positive review upstream, so let's add them to pending patches. 776-net-dsa-b53-mmap-add-phy-ops.patch: This is mostly bmips/bcm63xx-specific to get external switches working without hanging the device when accessing certain registers. 777-net-dsa-b53-mdio-add-support-for-BCM53134: This adds support for BCM53134 switch on DSA B53, so any target using DSA B53 can benefit from it. Also fix sercomm-h500-s external switch IMP port phy-mode. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bmips')
-rw-r--r--target/linux/bmips/dts/bcm63167-sercomm-h500-s.dtsi2
-rw-r--r--target/linux/bmips/patches-5.15/510-net-dsa-b53-mmap-disable-phy-read-write-ops.patch46
-rw-r--r--target/linux/bmips/patches-5.15/520-net-dsa-b53-add-bcm53134-support.patch98
3 files changed, 1 insertions, 145 deletions
diff --git a/target/linux/bmips/dts/bcm63167-sercomm-h500-s.dtsi b/target/linux/bmips/dts/bcm63167-sercomm-h500-s.dtsi
index c7edad8342..7368e9d496 100644
--- a/target/linux/bmips/dts/bcm63167-sercomm-h500-s.dtsi
+++ b/target/linux/bmips/dts/bcm63167-sercomm-h500-s.dtsi
@@ -155,7 +155,7 @@
port@8 {
reg = <8>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-txid";
ethernet = <&switch0port4>;
fixed-link {
diff --git a/target/linux/bmips/patches-5.15/510-net-dsa-b53-mmap-disable-phy-read-write-ops.patch b/target/linux/bmips/patches-5.15/510-net-dsa-b53-mmap-disable-phy-read-write-ops.patch
deleted file mode 100644
index 3b1ee6cfa2..0000000000
--- a/target/linux/bmips/patches-5.15/510-net-dsa-b53-mmap-disable-phy-read-write-ops.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 03e31e5197a041857299c70bbbc461131156d434 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
-Date: Tue, 21 Mar 2023 19:11:58 +0100
-Subject: [PATCH] net: dsa: b53: mmap: disable phy read/write ops
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-B53 MMAP switches have a MDIO Mux bus controller which should be used instead
-of phy_read() and phy_write() ops.
-
-Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
----
- drivers/net/dsa/b53/b53_mmap.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
---- a/drivers/net/dsa/b53/b53_mmap.c
-+++ b/drivers/net/dsa/b53/b53_mmap.c
-@@ -279,6 +279,7 @@ static int b53_mmap_probe(struct platfor
- struct b53_platform_data *pdata = pdev->dev.platform_data;
- struct b53_mmap_priv *priv;
- struct b53_device *dev;
-+ struct dsa_switch_ops *dso;
- int ret;
-
- if (!pdata && np) {
-@@ -298,10 +299,19 @@ static int b53_mmap_probe(struct platfor
-
- priv->regs = pdata->regs;
-
-+ dso = devm_kzalloc(&pdev->dev, sizeof(*dso), GFP_KERNEL);
-+ if (!dso)
-+ return -ENOMEM;
-+
- dev = b53_switch_alloc(&pdev->dev, &b53_mmap_ops, priv);
- if (!dev)
- return -ENOMEM;
-
-+ memcpy(dso, dev->ds->ops, sizeof(*dso));
-+ dso->phy_read = NULL;
-+ dso->phy_write = NULL;
-+ dev->ds->ops = dso;
-+
- dev->pdata = pdata;
-
- platform_set_drvdata(pdev, dev);
diff --git a/target/linux/bmips/patches-5.15/520-net-dsa-b53-add-bcm53134-support.patch b/target/linux/bmips/patches-5.15/520-net-dsa-b53-add-bcm53134-support.patch
deleted file mode 100644
index 3134e292fd..0000000000
--- a/target/linux/bmips/patches-5.15/520-net-dsa-b53-add-bcm53134-support.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 8ec46b847fc64a40da5c2c891e1732c863703bb5 Mon Sep 17 00:00:00 2001
-From: Paul Geurts <paul.geurts@prodrive-technologies.com>
-Date: Wed, 22 Mar 2023 20:17:04 +0100
-Subject: [PATCH] net: dsa: b53: mdio: add support for BCM53134
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Add support for the BCM53134 Ethernet switch in the existing b53 dsa driver.
-The BCM53134 is very familiar to the BCM58XX series.
-
-Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
-Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
----
- drivers/net/dsa/b53/b53_common.c | 15 +++++++++++++++
- drivers/net/dsa/b53/b53_mdio.c | 5 ++++-
- drivers/net/dsa/b53/b53_priv.h | 4 +++-
- 3 files changed, 22 insertions(+), 2 deletions(-)
-
---- a/drivers/net/dsa/b53/b53_common.c
-+++ b/drivers/net/dsa/b53/b53_common.c
-@@ -2609,6 +2609,20 @@ static const struct b53_chip_data b53_sw
- .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
- .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
- },
-+ {
-+ .chip_id = BCM53134_DEVICE_ID,
-+ .dev_name = "BCM53134",
-+ .vlans = 4096,
-+ .enabled_ports = 0x12f,
-+ .imp_port = 8,
-+ .cpu_port = B53_CPU_PORT,
-+ .vta_regs = B53_VTA_REGS,
-+ .arl_bins = 4,
-+ .arl_buckets = 1024,
-+ .duplex_reg = B53_DUPLEX_STAT_GE,
-+ .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
-+ .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
-+ },
- };
-
- static int b53_switch_init(struct b53_device *dev)
-@@ -2785,6 +2799,7 @@ int b53_switch_detect(struct b53_device
- case BCM53012_DEVICE_ID:
- case BCM53018_DEVICE_ID:
- case BCM53019_DEVICE_ID:
-+ case BCM53134_DEVICE_ID:
- dev->chip_id = id32;
- break;
- default:
---- a/drivers/net/dsa/b53/b53_mdio.c
-+++ b/drivers/net/dsa/b53/b53_mdio.c
-@@ -286,6 +286,7 @@ static const struct b53_io_ops b53_mdio_
- #define B53_BRCM_OUI_2 0x03625c00
- #define B53_BRCM_OUI_3 0x00406000
- #define B53_BRCM_OUI_4 0x01410c00
-+#define B53_BRCM_OUI_5 0xae025000
-
- static int b53_mdio_probe(struct mdio_device *mdiodev)
- {
-@@ -313,7 +314,8 @@ static int b53_mdio_probe(struct mdio_de
- if ((phy_id & 0xfffffc00) != B53_BRCM_OUI_1 &&
- (phy_id & 0xfffffc00) != B53_BRCM_OUI_2 &&
- (phy_id & 0xfffffc00) != B53_BRCM_OUI_3 &&
-- (phy_id & 0xfffffc00) != B53_BRCM_OUI_4) {
-+ (phy_id & 0xfffffc00) != B53_BRCM_OUI_4 &&
-+ (phy_id & 0xfffffc00) != B53_BRCM_OUI_5) {
- dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id);
- return -ENODEV;
- }
-@@ -377,6 +379,7 @@ static const struct of_device_id b53_of_
- { .compatible = "brcm,bcm53115" },
- { .compatible = "brcm,bcm53125" },
- { .compatible = "brcm,bcm53128" },
-+ { .compatible = "brcm,bcm53134" },
- { .compatible = "brcm,bcm5365" },
- { .compatible = "brcm,bcm5389" },
- { .compatible = "brcm,bcm5395" },
---- a/drivers/net/dsa/b53/b53_priv.h
-+++ b/drivers/net/dsa/b53/b53_priv.h
-@@ -85,6 +85,7 @@ enum {
- BCM583XX_DEVICE_ID = 0x58300,
- BCM7445_DEVICE_ID = 0x7445,
- BCM7278_DEVICE_ID = 0x7278,
-+ BCM53134_DEVICE_ID = 0x5075,
- };
-
- #define B53_N_PORTS 9
-@@ -210,7 +211,8 @@ static inline int is58xx(struct b53_devi
- return dev->chip_id == BCM58XX_DEVICE_ID ||
- dev->chip_id == BCM583XX_DEVICE_ID ||
- dev->chip_id == BCM7445_DEVICE_ID ||
-- dev->chip_id == BCM7278_DEVICE_ID;
-+ dev->chip_id == BCM7278_DEVICE_ID ||
-+ dev->chip_id == BCM53134_DEVICE_ID;
- }
-
- #define B53_63XX_RGMII0 4