imx8mm/imx8mn hang on usb stop / ehci_shutdown
Tim Harvey
tharvey at gateworks.com
Wed Mar 15 23:01:44 CET 2023
Greetings,
I'm seeing a hang on imx8mm-venice and imx8mn-venice boards which have
a USB host controller in host mode when ehci_shutdown() is called
(which is called for 'usb stop' as well as when booting a kernel once
'usb start' has been issued).
This appears to be caused by the ehci_shutdown() function,
specifically the write to the or_portsc register to set EHCI_PS_SUSP:
for (i = 0; i < max_ports; i++) {
reg = ehci_readl(&ctrl->hcor->or_portsc[i]);
reg |= EHCI_PS_SUSP;
ehci_writel(&ctrl->hcor->or_portsc[i], reg);
}
Does anyone else out there with an imx8mm/imx8mn board with usbotg1 or
usbotg2 configured with dr_mode="host" see this as well?
I'm not clear where the equivalent code would be in the Linux kernel
to compare with. I do know that commenting out the ehcI_write above
keeps ehci_shutdown from hanging but does cause the handshake to fail
on the next cmd that disables CMD_RUN and thus prints "EHCI failed to
shut down host controller.".
Any ideas?
Best Regards,
Tim
More information about the U-Boot
mailing list