Übersicht Übersicht Ebene Ebene
Software für OS/2 und eCS
Download details

usbhcd usbhcd

*** WARNING: This software is provived without any warranties. ***
*** It has not been proven to be free of defects. ***
*** Any use is at the user's own risk! ***

"CMD", "VIA", "INTEL", "ETEQ", "OPTI", "SIS", "NEC", "ALI", "ACER",
"AMD", "IBM", "USB", "OS/2", "EHCI", "OHCI", "UHCI"
are trade marks of their respective owners.


Version  10.197  System  ab OS/2 4.0 
Dateigröße  124.21 KB     
    Erstelldatum  11.05.2014 10:47:40 
Versionsdatum  14.03.2014 00:00:00     
Installertyp  Manuell  Pakettyp  ZIP 
Autor  Lars Erdmann  MD5 Prüfsumme  384630428ef5446004ed5fa2df4c1872 
    SHA1 Prüfsumme  717f098f63b943b7dafd514bcb74f7858a92b364 
Dateiname: usbhcd197.zip
Dateigröße: 124.21 KB
Download Mirror 1 Download melden

Version History
10.197: USBEHCD.SYS:
fix trap in isochronous processing (cancel iso processing). Necessary for USBAUDIO.SYS and USBECD.SYS in isochronous mode
read all 32-bit timestamps atomically. Necessary in order to prevent incorrect time diff computation for delay loops
do not attempt to clear a stalled default (endpoint zero) pipe
read all 32-bit timestamps atomically. Necessary in order to prevent incorrect time diff computation for delay loops
fix in isochronous processing in order to prevent possible memory overflow
do not attempt to clear a stalled default (endpoint zero) pipe
various small fixes in order to properly handle stall of status change pipe (has an influence on device insertion)
on client driver registration, do not call driver for all known devices (will happen later on device insertion anyway)
read all 32-bit timestamps atomically. Necessary in order to prevent incorrect time diff computation for delay loops
do not attempt to clear a stalled default (endpoint zero) pipe

10.196: USBEHCD.SYS:
implement isochronous transfers (thanks to Wim Brul)

Parameters supported by these drivers:
USBUHCD.SYS,USBOHCD.SYS,USBEHCD.SYS,USBD.SYS: /V: give some information on bootup (also supported by 10.162 drivers)
USBUHCD.SYS,USBOHCD.SYS,USBEHCD.SYS: /FS: on shutdown, put the HC into reset instead of just letting it execute
this is supposed to solve some problems on next bootup
(also supported by 10.162 drivers)
USBEHCD.SYS /S:x (where x=1,2,4,8,16,32,64), according to Robert Lalla, lower values are
supposed to improve throughput. Technically, it will set
"Interrupt Threshold Control", see EHCI spec
(x=1: raise interrupt every 1ms frame,
x=64: raise interrupt every 64th 1ms frame), this parameter might need
some experimentation for optimal throughput/latency

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:
ALWAYS state WHAT VERSION of the driver you were using when the trap occurred ! If possible, please add a valid email address
to the CC field so that you will get email notifications when the bug report is updated by me.

I'd be especially interested in reports on older systems (also without ACPI.PSD) and on systems using ACPI.PSD.
These drivers SHOULD work with OS2APIC.PSD and also with ACPI.PSD.
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 -D" is very helpful:
Please run pci.exe with the "-D" flag: this gives detailed pci config space info for each PCI device !!!!
If you have eCS 2.0, you can instead use:
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

Important note: if you have problems using the USB widget from eCenter/XCenter (part of eWorkplace/XWorkplace):
You can revert back to the original daemon program that handles USB devices attaches/detaches.
This is ecsootUSBMSDD.EXE.
Here is a piece of REXX code to create a program object in the startup folder:

/* REXX script */
if RxFuncAdd('SysLoadFuncs','REXXUTIL','SysLoadFuncs') then do
rc = SysLoadFuncs()
bootDrive = SysBootDrive()
title='USB-Monitor V1.2'
rc = SysCreateObject(class,title,location,app';'startupdir';'parameters';'icon';'iconpos';'open';'minimized';'progtype';'autoclose';'objectid';','R')
if rc==0 then
ret = 0
ret = 1
return ret

Save this to a file with extension .cmd and execute from a commandline. Of course you can modify the title and/or object id to whatever you like.

Lars Erdmann

1.) For setting up a dump partition have a look here for the necessary details and limitations:
Make sure you follow the instructions down to the letter !
Now you are basically set up to do a dump.

In order to also do a trace (for this, there is no necessity for dumping to work)
you also need to set up tracing.The trace codes are:
USBUHCD.SYS: the trace code is 224 (0xE0)
USBOHCD.SYS: the trace code is 225 (0xE1)
USBEHCD.SYS: the trace code is 226 (0xE2)

2.) add "TRACEBUF=512 /M=NW,Q,NDTI /D=ALL" to config.sys
3.) add "TRACE=ON 226" to config.sys (or "TRACE=ON 225,226" for tracing multiple drivers etc.)
4.) reboot

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

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

9.) For tracing to work, it's not necessary to take a dump if your system boots ok.
In case your system boots fine, after your system is up you can run "tracefmt.exe" to have the tracing info displayed.
Do a "file"->"safe formatted ..." to have the trace info saved in ASCII format. Attach this file
to your bug report.

Zum Seitenanfang