USB Host port inoperative after kexec on Beagleboard
From: Will Deacon <hidden>
Date: 2012-01-09 23:03:50
Also in:
kexec, linux-omap, lkml
On Mon, Jan 09, 2012 at 10:54:03PM +0000, Will Deacon wrote:
On Mon, Jan 09, 2012 at 10:09:54PM +0000, Peter Chubb wrote:quoted
Hi Will,Hi Peter [adding linux-arm-kernel],
*Actually* adding linux-arm-kernel this time...
quoted
Thanks for the fixes to kexec for ARM that went into mainline this week. Mostly things work now.Great, that's good to hear!quoted
One issue: the USB EHCI port on the (rev C2) beagleboard doesn't work after a kexec. During boot after kexec, the host device is detected and initialised, but nothing plugged in works, even when everything was working corectly before the kexec. Das U-boot must set up something that is then undone during the kexec reboot.Ouch. Have you had a chance to look at the u-boot sources to see what it does?quoted
I've traced all calls to clk_enable() and clk_disable(), and everything looks all right --- in particular I can't see anything explicitly disabled during kexec that isn't reenabled during boot of the subsequent kernel. Voltages that I can measure look correct on the port. Do you have any suggestions as to what else could be wrong?I'm afraid I'm not familiar with the Beagleboard, so I can't begin to guess. Have you tried re-initialising the host controller in the new kernel manually (perhaps my building the driver as a module and {un}loading it a few times?). It could be that some hardware state persists across the kexec and it just needs resetting. Will