USB drivers for OS/2 v. 12.07 (15/8/2020, Arca Noae LLC) |
Readme/What's new |
USB drivers update for OS/2 v12.07
In this release
===============
This release is intended to update an existing installation. The
installer will not install or change UHCI, OHCI, or EHCI host
controller drivers but it can install xHCI and certain class drivers.
This release contains the following files:
The Host Controller drivers and USB driver:
- USBXHCD.SYS (USB 3.x xHCI hardware driver)
- USBEHCD.SYS (USB 2.0 EHCI hardware driver)
- USBOHCD.SYS (USB 1.x OHCI hardware driver)
- USBUHCD.SYS (USB 1.x UHCI hardware driver)
- USBD.SYS (USB driver)
The Human Interface class drivers
- USBHID.SYS (Human Interface driver)
- USBKBD.SYS (USB Keyboard driver)
- USBMOUSE.SYS (USB Mouse driver)
Some other class drivers:
- USBMSD.ADD (USB Mass Storage Device driver)
- USBCOM.SYS (USB COM port and modem driver)
- USBPRT.SYS (USB printer driver)
- USBAUDIO.SYS (USB Class 1 Audio driver)
- USBMOS.OS2 (Moschip USB to Ethernet driver)
Other files:
- USBRESMG.SYS (USBCALLS driver)
- USBCALLS.DLL (USBCALLS DLL)
- USBCALLS development sample code
Copyrights and Licensing
========================
Copyright (c) 2011-2020 David Azarewicz <david@88watts.net>
All rights reserved.
Copyright (C) 1992, 2000-2001 IBM Corporation.
All rights reserved.
Portions of the code may also contain modifications from the
contributors to this code such as Lars Erdmann, Wim Brul, and others,
to whom we are very grateful for their work.
Binary programs and documentation for the USB drivers are licensed to
and distributed by Arca Noae, LLC.
Important! By downloading or using this software, you acknowledge that
you have read and consent to the license agreement contained in the
separate License.txt file, that you understand it, and that you agree
to be bound by its terms.
Installation
============
The distribution is a self executing WarpIn package. Simply run it.
This release is intended to update an existing installation only.
Except for xHCI, the installer will not check for which host
controllers you have in your system and it will not change the host
controller drivers in your config.sys. If you are running ArcaOS,
the installer will check for xHCI controllers and will modify your
config.sys accordingly. The installer cannot install the xHCI driver
on non-ArcaOS systems so you will not see the xHCI driver in the
package list on those systems.
The installer will only update the USBAUDIO driver if a version 11.x
or 12.x driver is already installed. The USBAUDIO package will not
be available if you have a version 10.x driver installed. The
installer will not overwrite an existing version 10.x driver.
On the Packages page, make sure you select and/or deselect the drivers
you want and/or don't want to update. Many drivers are a matched set
and cannot be updated individually. For this reason matched drivers
are grouped into packages and cannot be selected individually.
USBRESMG.SYS and USBCALLS.DLL are a matched set and must be the same
version. There are many different old versions of USBRESMG.SYS and
USBCALLS.DLL distributed with various other packages. If you are
having problems with the USBCALLS interface, make sure that you are
not using mismatched versions. Beware of other versions of
USBCALLS.DLL in your LIBPATH or current directory.
Starting with version 11.01, the usbcalls library was reorganized to
try to merge the functionality from all the different versions and
create a universal interface. A few versions were incompatible and
those incompatible interfaces were discarded in favor of the more
capable, more popular modern ones. If your application is very old or
was linked with an incompatible library, you will need to relink your
application with the new library.
The version 12.x drivers require USBD.SYS to load before the HC
drivers in CONFIG.SYS. This is different than the old 11.x drivers.
The Warpin installer changes the CONFIG.SYS if necessary.
Getting Support and Reporting Problems
======================================
For more information about the USB drivers please visit:
https://www.arcanoae.com
and click on SUPPORT.
Or go directly to the USB support wiki at:
https://www.arcanoae.com/wiki/usb/
Requirements, Limitations, and Known Problems
=============================================
If a device is plugged into a root hub and powers up in an inoperative
state, or if the BIOS puts the device into an inoperative state, the
device will not work until it is repowered (ie. plugged in after
bootup). This applies to any type of device, but especially hubs and
KVM switches when a non-compliant device is plugged into them. This
is a hardware limitation, not a driver defect. This problem exists on
all other platforms as well.
WARNING: The OS/2 DASD/IFS architecture is not designed to handle
aborted disk transfers well. DO NOT disconnect or remove a USB MSD
while a transaction is active, or when an error recovery is in
progress. Always wait until the I/O is finished. Failure to wait will
result in lost data and/or traps. Be aware that if a cache is used,
the disk I/O may be delayed. An eject or reboot should be safe
provided that you wait until it finishes.
USBAUDIO
--------
The OS/2 USB audio driver in this release is developed to support any
USB audio device that follows USB Audio device class 1 specifications.
This driver will not work on class 2 audio devices.
To use this driver you must have the following prerequisites:
1. A USB audio device that conforms to the class 1 specification.
2. Basic USB support must be installed (HC driver, USBD).
3. Multimedia services must be installed.
4. The USBAUDIO driver must have already been installed in order
to be updated by this release.
USBXHCD
-------
Current known limits and problems with USBXHCD.SYS:
1. Isochronous transfers are not implemented yet. This means that any
streaming devices such as audio or video will not work.
2. This driver has been tested and found to work reliably on a large
variety of hardware. However, there is no guarantee that this
driver will work on every system and with every device.
You may experience reduced performance and/or additional problems on
systems that are not fully up-to-date or are not in the standard Modern
Hardware configuration. Specifically, make sure you are are using the latest
Arca Noae 14.201 SMP kernel, the latest ACPI PSD, and that you are *not*
using the /VW switch for the PSD.
Some old vintage devices may not respond correctly to standard USB
protocols. The USB3 spec and consequently xHCI hardware enforces
strict compliance with the USB standards. If you have one of these
non-compliant devices, please let us know and we will investigate
if a workaround is possible.
Change Log
==========
v.12.07 28-Jul-2020 - David Azarewicz
All drivers now check interface version rather than driver version
for compatiblity.
All drivers have improved resource manager strings.
EHCI: Cleaned up Isochronous buffer management. Scheduled processing
of Isochronous buffers earlier.
KBD: Corrected scan codes for F13-F24
USBD: Implemented CheckService interlock.
USBD: Fixed enumeration when a default address conflict.
XHCI: By default route USB2 ports to EHCI controllers on systems with
switchable ports.
v.12.06 28-May-2020 - David Azarewicz
EHCI: Fixed IOCtl pointer verification error.
v.12.05 09-Apr-2020 - David Azarewicz
DOCS: Changed where documentation is installed.
USBD: Fixed device attach on large hubs.
USBD: Fixed hub descriptor read on SS hubs.
USBMSD: Enhanced error recovery algorithm.
USBMOS: Added setting threshold for rev C chips.
v.12.04 01-Mar-2020 - David Azarewicz
Added new USBMSD driver with many fixes including: SMP fixes,
stability fixes, bad pointer/random error fixes, buffer
management fixes.
USBD: Fixed max packet size problems.
USBD: Added support for SS hubs.
USBRESMG: Fixed a trap on certain IOCtl calls.
USBMSD: Added SS device support.
USBMOS: Added to distribution.
v.12.03 01-Sep-2019 - David Azarewicz
USBD: Significant changes to accomodate XHCI connected hub support.
USBOHCD: Fixed a problem with isochronous transfers.
USBEHCD: Fixed a problem with isochronous transfers.
USBXHCD: Added error/stall clearing.
v.12.02 31-Mar-2019 - David Azarewicz
USBCALLS driver (USBRESMG.SYS) is now 32 bit.
Significant changes throughout all drivers to accomodate USB3. This
includes massive changes to USBD.SYS and minor changes to all the
other HC drivers.
Fixed a problem with abnormal termination in the USBCALLS driver.
v.12.01 05-Jan-2018 - David Azarewicz
All HC, USBD, and most class drivers are now 32 bit with a 32 bit
non-thunked inter-driver interface.
v.11.17 08-Jun-2017 - David Azarewicz
Added support for keyboard auto-repeat.
Fixed bandwidth allocation for certain types of 1.x devices when plugged
into a 2.0 hub.
v.11.16 08-Jun-2017 - David Azarewicz
Misc cosmetic changes for debugging.
v.11.15 30-Mar-2017 - David Azarewicz
USBD: Fixed a MaxPacketSize error when initializing high speed devices.
v.11.14 27-Nov-2015 - David Azarewicz
Fixed a problem booting from USB devices.
v.11.13 03-Jul-2015 - David Azarewicz
Fixed another buffer management problem in USBCALLS interface.
Added version checking to prevent using USBCALLS.DLL with wrong usbcalls
driver.
USBCALLS: Incorporated some changes from Wim.
USBD,HC: Incorporated some hub changes from Lars.
v.11.12 13-May-2015 - David Azarewicz
Changed the way devices are initialized to accomodate some so-called
buggy devices.
Fixed buffer management problems in USBCALLS interface.
v.11.11 01-Apr-2015 - David Azarewicz
USBKBD: Fixed error handling
USBMOUSE: Fixed error handling
USBEHCD,USBOHCD,USBUHCD: Fixed a problem with extremely slow devices
USBHID,USBAUDIO,USBCOM,USBPRT,USBD fixed a problem with concurrent
device initialization.
OHCI: Fixed a problem with isochronous transfers.
Misc other minor changes.
v.11.10 07-Mar-2015 - David Azarewicz
USBCALLS: Reworked the way the DLL is built. Added query version function.
USBCALLS: Fixed a transfer size problem which caused transfers to fail.
USBRESMGR: Added query version function.
USBD: Changed the way devices are initialized.
USBEHCD,USBOHCD,USBUHCD: Added transfer timeout and conflict logic.
USBEHCD,USBOHCD,USBUHCD: Fixed a problem working on Warp4 systems.
USBOHCD: Fixed a problem that caused transfers to be lost.
USBOHCD: Fixed an error detection problem.
USBOHCD: Fixed a problem with default address transfers.
USBCOM: Fixed a trap that could occur when certain devices are connected.
Fixed an issue that could cause random traps in class drivers.
Many other fixes and improvements so numerous I didn't keep track.
Restructured the Warpin package to work on both OS/2 and eCS systems.
v.11.09 10-Jan-2015 - David Azarewicz
USBCALLS: Fixed a compatibility problem
USBRESMGR: merged a fix from Wim.
EHCI: Fixed a queue management problem
EHCI: Reworked BIOS/OS ownership change
KBD: Fixed a problem with shared devices
Added version detection to prevent problems with using incompatible versions.
Reworked and enhanced tracing capability.
v.11.08 12-Aug-2014 - David Azarewicz
USBD: Fixed a problem with some devices not attaching
USBPRT: Fixed some SMP issues
USBRESMGR: updates from Wim.
USBCALLS: updates from Wim.
v.11.07 19-Mar-2014 - David Azarewicz
Fixed a failure on some UHCI controllers
Create resource manager entries for mouse and keyboard devices.
Serialize the initialization of HID devices.
Temporarily added /S switch to USBMOUSE.SYS and USBKBD.SYS to allow
reading product ID strings.
Added USBPRT.SYS to the distribution.
Added USBAUDIO.SYS to the distribution.
v.11.06 11-Dec-2013 - David Azarewicz
Updates to USBCOM, USBRESMG, USBKBD, USBHID, USBMOUSE
Some fixes for keyboard and mouse on one device.
Created WPI package for installation.
v.11.05 12-Sep-2013 - David Azarewicz
Implemented ISO changes from Lars' branch.
Added some class drivers to the distribution.
Fixed PL2303 support in USBCOM driver.
v.11.04 14-Aug-2013 - David Azarewicz
Implemented some trace and RemoveTDList changes from Lars
Implemented data toggle changes from Lars
v.11.03 23-Jul-2013 - David Azarewicz
Changes to device enumeration based on changes from Lars branch
Fixed another trap during device de-enumeration.
v.11.02 (10.193) 14-Jul-2013 - David Azarewicz
Some code cleanup
Merge in some changes from Lars.
Fixed some traps when doing device enumeration.
Fixed a device enumeration problem.
Fixed setting interrupt handler.
Fixed a problem that caused some quirky systems to not work.
Improved tracing information.
v.11.01 (10.192) 14-May-2013 - David Azarewicz
Cleanup and modernize build environment.
Updated to modern build level string.
Merged in some changes from Lars.
Added ACPI suspend/resume support.
Fixed lock/unlock routines which were causing hangs.
Fixed an excessive CPU load problem.
Fixed a problem which caused interference with some applications when USB is active. |
Add new comment