Updates to the host controller drivers USBUHCD.SYS,USBOHCD.SYS,USBEHCD.SYS

1.) the base of these driver updates is the latest IBM sources.
    Unfortunately these do not reflect versions 10.162 of the IBM provided drivers. The DDK sources seem
    to got stuck in stage "work in progress"

2.) Changes (compared to the previous version)
10.175:
added USBD.SYS to the lot
tried to improve device attach/detach responsiveness and reliability
reworked suspend/resume for USBEHCD.SYS
fixed 2 traps in USBEHCD.SYS, they are likely due to the currently ongoing effort to support isochronous
transfers on USB 2.0



There are still some improvements to be made but hopefully these drivers fix some of the problems you might have
experienced with the IBM provided drivers (host controllers and therefore some USB ports being unusuable, hangs on
bootup, etc.).

Make sure you back up your existing drivers ! These drivers come without any warranty whatsoever. If they don't work
for you, revert back to your backed up drivers.

Post bugs to:
http://svn.netlabs.org/usb/report
ALWAYS state WHAT VERSION of the driver you were using when the trap occurred !

I'd be especially interested in reports on older systems (also without ACPI.PSD) and on systems using ACPI.PSD
in APIC mode (/APIC) and/or multi-core (/SMP). These drivers SHOULD work on the latter systems (one user reported
success for /APIC and /SMP) but YMMV. As time permits, I will try and solve the problems.

Please provide as much info as you can:
1.) Did it work with the IBM supplied 10.162 drivers ? Also try combinations of IBM drivers and these drivers
2.) Kernel version: run "bldlevel OS2KRNL" from the root directory
3.) how many CPUs / CPU cores ?
4.) ACPI.PSD ? What switches ?
5.) What type of USB ? UHCI ? OHCI ? EHCI ? Output of "pci.exe" is very helpful:
    http://hobbes.nmsu.edu/download/pub/os2/util/misc/pci104vka.zip
    If you have eCS 2.0, you can instead use:
    \ecs\install\DETECTEI\pciscan.exe
6.) USB relevant parts in Config.sys, in particular, order and number of driver instances: USBD.SYS and USB(I|O|E)HCD.SYS
7.) if trap or hang: describe as good as you can: when exactly does it hang ? Can you check by hitting
    Alt-F2 when boot blob in upper left corner shows up and note down last driver that loaded successfully ?
    What driver / daemon program would load after the last successfully loaded driver ?
    If trap in USB(I|O|E)HCD.SYS: note down trap screen, CS:IP, SS:BP and AX,BX,CX,DX,ES,DS are especially important

Lars Erdmann


HOW TO SET UP DUMPING+TRACING
For setting up a dump partition you can also have a look at:
http://newsgroups.derkeiler.com/Archive/Comp/comp.os.os2.bugs/2007-09/msg00032.html

Setting up a dump partition
1.) Create a partition > the physical size of your memory and give it a
drive letter, say X: (for what follows).
Note: if you use LVM, for whatever reason that partition needs to be "compatible"
and "boot". After creating it, you should however remove it from boot manager.
2.) Get http://www.os2site.com/sw/drivers/filesystem/dumpfs.zip
3.) Copy udumpfs.dll to \os2\dll, copy dumpfs.ifs to \os2\boot, save
\os2dump and copy os2dump.hd to \os2dump
4.) add "IFS=C:\OS2\BOOT\DUMPFS.IFS" to config.sys (C: being your boot
drive). You might need to shift around this statement. I seem to remember it
has to be the last IFS
5.) add "TRAPDUMP=R0,X:" to config.sys (without quotes)
6.) reboot
7.) do a "format X: /FS:DUMPFS" to format the dump partition
8.) reboot

Now you are basically set up to do a dump. In order to do a trace you also
need to set up tracing. For USBEHCD.SYS, the trace code is 226 (0xE2):

9.) add "TRACEBUF=512 /M=WRAP,QUEUED,NODTI /D=ALL" to config.sys
10.) add "TRACE=ON 226" to config.sys
11.) reboot

Now, when the system reboots and hangs, hit Ctrl-Alt-NumLock-NumLock to
initiate a system dump. Let the system dump finish.

12.) reboot, make sure you boot from a maintenance partition, CD-ROM or
alternate config.sys (without USB) so that it does not hang again
13.) Now you will need pmdf.exe to extract the trace info from the system
dump: do a "\os2\pdpsi\pmdf.exe" to open the dump formatter
14.) Do a file open on X:\ and select the dump file
15.) You can now enter commands in the command line at the very bottom of
the pmdf window. Enter ".ts c:\trace.raw" to save the trace buffer to file
"c:\trace.raw". I will need this file to have a look at the trace info. 
