USB support for Bamboo/440EP (Yosemite/440EPx)
Gerhard Jaeger
g.jaeger at sysgo.com
Tue May 15 00:31:04 EST 2007
On Montag, 14. Mai 2007, Stephen Winiecki wrote:
> Is there an intention to add the configuration for the USB host controller
> for Bamboo/Yosemite to the mainline kernel? drivers/usb/host contains
> ohci-ppc-soc.c/h, but the Kconfig isn't updated to include it for
> 440EP/EPx?
>
> I noticed it is configured in the Denx 4.1 2.6.19.2 kernel. When I
> updated the 2.6.21 drivers/usb/host/Kconfig to include the controller
> support for 440EP for some reason I couldn't get the kernel to recognize
> the controller or devices when it boots - not sure if there is something
> else I am missing here? One thing I noticed was that in the 2.6.19.2
> kernel CONFIG_USB_OHCI_BIG_ENDIAN gets defined - in 2.6.21 there is both
> CONFIG_USB_OHCI_BIG_ENDIAN_DESC and CONFIG_USB_OHCI_BIG_ENDIAN_MMIO -
> assume I want both defined?
>
> Wondering also if anyone has much experience using the USB interface on
> Bamboo - and if any reliability issues have been observed? I have a
> Bamboo system where we've added graphics card init capability to PIBS and
> are using the DENX 2.6.19.2 kernel and booting X (Xorg 7.1.1 - Debian 4.0
> system on hard disk) with a USB keyboard and mouse - and sometimes the
> mouse/keyboard are not detected properly by either the kernel on boot, or
> by X during its initialization (sometimes even after the kernel seems to
> detect everything fine). I did play a bit with a memory stick on the
> interface and that seemed reliable for the little I did with it.
>
> I am using an Apple keyboard plugged into the USB port on the board, with
> an IBM Scrollpoint USB mouse plugged into one of the ports on the
> keyboard.
[SNIPSNAP]
Hi Stephen,
I also played with Bamboo and Yosemite USB and found out, that the OHCI
ISR contains an assumption that makes the 440 OHCI implementation sometimes
stop when having a timeout condition. Find the following sequence @ function
ohci_irq() (in file ohci-hcd.c) and disable the following code:
if ((ohci->hcca->done_head != 0)
&& ! (hc32_to_cpup (ohci, &ohci->hcca->done_head)
& 0x01)) {
ints = OHCI_INTR_WDH;
}
This should make the USB host work reliably on the 440s.
HTH
Gerhard
--
Gerhard Jaeger <gjaeger at sysgo.com>
SYSGO AG Embedded and Real-Time Software
www.sysgo.com | www.elinos.com | www.pikeos.com | www.osek.de
More information about the Linuxppc-embedded
mailing list