Skip to contentSkip to conversation

usb: ehci-omap: Don't softreset USB High-speed Host (UHH) Module

PATCH New Roger Quadros 4 participants 5 messages Jul 22, 2013 – Jul 24, 2013

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 usb: ehci-omap: Don't softreset USB High-speed Host (UHH) Module

Fixes NFS root problems with Beagle (3530 ES1.0) when used with external USB-ethernet adapter and "USB start" command used within u-boot.

Soft resetting the UHH module causes instability issues on all OMAPs so we just avoid it.

See OMAP36xx Errata
i571: USB host EHCI may stall when entering smart-standby mode
i660: USBHOST Configured In Smart-Idle Can Lead To a Deadlock

On OMAP4/5, soft-resetting the UHH module can put it into Smart-Idle mode and lead to a deadlock.

On OMAP3 this doesn't seem to be the case but still instabilities are observed on beagle (3530 ES1.0) if soft-reset is used.
e.g. NFS root failures with Linux kernel.

---
 drivers/usb/host/ehci-omap.c |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)
drivers/usb/host/ehci-omap.c +15 -12
index 086c697..0f6ad29 100644
@@ -42,18 +42,21 @@ static struct omap_ehci *const ehci = (struct omap_ehci *)OMAP_EHCI_BASE;
 
 static int omap_uhh_reset(void)
 {
-	unsigned long init = get_timer(0);
-
-	/* perform UHH soft reset, and wait until reset is complete */
-	writel(OMAP_UHH_SYSCONFIG_SOFTRESET, &uhh->sysc);
-
-	/* Wait for UHH reset to complete */
-	while (!(readl(&uhh->syss) & OMAP_UHH_SYSSTATUS_EHCI_RESETDONE))
-		if (get_timer(init) > CONFIG_SYS_HZ) {
-			debug("OMAP UHH error: timeout resetting ehci\n");
-			return -EL3RST;
-		}
-
+/*
+ * Soft resetting the UHH module causes instability issues on
+ * all OMAPs so we just avoid it.
+ *
+ * See OMAP36xx Errata
+ *  i571: USB host EHCI may stall when entering smart-standby mode
+ *  i660: USBHOST Configured In Smart-Idle Can Lead To a Deadlock
+ *
+ * On OMAP4/5, soft-resetting the UHH module will put it into
+ * Smart-Idle mode and lead to a deadlock.
+ *
+ * On OMAP3, this doesn't seem to be the case but still instabilities
+ * are observed on beagle (3530 ES1.0) if soft-reset is used.
+ * e.g. NFS root failures with Linux kernel.
+ */
 	return 0;
 }
 
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH 1/1 usb: ehci-omap: Don't softreset USB High-speed Host (UHH) Module

Quoted 11 lines · Roger Quadros

Fixes NFS root problems with Beagle (3530 ES1.0) when used with external USB-ethernet adapter and "USB start" command used within u-boot.

Soft resetting the UHH module causes instability issues on all OMAPs so we just avoid it.

See OMAP36xx Errata
i571: USB host EHCI may stall when entering smart-standby mode
i660: USBHOST Configured In Smart-Idle Can Lead To a Deadlock

Quoted 8 lines

On OMAP4/5, soft-resetting the UHH module can put it into Smart-Idle mode and lead to a deadlock.

On OMAP3 this doesn't seem to be the case but still instabilities are observed on beagle (3530 ES1.0) if soft-reset is used.
e.g. NFS root failures with Linux kernel.

Thanks a lot for fixing this. With this patch, beagleboard is able to boot into an NFS root-fs. Even when USB is used previously in U-Boot. Without this patch NFS booting hangs randomly at some time.

So:

Note: I think its a bit too late to take this patch into this release. So I suggest to apply it in the next merge-window.

Thanks,
Stefan

#2 lore raw

PATCH 1/1 usb: ehci-omap: Don't softreset USB High-speed Host (UHH) Module

In reply to Roger Quadros

Dear Roger Quadros,

Quoted 11 lines

Fixes NFS root problems with Beagle (3530 ES1.0) when used with external USB-ethernet adapter and "USB start" command used within u-boot.

Soft resetting the UHH module causes instability issues on all OMAPs so we just avoid it.

See OMAP36xx Errata
i571: USB host EHCI may stall when entering smart-standby mode
i660: USBHOST Configured In Smart-Idle Can Lead To a Deadlock

Quoted 8 lines

On OMAP4/5, soft-resetting the UHH module can put it into Smart-Idle mode and lead to a deadlock.

On OMAP3 this doesn't seem to be the case but still instabilities are observed on beagle (3530 ES1.0) if soft-reset is used.
e.g. NFS root failures with Linux kernel.

Now it all depends on Tom, but this would be a last-second save ;-)

Best regards,
Marek Vasut

#3 lore raw

PATCH 1/1 usb: ehci-omap: Don't softreset USB High-speed Host (UHH) Module

Quoted 20 lines · Marek Vasut

Dear Roger Quadros,

Quoted 18 lines

Fixes NFS root problems with Beagle (3530 ES1.0) when used with external USB-ethernet adapter and "USB start" command used within u-boot.

Soft resetting the UHH module causes instability issues on all OMAPs so we just avoid it.

See OMAP36xx Errata
i571: USB host EHCI may stall when entering smart-standby mode
i660: USBHOST Configured In Smart-Idle Can Lead To a Deadlock

On OMAP4/5, soft-resetting the UHH module can put it into Smart-Idle mode and lead to a deadlock.

On OMAP3 this doesn't seem to be the case but still instabilities are observed on beagle (3530 ES1.0) if soft-reset is used.
e.g. NFS root failures with Linux kernel.

Quoted 7 lines
Quoted 1 line

Now it all depends on Tom, but this would be a last-second save ;-)

Best regards,
Marek Vasut

Signature · 2 lines
------------------
Dan Murphy
Applied
#4 lore raw

PATCH 1/1 usb: ehci-omap: Don't softreset USB High-speed Host (UHH) Module

In reply to Roger Quadros

Dear Roger Quadros,

Quoted 11 lines

Fixes NFS root problems with Beagle (3530 ES1.0) when used with external USB-ethernet adapter and "USB start" command used within u-boot.

Soft resetting the UHH module causes instability issues on all OMAPs so we just avoid it.

See OMAP36xx Errata
i571: USB host EHCI may stall when entering smart-standby mode
i660: USBHOST Configured In Smart-Idle Can Lead To a Deadlock

Quoted 8 lines

On OMAP4/5, soft-resetting the UHH module can put it into Smart-Idle mode and lead to a deadlock.

On OMAP3 this doesn't seem to be the case but still instabilities are observed on beagle (3530 ES1.0) if soft-reset is used.
e.g. NFS root failures with Linux kernel.

Applied, thanks guys for helping me with these omap things.

Best regards,
Marek Vasut