From: Alexander Kolesnikov <hidden> Date: 2001-08-30 09:19:52
Hi All,
We have problems with different USB chips on the Walnut board:
1.Using of a OHCI chip causes to kernel crash. This problem is famous but
we really need to know whether does any "on the shelf" solution for the
particular case exist.
2.When a UHCI chip is used, the USB device connecting to it causes to the
following error messages:
usb_control/buk_msg:timeout
usb.c:USB device not accepting new address = XX (error=-110)
The used USB hubs and devices work properly with another OS on the PC
platform.
Thanks in advance.
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
From: Adrian Cox <hidden> Date: 2001-08-30 09:38:35
Alexander Kolesnikov wrote:
2.When a UHCI chip is used, the USB device connecting to it causes to the
following error messages:
usb_control/buk_msg:timeout
usb.c:USB device not accepting new address = XX (error=-110)
This is most likely either an endianess problem in the UHCI controller
code, or an interrupt problem. The UHCI code in recent 2.4 kernels
(2.4.6 and onwards, I think) supports big-endian hosts. The UHCI code in
the mainstream 2.4.2 did not support big-endian hosts, and I don't think
the HardHat kernel was any different.
--
Adrian Cox http://www.humboldt.co.uk/
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Alexander,
We have managed to get the USB ohci driver to work on the Walnut board. I
believe one of the problems was that the 405gp platform did not guarantee
cache coherency for pci-dma. This is supposedly fixed by patches
ohci-0323*.patch and pcipool patches (you can find on usb-devel mailing
list).
That didn't improve things at all. Then I discovered that cache invalidates
were happening on addresses not aligned with the 405gp cacheline. This
junked some good data, and I fixed it by using kmalloc'ed memory for dma and
aligning end addresses manually. I also have a fix for the Pegasus ethernet
dongle (other drivers probably have to be patched as well.)
The code uses a macro called L1_CACHE_ALIGN:
#define L1_CACHE_ALIGN(x)
(((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
where L1_CACHE_BYTES is 32 for 405gp.
hope this helps! sorry if it's too messy. I'll try to help more if I can.
Eli
----- Original Message -----
From: "Alexander Kolesnikov" <redacted>
To: <redacted>
Sent: Thursday, August 30, 2001 2:19 AM
Subject: USB support in the HardHet Linux 2.4.2 on the IBM Walnut
Hi All,
We have problems with different USB chips on the Walnut board:
1.Using of a OHCI chip causes to kernel crash. This problem is famous but
we really need to know whether does any "on the shelf" solution for the
particular case exist.
2.When a UHCI chip is used, the USB device connecting to it causes to the
following error messages:
usb_control/buk_msg:timeout
usb.c:USB device not accepting new address = XX (error=-110)
The used USB hubs and devices work properly with another OS on the PC
platform.
Thanks in advance.
From: Dan Malek <hidden> Date: 2001-09-04 19:56:50
Eli Chen wrote:
We have managed to get the USB ohci driver to work on the Walnut board. I
believe one of the problems was that the 405gp platform did not guarantee
cache coherency for pci-dma.
All of the problems found so far are associated with cache coherency.
One of the changes, which still isn't really correct, is to change the
consistent_sync() function to always writeback and invalidate. We
seem to be more lucky with this, but the proper solution is to cache
line align all buffers subject to DMA.
-- Dan
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/