Delaying USB driver start

  • Thread starter Thread starter Mike Warren
  • Start date Start date
M

Mike Warren

Hi,

Is there an easy way to delay the start of the USB mass storage
(or any other) driver?

When our systems start, if there is a USB flash drive connected
we get video driver crashes.

With some flash drives the system will lock up with a corrupted
display but will continue to boot correctly if the USB drive is then
unplugged.

This happens after the desktop background is shown but before
our shell is started.

I am assuming some sort of conflict between the USB driver and
video driver an am hoping that changing the start order may cure it.

I have made it a requirement that our customers must not switch
the device on with a USB drive plugged in but I would like to try
to fix the problem if it is not too hard.


-Mike
 
Mike,

This sound like a serious problem with some of the drivers or hardware compatibility issues.
Changing boot order of drivers is usually not a good thing, and it won't solve your original problem (it may just mask it on short
periods of time, after which problem will reoccur).
If desktop background is started it usually mean that all most drivers are already loaded and initialized, and that you might have
problems with initialization done by services. (Do you have network adapter?)

Also please check your IRQ assignment between USB controller and video card. Video drivers vere sensitive in regards of IRQ sharing
with other drivers.
Quick solution for you would be to keep usbstor or usbehci,usbuhci/usbohci driver start values at value 4 (disabled). And then using
code from devcon example in your application you can enable these drivers and wait for them to start.

Something like:
1. USB supports disabled initially.
2. Your application start.
3. Your app wait for all PnP activity to be completed.
4. You start USB.
5. You wait for all PnP activity to complete.
6. You go and do what ever you want with your shell.

Regards,
Slobodan
 
Hi Slobodan,
Changing boot order of drivers is usually not a good thing, and it
won't solve your original problem (it may just mask it on short
periods of time, after which problem will reoccur).
If desktop background is started it usually mean that all most
drivers are already loaded and initialized, and that you might have
problems with initialization done by services. (Do you have network
adapter?)

Yes, (no DHCP) but there isn't any noticeable behaviour difference if the
network cable is connected or disconnected.
Also please check your IRQ assignment between USB controller and
video card. Video drivers vere sensitive in regards of IRQ sharing
with other drivers.

Quick solution for you would be to keep usbstor or
usbehci,usbuhci/usbohci driver start values at value 4 (disabled).
And then using code from devcon example in your application you can
enable these drivers and wait for them to start.

Something like:
1. USB supports disabled initially.
2. Your application start.
3. Your app wait for all PnP activity to be completed.
4. You start USB.
5. You wait for all PnP activity to complete.
6. You go and do what ever you want with your shell.

I'll have a go at this in the next couple of days.

Thanks for your help.

-Mike
 
Back
Top