mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-31 13:03:02 +02:00
patches/uboot: Sync with u-boot-2023.07.y-kkit for multi-chip fixes
- Add upstream patch that fixes multi-chip management in the mv88e6xxx driver - Fix detection of 6393X in multi-chip configuration
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
From e4213fc62d3d6a6733e3026b63dd6314a6f09ee2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Marek=20Moj=C3=ADk?= <marek.mojik@nic.cz>
|
||||
Date: Wed, 6 Dec 2023 15:35:56 +0100
|
||||
Subject: [PATCH 1/6] net: mv88e6xxx: fix missing SMI address initialization
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
The mv88e6xxx driver does not currently initialize the smi_addr field, but
|
||||
instead keeps the default zero value. This leads to driver being unusable
|
||||
on devices where the switch is not on address zero of the mdio bus. Fix
|
||||
this problem by reading the SMI address from device tree.
|
||||
|
||||
Signed-off-by: Marek Mojík <marek.mojik@nic.cz>
|
||||
Reviewed-by: Marek Behún <kabel@kernel.org>
|
||||
Reviewed-by: Stefan Roese <sr@denx.de>
|
||||
Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
---
|
||||
drivers/net/mv88e6xxx.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/mv88e6xxx.c b/drivers/net/mv88e6xxx.c
|
||||
index 64e860e324..9be8e3273c 100644
|
||||
--- a/drivers/net/mv88e6xxx.c
|
||||
+++ b/drivers/net/mv88e6xxx.c
|
||||
@@ -679,6 +679,7 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
{
|
||||
struct dsa_pdata *dsa_pdata = dev_get_uclass_plat(dev);
|
||||
struct mv88e6xxx_priv *priv = dev_get_priv(dev);
|
||||
+ fdt_addr_t smi_addr;
|
||||
int val, ret;
|
||||
|
||||
if (ofnode_valid(dev_ofnode(dev)) &&
|
||||
@@ -687,6 +688,13 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
+ smi_addr = dev_read_addr(dev);
|
||||
+ if (smi_addr == FDT_ADDR_T_NONE) {
|
||||
+ dev_err(dev, "Missing SMI address\n");
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ priv->smi_addr = smi_addr;
|
||||
+
|
||||
/* probe internal mdio bus */
|
||||
ret = mv88e6xxx_probe_mdio(dev);
|
||||
if (ret)
|
||||
--
|
||||
2.34.1
|
||||
|
||||
+12
-6
@@ -1,7 +1,8 @@
|
||||
From 4348261902b60f93c217f07069a2b5613a933c17 Mon Sep 17 00:00:00 2001
|
||||
From 80ddeb093f24cf1d8a99e92564e07a7180791f8c Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
Date: Tue, 17 Oct 2023 13:15:58 +0200
|
||||
Subject: [PATCH 1/5] net: mv88e6xxx: Add reset-gpios support
|
||||
Subject: [PATCH 2/6] net: mv88e6xxx: Add reset-gpios support
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
If the switch's RESETn signal is under the CPUs control, release it
|
||||
before starting the probe.
|
||||
@@ -12,7 +13,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
1 file changed, 61 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/mv88e6xxx.c b/drivers/net/mv88e6xxx.c
|
||||
index 64e860e324..1bf7cfd6a6 100644
|
||||
index 9be8e3273c..e70e45ae92 100644
|
||||
--- a/drivers/net/mv88e6xxx.c
|
||||
+++ b/drivers/net/mv88e6xxx.c
|
||||
@@ -33,6 +33,8 @@
|
||||
@@ -71,7 +72,7 @@ index 64e860e324..1bf7cfd6a6 100644
|
||||
static int mv88e6xxx_probe(struct udevice *dev)
|
||||
{
|
||||
struct dsa_pdata *dsa_pdata = dev_get_uclass_plat(dev);
|
||||
@@ -684,17 +719,22 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
@@ -685,7 +720,8 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
if (ofnode_valid(dev_ofnode(dev)) &&
|
||||
!ofnode_is_enabled(dev_ofnode(dev))) {
|
||||
dev_dbg(dev, "switch disabled\n");
|
||||
@@ -80,6 +81,11 @@ index 64e860e324..1bf7cfd6a6 100644
|
||||
+ goto err;
|
||||
}
|
||||
|
||||
smi_addr = dev_read_addr(dev);
|
||||
@@ -695,14 +731,18 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
}
|
||||
priv->smi_addr = smi_addr;
|
||||
|
||||
+ ret = mv88e6xxx_probe_reset(dev);
|
||||
+ if (ret)
|
||||
+ goto err;
|
||||
@@ -97,7 +103,7 @@ index 64e860e324..1bf7cfd6a6 100644
|
||||
|
||||
dev_dbg(dev, "ID=0x%x PORT_BASE=0x%02x GLOBAL1=0x%02x GLOBAL2=0x%02x\n",
|
||||
priv->id, priv->port_reg_base, priv->global1, priv->global2);
|
||||
@@ -716,28 +756,40 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
@@ -724,28 +764,40 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
priv->port_count = 7;
|
||||
break;
|
||||
default:
|
||||
@@ -142,7 +148,7 @@ index 64e860e324..1bf7cfd6a6 100644
|
||||
}
|
||||
|
||||
static const struct udevice_id mv88e6xxx_ids[] = {
|
||||
@@ -750,6 +802,8 @@ U_BOOT_DRIVER(mv88e6xxx) = {
|
||||
@@ -758,6 +810,8 @@ U_BOOT_DRIVER(mv88e6xxx) = {
|
||||
.id = UCLASS_DSA,
|
||||
.of_match = mv88e6xxx_ids,
|
||||
.probe = mv88e6xxx_probe,
|
||||
+4
-3
@@ -1,8 +1,9 @@
|
||||
From d87aea2f0d0acfa0d54adb20a980256c0ba95023 Mon Sep 17 00:00:00 2001
|
||||
From c31794d78337da82cf41ffbcb9e696e42759aa12 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
Date: Tue, 17 Oct 2023 13:20:19 +0200
|
||||
Subject: [PATCH 2/5] net: mv88e6xxx: Support clause 45 addressing on internal
|
||||
Subject: [PATCH 3/6] net: mv88e6xxx: Support clause 45 addressing on internal
|
||||
MDIO bus
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
This is needed to access SERDES registers on newer chips, like the
|
||||
6393X.
|
||||
@@ -13,7 +14,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
1 file changed, 106 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/mv88e6xxx.c b/drivers/net/mv88e6xxx.c
|
||||
index 1bf7cfd6a6..eddac332e0 100644
|
||||
index e70e45ae92..99f234ae87 100644
|
||||
--- a/drivers/net/mv88e6xxx.c
|
||||
+++ b/drivers/net/mv88e6xxx.c
|
||||
@@ -114,6 +114,9 @@
|
||||
+7
-6
@@ -1,7 +1,8 @@
|
||||
From c801299f06f0e5c95bd597fe0ce4ad6c3df9a444 Mon Sep 17 00:00:00 2001
|
||||
From c94723526672f1e5555b7545c13256edb7bd7557 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
Date: Tue, 17 Oct 2023 13:22:00 +0200
|
||||
Subject: [PATCH 3/5] net: mv88e6xxx: Add support for 6393X
|
||||
Subject: [PATCH 4/6] net: mv88e6xxx: Add support for 6393X
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Only built-in copper PHYs are supported as access ports. Support
|
||||
10GBASE-R SERDES connection to CPU.
|
||||
@@ -12,7 +13,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
1 file changed, 130 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/mv88e6xxx.c b/drivers/net/mv88e6xxx.c
|
||||
index eddac332e0..4a4a3ae0b1 100644
|
||||
index 99f234ae87..6f5cfe0155 100644
|
||||
--- a/drivers/net/mv88e6xxx.c
|
||||
+++ b/drivers/net/mv88e6xxx.c
|
||||
@@ -74,6 +74,7 @@
|
||||
@@ -170,7 +171,7 @@ index eddac332e0..4a4a3ae0b1 100644
|
||||
*/
|
||||
priv->port_reg_base = 0x10;
|
||||
priv->id = mv88e6xxx_get_switch_id(dev);
|
||||
+ if (priv->id == 0xfff0) {
|
||||
+ if (priv->id == 0xfff0 || priv->id == PORT_SWITCH_ID_6393) {
|
||||
+ /*
|
||||
+ * Look for a newer device in which ports start at
|
||||
+ * offset 0 (6390/6393 and compatible switches).
|
||||
@@ -182,7 +183,7 @@ index eddac332e0..4a4a3ae0b1 100644
|
||||
if (priv->id != 0xfff0) {
|
||||
priv->global1 = 0x1B;
|
||||
priv->global2 = 0x1C;
|
||||
@@ -844,6 +967,7 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
@@ -852,6 +975,7 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
case PORT_SWITCH_ID_6176:
|
||||
case PORT_SWITCH_ID_6240:
|
||||
case PORT_SWITCH_ID_6352:
|
||||
@@ -190,7 +191,7 @@ index eddac332e0..4a4a3ae0b1 100644
|
||||
priv->port_count = 11;
|
||||
break;
|
||||
case PORT_SWITCH_ID_6020:
|
||||
@@ -863,15 +987,17 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
@@ -871,15 +995,17 @@ static int mv88e6xxx_probe(struct udevice *dev)
|
||||
if (ret < 0)
|
||||
goto err_remove_reset;
|
||||
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
From 5013dadfd3ba92eba930f8ea0f88c0f34b8c55a5 Mon Sep 17 00:00:00 2001
|
||||
From c39245a2d92d6f851dfcb8f573af873a05d4a5b8 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
Date: Fri, 20 Oct 2023 13:19:41 +0200
|
||||
Subject: [PATCH 4/5] i2c: pcf8575: Properly address chip
|
||||
Subject: [PATCH 5/6] i2c: pcf8575: Properly address chip
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
These devices hold a simple shift register that is accessed without
|
||||
any "register" setup.
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
From c0495a607652aef38a4d4480ebdb6dd45e3dd9b9 Mon Sep 17 00:00:00 2001
|
||||
From 967f7f88c88e1a72d7cf389b5b3b6f184788006f Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
Date: Tue, 24 Oct 2023 22:23:44 +0200
|
||||
Subject: [PATCH 5/5] arm64: mvebu: a8k: Add eFuse support
|
||||
Subject: [PATCH 6/6] arm64: mvebu: a8k: Add eFuse support
|
||||
Organization: Addiva Elektronik
|
||||
|
||||
Add support for reading and burning LD and HD fuses. Use a specialized
|
||||
commandline implementation over the standard "fuse" command because:
|
||||
Reference in New Issue
Block a user