From: Hannes on
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
"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
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
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
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.