Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Isoc and Interrupt Pipes with USB 2.0 Hubs



Hi Eric,

This is most probably a known issue.

You didn't happen to mention which version of the OS you were running. This would be helpful to know.

There are other factors involved as well:

Is the 2.0 Hub in question a single TT or multi TT hub?
Are there any other FS/LS devices connected to this hub?
How many total interrupt endpoints are there in your device?

There is a huge difference between a FS device connected to the system directly (which used the OHCI controller) and the same device connected through a HS hub (which uses the EHCI controller and split transactions). One of the main differences is that in the OHCI driver, we don't really pay any attention to interrupt endpoint sizes when we calculate bandwidth on the bus. This means that it may be possible to get into a situation where a device is (or lots of devices are) connected which has a lot of interrupt endpoints, which if you added them all together would exceed the available bandwidth for the bus, but since we don't check, and since devices rarely use all of the endpoints simultaneously, the user never experiences a problem.

With the EHCI controller and split transactions, however, we must allocate all of the periodic endpoints (Isoch and Interrupt) and we have to actually schedule when they occur down to the microframe (125 us boundary). There are many, complicated rules for when we can issue these transactions, when they can overlap, etc. Sometimes, it is just not possible given a particular system configuration to allocate all of the bandwidth desired from a particular device, and you will end up in a situation like you describe.

Multi-TT hubs make a difference, because each downstream port on the hub is able to have an entire FS bus worth of bandwidth allocated on it. With a Single-TT hub, there is only one FS bus available for ALL of the downstream ports with FS devices attached to them (and LS devices, such as mice, make the problem even worse).

Having said all that, I see a couple of possible from our point of view which may affect your situation. Once is that the algorithm for doing all of this allocation was completely rewritten. This new algorithm will be shipping in Tiger, and in the next Panther software update. If you have been seeded with either of these two things, and are still having problems, then the next paragraph may apply.

The second possibility is that we just can't accommodate your device in the configuration you are trying, do to their being not enough bandwidth on the bus. In this case, when you hit the situation you describe, you should probably alert the user to make a configuration change.

I hope this is helpful. Let me know if you have any more questions.

Rhoads Hollowell
USB Software Team
Apple Computer, Inc.

On Mar 27, 2005, at 2:05 PM, Eric Hangstefer wrote:

I have a USB 1.1 Isoc device which also has a interrupt pipe.

When the device is connected to a USB 2.0 Hub and the hub is connected to a USB 2.0 port on the Mac and I set the alternate interface to 7 (maxPacketSize 1023) the interrupt pipe is no longer a valid pipe. I get the following error, invalid pipe ref. (e0004061), when trying to do a ReadPipeAsync or GetPipeProperties.

On the same computer, if I move the hub connection from the 2.0 port on the Mac to the 1.1 keyboard port, everything works as expected, no errors and I can read the interrupt pipe.

Also, if I connect the USB 1.1 device directly to the USB 2.0 port on the Mac, everything works as expected, no errors and I can read the interrupt pipe.

With the device connected through the 2.0 Hub to a 2.0 Port on the Mac and I set the alternate interface to 6 (maxPacketSize 896), then everything works as expected, no errors and I can read the interrupt pipe.

I have been able to duplicate this issue using another USB 1.1 Isoc device (different chipset) with an interrupt pipe. I also have had users report this issue using different USB 2.0 Hubs.

The main test system is a iMac 1.8GHz G5 20", Belkin F5U231 Tetra Hub, Mac OS 10.3.8

Other 2.0 hubs tried on different computers are:
D-Link DUB-H4 USB 2.0
Belkin F5U237 Hi Speed USB 2.0 7 port hub
Targua USB 2.0 7 port hub

Is this a known issue or am I missing something?

_______________________________________________ Do not post admin requests to the list. They will be ignored. Usb mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/usb/email@hidden

This email sent to email@hidden
References: 
 >Isoc and Interrupt Pipes with USB 2.0 Hubs (From: Eric Hangstefer <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.