From: Hannes on 16 Nov 2009 11:26 When resuming from sleep, our embedded USB device gets powered and seconds later it is expected to appear on the USB bus, or its drivers will get unloaded (I guess Windows assumes the device has been removed during sleep). What is the timeout requirement to avoid driver unload? We have a heavy composite USB device with a CPU and boot ROM etc, and it may take several secons to boot up and start its USB stack.
From: Pavel A. on 16 Nov 2009 13:19 "Hannes" <hannes.news(a)newsgroup.nospam> wrote in message news:9EDE147F-F181-4F8B-BA32-0CF334541858(a)microsoft.com... > When resuming from sleep, our embedded USB device gets powered and seconds > later it is expected to appear on the USB bus, or its drivers will get > unloaded (I guess Windows assumes the device has been removed during > sleep). > > What is the timeout requirement to avoid driver unload? > > We have a heavy composite USB device with a CPU and boot ROM etc, and it > may > take several secons to boot up and start its USB stack. See the thread "How to delay USB device recognition?" in NTDEV, less than a week ago. The timeout is 100ms. Regards, -- pa
From: Hannes on 17 Nov 2009 05:07 Thanks for that reference. It is possible I did not ask the right question. Let me try again: When you resume a Windows (7) PC from sleep, it will power its embedded USB devices. Shortly thereafter, Windows will detect all attached USB devices, and load/unload device drivers as appropriate. Our device implements its USB stack in software, and so needs a few seconds to bring up its USB stack. This appears to be too long, and the USB enumeration is already missed. We therefore see our drivers getting unloaded every time the PC resumes from sleep. Just a second later, our USB device is ready, and our drivers get loaded again. I assume we need to redesign our device to bring up its USB stack quicker - but what is the actual time requirement from power-on to ready-for-enumeration? We need a target requirement to know what to design. (I guess the 100ms refered to in USB-IF are from "toggling its data lines, to enumeration". Our device will toggle its lines when ready, so those 100ms are not an issue for us.) Thanks, / Hannes. "Pavel A." wrote: > "Hannes" <hannes.news(a)newsgroup.nospam> wrote in message > news:9EDE147F-F181-4F8B-BA32-0CF334541858(a)microsoft.com... > > When resuming from sleep, our embedded USB device gets powered and seconds > > later it is expected to appear on the USB bus, or its drivers will get > > unloaded (I guess Windows assumes the device has been removed during > > sleep). > > > > What is the timeout requirement to avoid driver unload? > > > > We have a heavy composite USB device with a CPU and boot ROM etc, and it > > may > > take several secons to boot up and start its USB stack. > > See the thread "How to delay USB device recognition?" in NTDEV, less than a > week ago. > The timeout is 100ms. > > Regards, > -- pa > > > . >
From: Tim Roberts on 18 Nov 2009 02:12 Hannes <hannes.news(a)newsgroup.nospam> wrote: > >Thanks for that reference. It is possible I did not ask the right question. >Let me try again: > >When you resume a Windows (7) PC from sleep, it will power its embedded USB >devices. Shortly thereafter, Windows will detect all attached USB devices, >and load/unload device drivers as appropriate. > >Our device implements its USB stack in software, and so needs a few seconds >to bring up its USB stack. This appears to be too long, and the USB >enumeration is already missed. We therefore see our drivers getting unloaded >every time the PC resumes from sleep. >Just a second later, our USB device is ready, and our drivers get loaded >again. > >I assume we need to redesign our device to bring up its USB stack quicker - >but what is the actual time requirement from power-on to >ready-for-enumeration? We need a target requirement to know what to design. > >(I guess the 100ms refered to in USB-IF are from "toggling its data lines, >to enumeration". Our device will toggle its lines when ready, so those 100ms >are not an issue for us.) This is all spelled out in the USB specification. You get 10ms "recovery" time after a reset or resume, and you are required to respond to a control request within 500ms. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: Hannes on 18 Nov 2009 04:06
Hi, This could be very alarming for us and our products. Our device currently takes a few seconds from power-on to start up its USB stack. Is the requirement really <500ms, i.e. is our device is completely unacceptable? / Hannes. |