OS/2 NDIS driver for EtherWORKS 3 --- Release Notes

EWRK3.OS2 Driver Version V1.03, 7852 bytes, 09-06-94 1:54p

    This version of the driver fixes the following bugs found in V1.01:
        * EEPROM checksum error on some PCs
        * Trap D after binding on some PCs running IBM's TCP/IP

    When installing LAPS please specify the path \IBMCOM\MACS as the
    location of the EtherWORKS 3 NIF and driver files.

NOTE: When configuring a Revision C EtherWORKS 3 adapter, it is important to
      set the IRQ jumper on the adapter to match the IRQ level set with the
      NICSETUP utility.  The NICSETUP utility instructs users to do this upon
      exiting the program.  If the jumper is not set correctly, adapter
      interrupts are not delivered to the host system.  The V1.01 OS/2 NDIS
      driver does not detect this condition, and appears to load and bind
      normally.  Once loaded, however, no network connections may be
      established, and no activity may be observed on the adapter LED.
      To correct this situation, take the following steps:

      1. Run NICSETUP to verify the IRQ level for which the adapter has
         been configured.  Ensure that this IRQ is not in use by another
         device in the system.

      2. Shutdown the system, and disconnect the power.  Visually verify
         that the jumper setting on the EtherWORKS 3 adapter matches the
         IRQ level set with NICSETUP. 

      3. Reconnect the power to the system, and restart. 

*******************
* Basic Operation *
*******************

The driver is loaded in CONFIG.SYS using the DEVICE directive.  For example:

     DEVICE=C:\EWRK3.OS2

This instructs the operating system to load the device driver.  Upon loading a
sign-on banner similar to the following is displayed:

     EtherWORKS 3 NDIS MAC Driver V1.01
     (C) Copyright 1993 Digital Equipment Corporation.
     EISA SLOT: 02  IRQ: 0B  BASE: D8000  SIZE: 2K  ADAPTER: DE205-AB

The EISA SLOT: field indicates the EISA slot number in which the adapter is
located.  In the event that ISA mode is used, this field appears labeled
'IO:' followed by the four digit ISA IO Base address in hex.  This field
gives a quick indication of the mode that the adapter is running in.  If it's
in EISA mode, you'll see the EISA slot number.  If it's in ISA mode, you get
the IO base address.

IRQ: is the interrupt request level in hex.  This may be 05, 0A, 0B, or 0F.

BASE: is the shared RAM base address.  This is a 20-bit physical 80x86 address
in hexadecimal, and may be in the range of physical addresses allowed by the
NICSETUP utility provided with the EtherWORKS 3 adapter. 

SIZE: indicates the size of memory for which the adapter is configured.  For 
this driver, the adapter MUST be operated in 2K mode.  Consult the documentation
with the NICSETUP utility for information regarding the configuration of the
adapter.

ADAPTER: identifies the model and rev of the adapter being used.

The banner may be followed by a number of warning messages.  These messages are
detailed in the section titled 'Error Messages' below. 

Up to four instances of the driver may be loaded at once.  An attempt to load a
fifth instance produces an error.  For more information on multiple adapter
support, see the section titled 'multiple adapter support' below. 

***************************
* PROTOCOL.INI Parameters *
***************************

DRIVERNAME      required

     This parameter is required of all NDIS drivers.  This driver uses the name
EWRK3n$ where n is a number from 0-3 based on the number of drivers installed.
For more information on multiple adapter support, see the section titled
'multiple adapter support' below.

     For single adapter setups, this parameter should look like:

     DRIVERNAME=EWRK3$

IOADDRESS     optional      legal values 0x100 to 0x3E0

     This parameter is used to specify the base I/O address of the adapter 
when it is running in ISA mode.  It is not necessary to specify this parameter
when running in a single adapter system.  The driver locates the adapter
automatically whether it is in ISA or EISA mode.  If you choose to specify
this parameter it is validated.  If an EtherWORKS 3 adapter cannot be
located at the specified address, an error message is printed, and the driver
load fails. 

     Example:

     IOADDRESS=0x220

EISASLOT     optional      legal values 1 to 15

     This parameter is used to specify the EISA slot number of the adapter 
when it is running in EISA mode.  It is not necessary to specify this parameter
when running in a single adapter system.  The driver locates the adapter
automatically whether it is in ISA or EISA mode.  If you choose to specify
this parameter it is validated.  If an EtherWORKS 3 adapter cannot be
located in the specified slot, an error message is printed, and the driver
load fails. 

     Example:

     EISASLOT=4


NETADDRESS   optional    String of twelve ASCII encoded HEX digits.

     This parameter is used to override the MAC address of the adapter.
The address must be specified as a string of twelve ASCII encoded HEX digits.

     Examples:

     NETADDRESS="AA0004001234"      Correct

     NETADDRESS="08002B123456"      Correct

     NETADDRESS=08002B123456        WRONG. PROTMAN.SYS will parse this as a 
                                    number, and NOT a string. Must use quotes.

     NETADDRESS="08-00-2B-12-34-56" WRONG. Do not use the dashes commonly used
                                    when expressing Ethernet addresses. 

FLAGS        optional      legal values 0 or 2

     This parameter is used to modify operation of the driver for particular
stack or application implementations.  Each bit within this value may have
a meaning.  Currently only bit 1 is defined.

        Bit 1   1 = OpenAdapter with Receives Enabled
                0 = OpenAdapter with Receives Disabled (default) 
                                
                The NDIS 2.0.1 specification calls for the OpenAdapter
                procedure to leave receives disabled.  Some stacks require
                receives to be enabled at this point.  Setting bit 1 would
                require a value of 2 for the FLAGS keyword.
     
     Example:

     FLAGS=2


******************
* Error Messages *
******************

During Initialization, any one of the following error messages may appear.

EEPROM Checksum Error.

     The EEPROM which holds the adapter configuration set by NICSETUP has
     failed a checksum test.  The information contained in it is invalid.
     Run the NICSETUP utility to reset the adapter configuration.  Driver
     load fails. 

Could not locate adapter.

     The driver, in attempting to probe for the adapter automatically, could
     not locate one.  Driver load fails. 

Invalid IOADDRESS in PROTOCOL.INI.

     User supplied an invalid IOADDRESS in PROTOCOL.INI.  Correct PROTOCOL.INI
     by specifying correct IO Base address if in ISA mode, remove statement
     if in EISA mode.  Driver load fails. 

Invalid EISASLOT in PROTOCOL.INI.

     User supplied an invalid EISASLOT in PROTOCOL.INI.  Correct PROTOCOL.INI
     by specifying correct EISA slot number if in EISA mode, remove statement
     if in ISA mode.  Driver load fails. 

Driver Instance Limit Exceeded.

     Attempted to load 5 or more instances of the EWRK3 driver.  Edit CONFIG.SYS
     to reduce the number of driver instances to a maximum of 4.  Driver load
     fails.  This failure does not effect the load status of other copies of
     the driver already loaded. 

Could not open Protocol Manager.

     Driver was unable to open PROTMAN$.  Ensure that your networking software
     is correctly installed, and that the DEVICE statement used to load
     PROTMAN in CONFIG.SYS comes BEFORE the device statement to load the
     EWRK3 driver.  Driver load fails. 


Could not register driver with Protocol Manager.

     Driver was unable to register with PROTMAN$.  No corrective action. 
     Driver load fails. 

Could not close Protocol Manager.

     Driver could not close the PROTMAN$ driver after successfully registering 
     itself.  No corrective action.  Driver load fails. 

Adapter must be configured for 2K memory.

     Driver requires adapter to be configured for 2K memory support.  32K and
     64K modes are not supported.  Run NICSETUP to correct adapter
     configuration.  Driver load fails. 


Invalid keyword in PROTOCOL.INI.

     Warning message.  User has specified an invalid keyword in PROTOCOL.INI
     for this driver.  Remove the invalid entry.  Driver load continues. 


PROTOCOL.INI keyword has too many parameters.

     Warning message.  User has specified too many parameters for a valid
     PROTOCOL.INI keyword.  Correct the parameters.  Driver load continues. 

PROTOCOL.INI parameter too low, ignored. 
PROTOCOL.INI parameter too high, ignored.

     Warning message.  User has specified a value that is out of range for a
     valid PROTOCOL.INI keyword.  Correct the offending parameter.  Driver load
     continues. 

PROTOCOL.INI string parameter too long, ignored.

     Warning message.  User has specified a value that is too long for a valid
     string field in PROTOCOL.INI.  Correct the offending string.  Driver load
     continues if the offending parameter is not DRIVERNAME.  If DRIVERNAME is
     in error, the driver load fails. 

Could not allocate GDTs.

     Could not allocate GDTs from OS/2.  No corrective action.  Driver load
     fails. 

****************************
* Multiple Adapter Support *
****************************

When using multiple EtherWORKS 3 adapters in a single system, it is necessary
to identify them uniquely in terms of both the driver name, and the location
of the card in EISA or ISA space.  Example PROTOCOL.INI follows:

[NETBEUI]
   DRIVERNAME=EWRK3$
   EISASLOT=2

[DECNET]
   DRIVERNAME=EWRK31$
   EISASLOT=3

[TCPIP]
   DRIVERNAME=EWRK32$
   IOADDRESS=0x220

This PROTOCOL.INI stub is for a system with three EtherWORKS 3 adapters.  The
adapter that is logically called 'NETBEUI' is bound to the adapter in EISA
slot #2, and has the DRIVERNAME EWRK3$.  The adapter that is logically called
'DECNET' is in EISA slot #3, and has the DRIVERNAME EWRK31$.  The adapter
that is logically called 'TCPIP' is, for some ridiculous reason, in ISA space,
at IO address 220 hex.  It is called EWRK32$.

