              Cypress DOS USB Storage Driver v4.4 Release Notes 

Date: October 9, 2002 
 
Purpose 
 
General release of the Cypress DOS USB Storage Driver which includes support for UHCI, OHCI and EHCI Host 
Controllers for the SL11R-IDE, FX/FX2, and ISD chipsets.  It has been built to support all combinations of USB 
ZIP, Super Floppy/HiFD, MO, HD, and CD-ROM Drives. 
 
Test Environment: 
     Ø Four different versions of DOS were tested, which included: DOS 6.22, Windows 98SE DOS, Windows 
        98ME DOS, and Windows XP DOS.  
     Ø Run on 10 different PCís which incorporated Intel, VIA and NEC EHCI controllers; as well as various USB 
        1.1 chipsets and configurations.  
     Ø CY bridge sets that were tested: ISD200, ISD300A1, CY AT2, CY4611, SL11R-IDE.  
     Ø Device types that were tested: HDD (2.5î & 3.5î), CDRW, DVD-ROM, MO, ORB, CF, ZIP and HiFD. 
 
 
New features and enhancements 
 
     1.  Enhanced support for extended INT13 function 48 
         
        Previous support of INT13 function 48 (Extended Get Drive Parameter) only included support for v1.x, the 
        first 30 bytes.  This was enhanced to support up to v3.0, and will now return ìUSBî as the Interface Type. 
         
     2.  New EMUIRQ command-line option 
         
        Added this command-line which forces software emulation of IRQís in order to solve compatibility issues 
        on some systems. 
         
         
Changes from previous version 
 
     1.  Default maximum transfer size from 4K to 64K. 
         
        Changed the default maximum transfer size from 4K to 64 to improve the default performance of the 
        driver, although this will increase the default memory requirements.  The XFERSIZE command-line option 
        could be used to change the current default. 
          
     2.  Maximum number of ports supported per Host Controller from 4 to 5. 
         
        Changed to maximum number of ports per Host Controller to 5 in order to support some EHCI host 
        controllers. 
          
     3.  Removed support for Vendor Specific implementation of ATA devices on the ISD200. 
         
        The general release of the Cypress DOS USB Storage driver will no longer support vendor specific 
        implementations of ATA devices using the ISD200. 


Cypress Semiconductor Corporation       3901 North First Street       San Jose       CA  95134      408-943-2600 


                                                                                                                        
Cypress DOS Driver Release Notes  


          
     4.  Removed the APM command-line option which only applied to ATA devices attached to the 
        ISD200. 
         
        The APM command-line options was specific to Vendor Specific implementations of ATA devices using 
        the ISD200, and is no longer supported. 
          
     5.  Added the UBNU command-line option into documentation. 
         
        The UBNU command-line option was previously left out of the documentation.  Specifying this command-
        line option will cause the Cypress DOS USB Storage driver to unload if the boot device is not USB.  
          
     6.  Corrected the default value of the VERBOSE command-line option in the documentation.  The 
        correct default value should have been 2. 
         
     7.  Corrected the documentation for the WAIT command to indicate that all 4 letters are required.  
        Previously, it indicated WAI would be acceptable abbreviation but that was incorrect. 
         
     8.  Corrected the documentation for the MEMPOOL command.  Previously it indicated the valid 
        values were 1 thru 128, this was changed to display 0 thru 192. 
          
         
Bugs fixed 
 
     1.  Fixed an issue with supporting multiple primary partitions. 
         
        Previously, supporting multiple primary partitions on a USB Hard Drive was not working.  This issue has 
        been addressed in this release. 
         
     2.  Fixed several compatibility issues with the Intel EHCI controller. 
         
        Several issues cause unstable support for the Intel EHCI controller.  These issues have been addressed 
        in this release. 
         
         
Known Issues 
 
     1.  Only able to access the first session of a multi-session CD. 
         
        Only the first session of a multi-session CD will be accessible.  This issue will be addressed in a future 
        release. 
         
     2.  USB storage devices attached to a hub during boot may not show up in startup messages. 
         
        The startup messages during boot may not indicate a USB drive is attached.  This problem can be 
        resolved by using the DDWAIT or CDWAIT command-line options.  This issue will be evaluated at a future 
        release. 
         
     3.  EHCI controllers having an external HS hub attached and a USB storage device connected to the 
        root port at boot time can cause the system to hang if unplugged from the root port and plugged 
        into the HS hub. 
         
        This issue will be addressed in a future release. 

                                                              2 


                                                                                                
Cypress DOS Driver Release Notes  
 
Release Version Modifications 
 
Release v4.3: 
     §    New DDWAIT command-line option 
     §    New DRIVES and MAPDRIVES command-line parameters 
     §    Modifications to the documentation 
      
Release v4.2: 
     §    First general release 

                                                 3 


                                 Cypress DOS Driver User's Guide

                                                                ·    VER[BOSE][=x], Enables status messages.  
Getting Started                                                      Optional valid values for .x. are 0, 1, and 2.  
                                                                     Value of 0 disables support of status 
                                                                     messages.  Value of 1 enables text based 
Included Files                                                       status messages.  Value of 2 enables a pop-
The DUSE USB Driver software is delivered as a                       up window, which displays the status 
single executable (.EXE) file, DUSE.EXE.  The                        messages.  Default value is 2.  
DUSE.EXE file supports USB hardware that meets 
the Open Host Controller Interface (OHCI)                       ·    WAIT=x, Sets the number of seconds to wait 
specification, the Universal Host Controller Interface               for a Pop-Up Windows to be displayed 
(UHCI) Specification, and the Enhanced Host                          before automatically removing it.  Valid 
Controller Interface (EHCI) specifications.                          values for .x. are 0 through 255. Default 
                                                                     value is 3.  Only valid if VERBOSE is set to 2 
Device Support                                                       (Pop-Up status messages enabled).  
This version provides support for the following Mass            ·    DRI[VES]=x, Sets the number of USB drives 
Storage devices:                                                     allowed, where .x. is the number of drive 
      ·    USB ZIP drives                                            letters.  Valid values for .x. are 0 through 3.  
      ·    USB Hard disk                                             Value of 0 disables support for USB drives. 
      ·    USB Super Floppy/HiFD drives                              Default value is 1.  
           §    Some floppy disks require a default             ·    NOD[RIVES], Disables support for USB 
                sector size of 1024 or 2048 bytes.  See              drives.  This will override the DRIVES 
                the SECTORSIZE command line                          parameter.  
                parameter for details on how this can be 
                set.                                            ·    NOC[DROM], Disables support for USB CD-
      ·    USB CD-ROM                                                ROM drives.  
      ·    USB MO drives                                        ·    MEM[POOL]=x, Sets the size of additional 
           §    640M and 1.3G disks require a default                memory pool allocated, where .x. is the size 
                sector size of 2048 bytes.  See the                  in Kbytes.  DUSE performs a runtime 
                SECTORSIZE command line parameter                    calculation, based on the number of 
                for details on how this can be set.                  controllers, the size of transfers, etc., to 
                                                                     determine the optimal memory pool size.  
                                                                     Setting MEMPOOL adds to the memory pool 
Installing the DOS Driver                                            size. Valid values are 0 thru 192.  Default 
                                                                     value is 2. 
Copy the driver file                                            ·    XFER[SIZE]=x, Sets the maximum allowed 
Create a directory on your boot device to store the                  transfer buffer size, where .x. is the transfer 
executable driver files.  As an example:                             buffer size in Kbytes.  Increasing the transfer 
  C:\>  mkdir duse                                                   buffer size will increase performance, but 
  C:\>  copy sourcefiles c:\duse                                     also requires a larger memory pool. Valid 
                                                                     values for .x. are 1 thru 64.  Default value is 
Config.sys                                                           64.  
Add the following text to your config.sys file:                 ·    SEC[TORSIZE]=x, Sets the default sector 
DEVICE=C:\DUSE\DUSE.EXE [options]                                    size for USB drives, where .x. is the default 
                                                                     sector size in bytes.  Valid values for .x. are 
Command-Line Parameters                                              512, 1024, and 2048.  Default value is 512.  
DUSE allows the following command line                           
parameters.  Only the first characters before [.] are 
required.                                                        
  

Cypress Semiconductor Corporation       3901 North First Street       San Jose       CA  95134      408-943-2600 
                                                                                                       April 17, 2002 


                                                                                                                               
                                                                          Cypress DOS Driver Userís Guide  


·    INT[13], Enables INT13 support for fixed                            space.  The description of EBAR applies to 
     disks.  This adds additional support for some                       UBAR, but the valid address range is 
     disk utilities like FDISK.                                          0x0400 through 0xF400.  

·    DMA[SAFE], Allocates a DMA safe buffer                              The Default value for UBAR is 0x0600. 
     which will be used for data transfer.  This                    ·    DDW[AIT][=x], Specifies that DUSE 
     parameter is required for applications that                         initialization will NOT complete until the first 
     might use buffers allocated in extended                             USB Disk Drive has been mounted, OR until 
     memory.                                                             x seconds have elapsed.  Valid values for .x. 
·    NOU[HCI], Prevents initialization of UHCI                           are 0 through 30.  x=0 is a special case for 
     controllers.                                                        DUSE as it instructs DUSE to wait forever 
                                                                         for the first USB Disk Drive to be mounted, 
·    NOO[HCI], Prevents initialization of OHCI                           OR until the ESCAPE key is pressed.  If x is 
     controllers.                                                        not specified, it defaults to x=0.  
·    NOE[HCI], Prevents initialization of EHCI                      ·    CDW[AIT][=x], Specifies that DUSE 
     controllers.                                                        initialization will NOT complete until the first 
·    UHCN=x, Specifies that DUSE will initialize a                       USB CDROM device has been mounted, 
     maximum of x UHCI controllers.                                      OR until x seconds have elapsed.  Valid 
                                                                         values for .x. are 0 through 30.  x=0 is a 
·    OHCN=x, Specifies that DUSE will initialize                         special case for DUSE as it instructs DUSE 
     a maximum of x OHCI controllers.                                    to wait forever for the first CDROM device to 
·    EHCN=x, Specifies that DUSE will initialize a                       be mounted, OR until the ESCAPE key is 
     maximum of x EHCI controllers.                                      pressed.  If x is not specified, it defaults to 
                                                                         x=0. 
·    LATE[INIT], Enables late initialization. When 
     using late initialization, the driver is loaded                ·    CDD[EVICE]=<device name>, Allows you to 
     during the config.sys phase of DOS                                  specify the name of the USB CDROM device 
     initialization, but it is not enabled until the                     driver.  The default is USBCDROM. 
     INIT command-line is invoked, typically near                   ·    VFLOP[PY], Creates a virtual image of the 
     the end of autoexec.bat initialization.  See                        boot floppy at initialization.  If it is determined 
     the sections on Late Initialization and Using                       that the boot devices is not a recognized 
     DUSE as a Program, Command Line                                     floppy format, VFLOPPY will fail. 
     Parameters below for more information on 
     late initialization.                                           ·    EMU[IRQ], Specifies that DUSE will emulate 
                                                                         IRQ  usage.  This solves compatibility issues 
·    EBAR=x, Specifies the address offset where                          on some systems. 
     the EHCI Base Address Register (BAR) 
     should be placed in memory.  .x. must be a                     ·    UBNU, Specifies that DUSE will unload if the 
     four digit hexadecimal number with a prefix                         boot device is not USB.  If UBNU is 
     of .0x..  i.e. to place the EHCI BAR at                             specified, DUSE will execute INT 13h, fcn 
     0xE0000, the correct command line switch                            48h and check for the existence of "USB" at 
     would be EBAR=0xE000.  The acceptable                               offset 28h in the drive parameters buffer for 
     addresses are in the range of 0xA000                                the boot device.  Then if the INT 13h, fcn 
     through 0xF400.                                                     48h function succeeds and "USB" is found at 
                                                                         offset 28h, DUSE will continue to load.  If the 
     The Default value for EBAR is 0xD000.                               INT 13h, fcn 48h function fails, or if "USB" is 
·    OBAR=x, Specifies the address where the                             not found at offset 28h, DUSE will abort 
     OHCI BAR should be placed in memory.                                initialization and unload completely from 
     The description of EBAR (above) applies to                          memory.  If UBNU is not specified, the check 
     OBAR.                                                               is never made and DUSE will continue to 
                                                                         load as usual. 
     The Default value for OBAR is 0xD100.                      
·    UBAR=x, Specifies the I/O address where 
     the UHCI Registers are mapped into PCI I/O 

                                                         2 



The following is an example of using the DOS driver                      device name of ìUSBCDROMî, the command line 
command line parameters.  Consider this line added                       will look like:  
to your config.sys file:                                                   
                                                                         MSCDEX /D:USBCDROM  /S  /M:15 /V  
DEVICE=C:\DUSE\DUSE.EXE VERBOSE                                            
      DRIVES=2 XFER=8 SEC=2048 NOCD                                      MSCDEX will return the drive letter where the 
                                                                         USBCDROM media is mounted.   
This example will:   
      ·     Display pop-up status messages                               Late Initialization  
      ·     Setup two USB drives                                         When DUSE is loaded as a driver in config.sys, 
      ·     Set the transfer size to 8K                                  using the LATE[INIT] option, it must be initialized 
      ·     Set the default sector size to 2048 bytes                    prior to using any USB devices.  The late initialization 
      ·     Disable CD-ROM support                                       is performed by invoking DUSE again, this time from 
                                                                         a command prompt or from a batch file, and 
                                                                         specifying INIT on the command line.  
Using the Driver                                                          

Loading the Driver                                                       Using DUSE as a program 
After editing the config.sys file, reboot the DOS 
system.  The driver will be loaded at boot time and                      Command Line Parameters  
will display a message similar to the following:                         The following parameters are recognized when 
      DUSE version X.X  Build XXXX                                       running DUSE as a program (from the command 
      DOS USB Stack with USB Storage Extensions                          prompt or from a batch file, including 
      Copyright Cypress Semiconductor, 2000-20002  
                                                                         AUTOEXEC.BAT).  
      EHCI USB Controller initialized (BASE 0xXXXX[, IRQ XX])              
      OHCI USB Controller initialized (BASE 0xXXXX[, IRQ XX])                  ·    INIT, This causes the DUSE executable to 
      UHCI USB Controller initialized (I/O 0xXXXX[, IRQ XX])                        communicate an initialization command to 
                                                                                    the DUSE device driver.  Host controllers will 
                                                                                    be initialized and any recognized devices on 
USB Hub                                                                             the bus will be enumerated.  
A USB Hub provides additional down stream ports to                                   
allow multiple devices to be connected to a single                                  Example: C:\duse init 
root hub.  As additional devices are attached to the                                 
downstream port of a USB Hub, the devices will be                              ·    DRIVES, This causes the DUSE executable 
started in the same fashion as devices attached                                     to display a list of all drive letters currently 
directly to the root hub.                                                           allocated to the DUSE driver.  Drive letters 
                                                                                    for CD-ROM devices will not be shown, this 
Mass Storage                                                                        is because the DUSE driver does not assign 
When attached to a USB port, a USB Mass Storage                                     drive letters for CD-ROM drives. 
device will automatically mount and get assigned the                                 
next available drive letter.  For example, if a single                              Example: C:\duse drives 
drive exists on a DOS system C:, and a USB drive is                       
inserted, then the DUSE stack will assign D: to the                            ·    MAPDRIVES <batch file path>, This causes 
USB driver.  The drive will be accessible in the same                               the DUSE executable to create a batch file 
manner as regular drives in a DOS system.  If the                                   which sets environment variables for all drive 
device is removed and then reinserted, the DUSE                                     letters currently allocated to the DUSE 
will reassign the D: drive letter to the USB Mass                                   driver.  The format of the environment 
Storage device and the device will become                                           variable will be DUSEDRV[x], where ëxí 
accessible once again.                                                              begins with 0 and is incremented for each 
                                                                                    additional drive letter.  If the batch file 
USB CD-ROM drives require loading the Microsoft                                     provided already exists, it will be overwritten. 
CD Extension (MSCDEX) driver.  Assuming a default                               

                                                                   3 


                                                                                               
                                                               Cypress DOS Driver Userís Guide  

The DUSELDR Utility 

Loading DUSE.EXE from the command line  
 The DUSELDR utility will load DUSE.EXE from the 
command line instead of loading it in the config.sys 
file.  Loading DUSE.EXE from the command line 
would look as follows:  
  
C:\> C:\DUSE\DUSELDR.EXE C:\DUSE\DUSE.EXE 
VERBOSE XFER=64 NOCD 

                                                         4



Document Revision History 
     Revision #     Date          Comments 
     1.0            4/17/2002     Initial public version, covering DUSE 4.2 
     1.1            6/3/2002      Corrected errors in documentation, Updates to command-line parameter sections 

                                                             5 


