USB drivers for OS/2 v. 12.12 (2/4/2022, Arca Noae LLC) |
Readme/What's new |
USB drivers update for ArcaOS and OS/2
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-2022 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 transfer support may not be fully tested due to
the lack of compatible drivers and applications.
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.203 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.
Some older USB class drivers may not be entirely USB3 compliant, or
may have defects that were tolerated with the old USB2 stack. These
drivers will need to be updated before they will work with the Arca
Noae USB3 stack. The USB stack will block access to XHCI connected
devices for drivers which are known to be XHCI unsafe.
Change Log
==========
v.12.12 02-Apr-2022 - David Azarewicz
USBCOM: Fixed USB3 issues. Added support for some newer PL2303 devices.
USBD: Added protection from some XHCI unsafe drivers.
USBCALLS: Added protection from some misbehaved applications.
XHCI: Added isochronous support. May not be fully tested due to
the lack of compatible drivers and applications.
v.12.11 05-Jan-2022 - David Azarewicz
USBD: Added device descriptor verification to reject bad devices.
OHCI: Fixed typo in RM strings.
USBMSD: Added missing endpoint stall recovery.
HID: Fixed descriptor parser to handle unusual global sequences.
XHCI: Added workaround for VirtualBox port change defect.
XHCI: Don't accept transfers for not-ready endpoints.
v.12.10 16-Nov-2021 - David Azarewicz
USBPRT: Fixed mutex issue that can cause a driver hang in some error
coditions.
USBMSD: Fixed problem attaching devices with physically removable media.
USBD: Fixed port status data/timing problem that caused bad port status
reads.
XHCI: Changed how initial device endpoints are pre-configured.
v.12.09 11-Jun-2021 - David Azarewicz
USBCALLS: Enhanced buffer management to accomodate some peculiarities
with certain non-compliant applications.
USBMSD: Added preliminary GPT support.
Standardized some RM strings.
v.12.08 30-Mar-2021 - David Azarewicz
USBD: Fixed problem configuring a device when multiple class drivers
claim it.
USBMSD: Fixed some buffer problems.
USBMSD: Cleaned up and fixed eject logic.
USBMSD: Fixed multi-LUN device attach.
USBMSD: Added support for disks larger than 2TB.
XHCI: Reworked transfer ring structure and management.
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