summaryrefslogtreecommitdiff
path: root/drivers/net/mscc_eswitch/felix_switch.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2021-12-02 07:16:04 -0500
committerTom Rini <trini@konsulko.com>2021-12-02 07:16:04 -0500
commitf89615088fba1b1f33713ad26dbe3a3c82b692ec (patch)
treef25c7d1f07c5f518b14babab50ebe0f61e276ab0 /drivers/net/mscc_eswitch/felix_switch.c
parentcdccb39e37ba5b43dcae4e783c15f0471acf5529 (diff)
parent300761b68da14fc77f3e236f35c459fb1a6769ce (diff)
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-net into next
- New Broadcom NetXtreme driver - Support for socat for netconsole - Felix switch soft reset fix
Diffstat (limited to 'drivers/net/mscc_eswitch/felix_switch.c')
-rw-r--r--drivers/net/mscc_eswitch/felix_switch.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/mscc_eswitch/felix_switch.c b/drivers/net/mscc_eswitch/felix_switch.c
index 2df8dde55fb..60b2e8f32d4 100644
--- a/drivers/net/mscc_eswitch/felix_switch.c
+++ b/drivers/net/mscc_eswitch/felix_switch.c
@@ -40,7 +40,9 @@
#define FELIX_IS2 0x060000
#define FELIX_GMII(port) (0x100000 + (port) * 0x10000)
#define FELIX_QSYS 0x200000
-
+#define FELIX_DEVCPU_GCB 0x070000
+#define FELIX_DEVCPU_GCB_SOFT_RST (FELIX_DEVCPU_GCB + 0x00000004)
+#define SOFT_SWC_RST BIT(0)
#define FELIX_SYS_SYSTEM (FELIX_SYS + 0x00000E00)
#define FELIX_SYS_SYSTEM_EN BIT(0)
#define FELIX_SYS_RAM_CTRL (FELIX_SYS + 0x00000F24)
@@ -237,6 +239,15 @@ static void felix_init(struct udevice *dev)
void *base = priv->regs_base;
int timeout = 100;
+ /* Switch core reset */
+ out_le32(base + FELIX_DEVCPU_GCB_SOFT_RST, SOFT_SWC_RST);
+ while (in_le32(base + FELIX_DEVCPU_GCB_SOFT_RST) & SOFT_SWC_RST &&
+ --timeout)
+ udelay(10);
+ if (in_le32(base + FELIX_DEVCPU_GCB_SOFT_RST) & SOFT_SWC_RST)
+ dev_err(dev, "Timeout waiting for switch core reset\n");
+ timeout = 100;
+
/* Init core memories */
out_le32(base + FELIX_SYS_RAM_CTRL, FELIX_SYS_RAM_CTRL_INIT);
while (in_le32(base + FELIX_SYS_RAM_CTRL) & FELIX_SYS_RAM_CTRL_INIT &&