Universal Serial Bus Base Stack README

September 23, 2004

   OS/2 Device Driver Development
   IBM Solution Technologies
   Austin, TX

This README contains information on
the Universal Serial Bus (USB) Basic Device Driver Support (USBBASIC)
for OS/2. The following versions of OS/2 are supported by this package:

  OS/2 Warp 3,
  OS/2 Warp 4,
  OS/2 Warp Server for e-business,
  OS/2 Warp 4 Convenience Pack 1,
  OS/2 Warp 4 Convenience Pack 2,
  OS/2 Warp Server for e-business Convenience Pack 1,
  OS/2 Warp Server for e-business Convenience Pack 2.


CONTENTS
________

1.0 Introduction
2.0 USB-Basic Support
  2.1 Installation Instructions
  2.2 Adding the USB Basic stack to the OS/2 Installation Disks
      or Utility Diskettes
    2.2.1 Modifying Diskette 1
  2.3 Additional Driver  Parameters
    2.3.1 USBD driver parameters for BASEDEV=USBD.SYS
    2.3.2 USBHID driver parameters for BASEDEV=USBHID.SYS
    2.3.3 USBOHCD driver parameters for BASEDEV=USBOHCD.SYS
    2.3.4 USBUHCD driver parameters for BASEDEV=USBUHCD.SYS
    2.3.5 USBEHCD driver parameters for BASEDEV=USBEHCD.SYS
  2.4 Un-Install Instructions
  2.5 Recomendations
  2.6 Tested UHCI Adapters
  2.7 Tested OHCI Adapters
  2.8 Tested EHCI Adapters
  2.9 Hardware Requirements
3.0  Copyright and Trademark Information


1.0  Introduction
_________________

This USBBASIC.EXE driver package provides you with IBM's most current support
for Universal Serial Bus (USB) devices on the OS/2 Operating System. It contains 
support for three types of host controller interfaces:

  Open Host Controller Interface (OHCI)
  Universal Host Controller Interface (UHCI).
  Enhanced Host Controller Interface (EHCI).

This package is a prerequisite for all the other USB packages.

1.1  The USBBASIC.EXE file is a self extracting file that contains
     the following (15) files.

     -  HCIMONIT.EXE  Host Controller adapter(s) monitor utility
     -  HCIMONIT.SYM  Debug symbol file for HCIMONIT.EXE
     -  USBBASIC.TXT  This readme file
     -  USBD.SYS      USB Base Driver
     -  USBD.SYM      Debug symbol file for USBD.SYS
     -  USBEHCD.SYS   EHCI compliant USB host controller driver
     -  USBEHCD.SYM   Debug symbol file for USBEHCD.SYS
     -  USBHID.SYS    USB Human Interface Driver
     -  USBHID.SYM    Debug symbol file for USBHID.SYS
     -  USBINST.EXE   Installation executable that installs USB Base Stack
     -  USBINST.SYM   Debug symbol file for USBINST.EXE
     -  USBOHCD.SYS   OHCI compliant USB host controller driver
     -  USBOHCD.SYM   Debug symbol file for USBOHCD.SYS
     -  USBUHCD.SYS   UHCI compliant USB host controller driver
     -  USBUHCD.SYM   Debug symbol file for USBUHCD.SYS


2.0  USB-Basic Support
______________________

2.1  Installation Instructions
==============================

2.1.1  To use the USB driver files, you must first expand the USBBASIC.EXE package
       file into its (7) component files by performing the following:
       (a.) opening an OS/2 window 
       (b.) changing to the directory where USBBASIC.EXE is stored
       (c.) type USBBASIC at the OS/2 command prompt (this will extract the files).

       Continue with the USB Installation Instructions.

2.1.2  Execute the Host Controller Utility (HCIMONIT.EXE).
       It reports the number of UHCI, OHCI and EHCI Host controllers
       contained on your system. If no UHCI, OHCI or EHCI
       Host controllers are reported, you do not need to continue
       with the install. If you do not have a USB Host controller,
       you will not have any USB capability.

At the OS/2 command prompt, type USBINST.
USBINST installs the USB drivers or refresh the USB support currently on your PC.

If installing on an IBM 365 system add the parameter /FS to the USBUHCD entry
in CONFIG.SYS (for parameter explanation see section 2.3).

This completes the USBBASIC installation procedure. You must REBOOT your system.
You can install any of the other additional USB device drivers
after you have REBOOTed the system.


2.2 Adding USB Basic support to the OS/2 Installation Disks or Utility Diskettes
================================================================================

The USB Basic Device Support package provides the host controller interface
support for USB. It is a prerequisite for all USB device support
and must be the first USB drivers added to the Installation diskettes or
Utility diskettes and allows use of any USB devices when booting.
Individual USB device support packages can then be added to the Installation or
Utility diskettes. (eg. USB Diskette, USB CDROM, USB Keyboard, USB Mouse, etc.)
Refer to the readme included in the individual USB device support package for
instructions on updating the diskettes. If there is insufficient disk space on
the boot diskettes for the additional USB drivers, then follow the procedure
in the README.TXT found in the root directory
of your OS/2 system on the procedure to make additional space on the boot diskettes.  
When removing existing files from the Installation or Utility diskettes, make sure 
you remove or comment out the corresponding statements from both the CONFIG.SYS file 
and the SNOOPER.LST (if it exists) file. As a general rule, driver updates/additions
to the installation or utility diskettes will require driver file replacement or
additions and changes to both the CONFIG.SYS file and the SNOOPER.LST file.

2.2.1 Modifying Diskette 1

First determine the number and type of USB host controllers contained on your system
by performing the following instructions from section 2.1.2.

Add the following sequence of statements
to the CONFIG.SYS file on the Diskette 1:

  SET SAVECONNECT=1
  SET COPYFROMFLOPPY=1
  BASEDEV=USBD.SYS /I13

  BASEDEV=USBUHCD.SYS (one copy of this statement for each UHCI controller reported by HCIMONIT utility)

  BASEDEV=USBOHCD.SYS (one copy of this statement for each OHCI controller reported by HCIMONIT utility)

  BASEDEV=USBEHCD.SYS (one copy of this statement for each EHCI controller reported by HCIMONIT utility)

  BASEDEV=USBHID.SYS

Copy the following USB Device Drivers files to the Diskette:

  USBD.SYS    ( USB Base Driver )
  USBUHCD.SYS ( USB UHCI Host Controller Driver) 
  USBOHCD.SYS ( USB OHCI Host Controller Driver ) 
  USBEHCD.SYS ( USB EHCI Host Controller Driver ) 
  USBHID.SYS  ( USB Human Interface Driver ) 


For Warp 4 and Warp 3 the IDEDASD package from the OS/2 DDPak also should be
applied if installing OS/2 on a hard drive larger than 8.4GB.

Note: After installation from the modified diskettes remove the parameter /I13 from
      the statement BASEDEV=USBD.SYS and rearrange the USB device driver statements
      in the following order:
         1. USB Host Controller Driver statements like 
            BASEDEV=USBUHCD.SYS, 
            BASEDEV=USBOHCD.SYS,
            BASEDEV=USBEHCD.SYS
         2. USB Base Driver statement 
            BASEDEV=USBD.SYS
         3. Any Other USB Driver statements


2.3 Additional Driver Parameters
================================

The following are additional parameter that you can use in CONFIG.SYS
for the USB Basic Drivers:

2.3.1 USBD driver parameters for BASEDEV=USBD.SYS

PARAMETER       FUNCTION

   /V           Verbose Mode, displays driver information during OS/2
                initialization.


   /I13          /I13 parameter could be used to delay USB host
                 overtaking by the USB driver stack until after other
                 device drivers finish required initialization operations.
                 It could be used to boot from the USB floppy drive.

                 /REQ parameter controls USBD driver initialization:
                 driver at initalization time checks for a listed host
                 controller and fail to load if no
                 listed driver is loaded. The USB stack
                 supports the following parameter settings:

  /REQ:USBUHCD$	 USBD driver is loaded only if UHCI compliant host driver is loaded
  /REQ:USBOHCD$	 USBD driver is loaded only if OHCI compliant host driver is loaded
  /REQ:USBEHCD$	 USBD driver is loaded only if EHCI compliant host driver is loaded

  /REQ:USBUHCD$,USBOHCD$,USBEHCD$
                 USBD driver is loaded only if one of the OHCI/UHCI/EHCI compliant
                 host drivers is loaded. This most general form of parameter
                 and must be used in most cases. If you are using /REQ parameter
                 all statements "BASEDEV=USBUHCD.SYS", "BASEDEV=USBOHCD.SYS"
                 and "BASEDEV=USBEHCD.SYS" must be first in the sequence of
                 USB statements.

2.3.2 USBHID driver parameters for BASEDEV=USBHID.SYS

PARAMETER       FUNCTION

  /V            Verbose Mode, displays driver information
                during OS/2 initialization.

2.3.3 USBOHCD driver parameters for BASEDEV=USBOHCD.SYS

PARAMETER       FUNCTION

  /V            Verbose Mode, displays driver information during OS/2
                initialization.

  /FS           Forces the driver to stop the USB host during the OS/2 shutdown process.
                This parameter can be used to prevent POST (power on system
                test) failures on some hardware with a legacy keyboard.

2.3.4 USBUHCD driver parameters for BASEDEV=USBUHCD.SYS

PARAMETER       FUNCTION

  /V            Verbose Mode, displays driver information during OS/2
                initialization.

  /FS           Forces the driver to stop the USB host during the OS/2 shutdown process.
                This parameter can be used to prevent POST (power on system
                test) failures on some hardware with a legacy keyboard.

2.3.5 USBEHCD driver parameters for BASEDEV=USBEHCD.SYS

PARAMETER       FUNCTION

  /V            Verbose Mode, displays driver information during OS/2
                initialization.

  /FS           Forces the driver to stop the USB host during OS/2 shutdown process.
                This parameter can be used to prevent POST (power on system
                test) failures on some hardware with a legacy keyboard.


2.4  Un-Install Instructions
============================

Delete or remark out the following lines from CONFIG.SYS file starting with
   BASEDEV=USBD.SYS
   BASEDEV=USBHID.SYS
   BASEDEV=USBOHCD.SYS
   BASEDEV=USBEHCD.SYS
   BASEDEV=USBUHCD.SYS
and delete the following files from the \os2\boot directory:
   USBD.SYS
   USBHID.SYS
   USBOHCD.SYS
   USBUHCD.SYS
   USBEHCD.SYS

Safely shut down and then re-boot your system to have those changes take affect.


2.5 Recommendations when not using any USB devices
==================================================

If you are running OS/2 on an IBM ThinkPad or other notebook system and you
do not use any USB devices then you may want to "remark" out the USB device driver
statements in your CONFIG.SYS file. You can remark out a USB device driver by
preceding the line in config.sys with "rem " or "REM ". This action may lower
your notebook's system power requirements and may help to extend the battery's
operating life.


2.6 Tested UHCI Adapters
========================

The following are UCHI Adapters that have been tested:

D-Link DU-A2 PCI USB controller

Intel 82371AB/EB PCI to USB Universal Host Controller

Intel 82801AA USB Universal Host Controller

Intel 82801CA/CAM USB Universal Host Controller


2.7 Tested OHCI Adapters
========================

The following are OCHI Adapters that have been tested:

Belkin USB BusPort F5U005

Entrega PCI4U 4Port USB Upgrade

Sis 7001 PCI to USB Open Host Controller


2.8 Tested EHCI Adapters
========================

The following are ECHI Adapters that have been tested:

Adaptec USB2Connect Adapter Card AUA-3100LP

Intel 845 based motherboard with built-in USB 2.0 chipset

USB 2.0 Hi-Speed PCI Card F5U220


2.9  Hardware Requirements
==========================

Any PCI to USB Host Controller bridge compatible with the 
USB version 1.1 or 2.0 specifications and using at least one of the
UHCI, OHCI or EHCI interfaces.


3.0  Copyright and Trademark Information
________________________________________

The following terms, are registered trademarks of the International 
Business Machines Corporation in the United States, or other countries,
or both:
o IBM
o OS/2
o Warp

Other company, product, and service names may be trademarks or service
marks of others.

THE INFORMATION PROVIDED IN THIS README IS PROVIDED "AS IS" WITHOUT 
WARRANTY OF ANY KIND.  IBM DISCLAIMS ALL WARRANTIES, WHETHER 
EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION, THE IMPLIED 
WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY 
WITH RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING
THIS DOCUMENT, IBM GRANTS NO LICENSES TO ANY PATENTS OR COPYRIGHTS.

(C) Copyright IBM Corporation, 2001, 2004. All rights reserved.
U.S. Government Users Restricted Rights -- Use, duplication or 
disclosure restricted by GSA ADP Schedule Contract with IBM Corp.