powerpc/usb: machine check when writing to portsc in ehci-fsl

Guy Yribarren guy.yribarren at actis-computer.com
Thu Jan 31 01:27:42 EST 2013

Currently using kernel 3.7.1 with mpc8315e, I am observing instability
during the usb initialisation. The usb controller is set as a host
controller with internal PHY defined in UTMI mode. This issue appears
sometimes after a warm reset. The kernel hangs and the log buffer contents
shows that a machine check exception is detected when execution is located
into ehci_fsl_setup_phy function. 
The latest messages available from the console are:
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
uhci_hcd: USB Universal Host Controller Interface driver
/immr at e0000000/usb at 23000: Invalid 'dr_mode' property, fallback to host mode
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1

By adding multiple printk into the ehci-fsl, I found that the issue happens
when executing the write to the portsc register nearly at the end of the
function (ehci_writel(ehci, portsc, &ehci->regs->port_status[port_offset]);)

This issue appears either with or without external usb devices connected.

I didn't find any restrictions to access this register and/or explanation
from freescale doc and usb2 & ehci specification.

This issue has been also seen with older kernel release like 2.6.39. 

Applying a warn reset, then the processor boot correctly and the usb
interface is now fully functional and really stable with intensive

The processor is based on the latest 1.2 mask revision. 

Hope that someone has some suggestions about this strange behaviour. 

Thanks for your help,

Guy Yribarren
ACTIS Computer - 42 Route de Satigny - CH-1217 Meyrin - Switzerland
Tel +41 (22) 706 1830 - Fax +41 (22) 794 4391
guy.yribarren <at> actis-computer.com


More information about the Linuxppc-dev mailing list