On 7/11/06, Steve Calfee <[EMAIL PROTECTED]> wrote: > > >Date: Mon, 10 Jul 2006 20:07:05 +0530 > > >From: "Ajay Jain" <[EMAIL PROTECTED]> > > >To: linux-usb-devel@lists.sourceforge.net > > >Hi, > > >Am using a windows host and a proprietary device as a function. This > > >is the pre-enumeration stage that I am talking about. I see a very > > >different behavior with what is written in the standard or with the > > >way windows is supposed to enumerate. The following are the > > >observations with CATC protocol analyzer. As I understand, there > > >should be a reset followed by a get dev descriptor request and then a > > >reset again which will be followed by set address and then no more > > >resets for the duration of enumeration. Here I am seeing 4 superfluous > > >resets and suspends in the beginning. Is it any windows oddity? > > >Ajay > > >PS: I only have a clue to the first one, I guess the CATC analyzer s/w > > >treats the entire boot-up duration as a reset as well, and that is why > > >we see a first long reset for 15 seconds. > > > > This is an interesting trace. Think of what is happening on the two data > wires. Reset means both D+,D- are pulled low, this is called single ended > zero (SE0). Idle and suspend are the exact same wire state - J, for a full > speed device J is D+ high, D- low. It is only by spec that the meaning of J > changes from idle to suspend. After 3ms of idle by spec USB devices must go > into lower power suspend, however there is no way for an external analyzer > to verify this. > > An analyzer cannot tell the difference between an actively driven bus line > such as SE0 and one where there is no device resistor pulling up the data > line. >
Perfectly right, this is the way I understand it as well. > So what I think is happening: > > This is a trace of the power up of your PC. That takes about 17 seconds. > During that time the Bios and the system software is configuring the > hardware etc. So some of the time the PC is actively driving the lines to > SE0, or some of the times not (where the J state wins). In either case the > host PC is ignoring what is happening on the USB bus. > It is not that the pc is getting powered up. It is the device on the other end that got powered up which took about 17 seconds. D+ & D- are both low in that period and hence we see a reset. Even if it was a pc being powered up, why would it drive SEO and then J on the bus for that many a times? > In normal use the PC will see the J state and start talking to the device, > which is exactly what happens when it finally starts the enumeration. > Every PC/BIOS/OS will probably have a slightly different sequence during its > boot up sequence. I would expect any one instance of PC/BIOS/OS to boot the > same though. One counter observation, I have observed very slightly different behavior with the same set up. The difference is very very little. foreg. it my send reset one more time. > > It is not clear to me why you think there is a problem? Well, sometime back I was facing a problem when the windows came up with a message on connecting this device of mine. The message was "One of the usb devices attached to this computer has malfunctioned, and Windows does not recognize it. For assistance in solving this problem, click this message" We did not have an acess to analyzer at that time, so we probed the usb wire using LA, and we observed a reset. However we did not see reset on the device end, which means that we did not get any reset interrupt in our code. The problem was highly sporadic (one of the most severe ones I have ever seen) and it occurred very very randomly. Does anybody have any clues, so as to why this message appeared on the host side? It is a very very generic message, and windows seems to give this no matter the problem is with pre-enumeration or enumeration stage. I was trying to extrapolate something from my current observation, may be it is something quirky with the device. (As Alan pointed out, the device is pulling up and pulling down). It is just a far-fetched guess from my side. Ajay ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel