Metropoli BBS
VIEWER: readme.txt MODE: TEXT (ASCII)
5  NT DRIVER FOR ICL ETHERTEAM16I



5.1  Current Status of the Driver


5.2  Installation of the Driver


The NT drivers for EtherTeam16i can be found from the  subdirectory  NDIS3\NT
have the following file names:

    ETH16I.SYS    NT Driver
    OEMSETUP.INF  OEM Setup File
    ETH16I.HLP    OEM Setup Help File


To install the NT Driver for ICL EtherTeam16i, do the following:

 1. If  needed,  use the EtherTeam16i Configuration Utility to check that the
    I/O Base Addresses and IRQ Numbers of the adapters to be installed do not
    conflict with any other adapter(s).

 2. Use the Windows NT Control Panel to install the  driver.  Give  the  path
    A:\NDIS3\NT when prompted for the OEM Driver diskette.

    NOTE!  The  OEMSETUP.INF  (OEMSETNT.INF)  can  be found also from the OEM
    Driver Disk root, but in case of "Update" you MUST give  the  whole  path
    name.


     1. Select  the  I/O  Base Address according to the EEPROM Setup value of
        your adapter. The default AUTO means that  the  adapter  is  searched
        from the possible I/O Base Addresses.

        NOTE!  The I/O Base Addresses can be defined as AUTO although several
        adapters are installed. In this case, adapter instances are  searched
        and allocated in the following order:

          0240, 0260, 0280, 02A0, 0300, 0340, 0380

        NOTE!  In  case of several adapters installed, do not use any "mixed"
        definitions  for  the  I/O  Base  Address.  Either  define  them  all
        explicitly or leave them all AUTO.


     2. Select  the  Interrupt  Number according to the EEPROM Setup value of
        your adapter. The default AUTO means that the Interrupt  Number  from
        the Setup EEPROM is used.

        NOTE!  If the Interrupt Number is given explicitly, it can't override
        the Setup value on the EEPROM but must match with it.


     3. Select  the  Transceiver.  The  value  SETUP  here  means  that   the
        transceiver  definition  from  the  Setup EEPROM is used (Its factory
        setting is AUTO).

        If the transceiver is given explicitly (BNC, TP or AUI), then  it  is
        used.  Otherwise  (AUTO) the driver detects automatically the network
        connection (provided that the cable is connected  while  booting  the
        system).



5.3  Advanced Installation Features


There  are  some  keywords  detected by the driver which do not appear in the
Network from Control Panel, but can be affected by  the  NT  Registry  Editor
(REGEDT32).

   NOTE!  These are for special purposes only, and are not required in normal
   installation. In fact the StagedReceive (see below) is the only one  which
   may be needed in some situations.


To  define these parameters, start REGEDT32 from APPLICATIONS and then select
the parameters of EtherTeam16i Driver by selecting the driver parameters from
the menu as follows:


  HKEY_LOCAL_MACHINE on Local Machine
    SYSTEM
      CurrentControlSet
        Services
          ETH16I01
            Parameters


If more adapters are installed, then you must select the  parameters  of  the
adapter instance concerned, for example of ETH16I02. You can change the value
of a parameter by selecting the parameter field and giving its new value.


The   current  release  of  the  driver  contains  the  following  parameters
selectable by the REGEDIT32:


 1. TransmitBufferSize

    Specifies the amount of Adapter Buffer Memory (as  kbytes)  reserved  for
    transmit packets.

         Possible values : 4, 8 or 16

         Default : 8

    This may be used to define 16k of transmit buffer size in cases where the
    adapter  is  supposed  to do a lot of transmissions compared to receives.
    Still it is unclear if any significant improvement in performance can  be
    achieved.


 2. NetworkAddress

    Overrides  the  permanent  network  address  of  the card. The value is a
    hexadecimal string of 12 digits, e.g. 00004B010203.

         Possible values : Any non-multicast address.

         Default : The burned-in address of the adapter.


 3. MultiProcessor

    May be used to tell the driver that it  can  suppose  to  be  running  in
    SingleProcessor  environments.  When  accessing  this,  the first adapter
    instance (ETH16I01) must be selected. The definition is then  applied  to
    all other adapter instances, if any.

         Possible values : Yes (MultiProcessor) or No (SingleProcessor)

         Default : Yes (Multiprocessor)

    The  NT  driver  has  been  written  to  work  properly in MultiProcessor
    environments, which causes a little more overhead to  it.  This  overhead
    may be decreased by the Singleprocessor definition. However it is unclear
    if any significant improvement in performance can be achieved.

       NOTE!  Must  be  used with care, because using SingleProcessor mode in
       Multiprocessor enviroments causes fatal error conditions.


 4. StagedReceive

    Specifies the default receive stage buffering when multiple protocols are
    bound.

         Possible values : No (NonStaged) or Yes (Staged)

         Default : No (NonStaged)


    NDIS3 specification requires that the MAC driver must be prepared to copy
    the packet more  than  once  per  receive  event.  Thus,  adapters  (like
    EtherTeam16i)  which  do  not support reading the packet from the adapter
    several times, must copy the packet into a temporary staging buffer  when
    multiple protocols are bound.

    Because  of  performance,  EtherTeam16i  NT Driver attempts to avoid this
    staging, and switches to the staged mode only if necessary. The following
    is a description of how the driver selects the actual  receive  mode  (if
    there is only one binding, the driver always uses non-staged mode):


     1. When  a  binding  is  opened, the driver initially selects the staged
        mode. It also sets a certain threshold value for the number of  first
        packet reads. The purpose of this value is to give the driver time to
        detect whether it is "safe" to start using non-staged mode.

     2. If  two  bindings  attempt to copy the same packet during these first
        packet reads, the driver stays  in  the  staged  mode,  otherwise  it
        switches to the non-staged mode.

     3. If two bindings attempt to copy the same packet when the driver is in
        the  non-staged  mode,  the  driver  encounters  an error. The packet
        cannot be copied another time and the binding is informed about  this
        with  an  error code (the error info is also written to the log). The
        driver then switches back to the staged mode, and all  the  following
        packets are then received in the staged mode.

     4. The  driver stays in the selected mode until the binding condition is
        changed. If the binding which caused the staged mode  is  closed,  or
        there  is  only  one  binding  left, the non-staged mode can again be
        used.


    The method described above is supposed to work  reliably,  provided  that
    the  protocols  can  recover reasonably from loosing a single packet just
    before switching to the staged mode. But if any problems are supposed  to
    be due to loosing the packet, the driver can be set to the staged mode as
    default (but at the cost of performance).


    The  need  for  selecting permanently the staged mode can be checked from
    the Event Log (see section 5.4 "Driver Error Codes", Error Code 0016).



5.4  Driver Error Codes


The driver writes  into  log  information  about  initialisation  or  runtime
errors.  Use  the Event Viewer from Administrative Tools to view the contents
of the Log. The texts appearing in the Description Field of Event Detail  are
according  to  the  NDIS  standard  messages. The value N in the label of the
message (e.g. Eth16i0N) tells the adapter  instance  which  has  created  the
message.

Because  all  possible  driver  errors  cannot  be described directy with the
standard messages, the log also contains more detailed error info  in  binary
format. To get it, view the Data Field as Words. The error code (word) can be
found from offset 002Ch.


The following is is a list of the errors detected by the driver and stored to
the  Event  Log.  The  first  3  of  these  errors are detected during driver
initialisation only , but the last 3 even runtime. There is a limitation  for
the number of how many times the runtime errors are logged.


 1. Eth16i0N : Could not find an adapter.

    The  driver  could  not  find  the  adapter  from  the specified I/O-Base
    address, or from any possible address (if AUTO). The binary error code in
    the Event Log is:

      0011 = Adapter Not Found

    Check that there is no conflict  in  the  definition  of  the  Base  I/O-
    address,  and  that  it  does  not  overlap with any other adapter (range
    20h!).


 2. Eth16i0N : Has determined that the driver is not functioning properly.

    The driver could not be  properly  started.  Probable  reasons  for  this
    message  are:  EEPROM checksum error, IRQ conflict, Network not connected
    (when the Transceiver  was  AUTO),  or  the  EtherCoupler  could  not  be
    started. The binary error code in the Event Log is:

      0012 = EEPROM Checksum Error
      0013 = IRQ Conflicting With Setup
      0014 = Network Not Connected.
      0015 = EtherCoupler Not Started.

    Check  the  EEPROM  Setups,  possible  I/O-Base  Address  and  IRQ Number
    conflicts, and that the network is properly connected.


 3. Eth16i0N : Could not connect to the interrup number supplied.

    The driver could not attach the interrupt  handler,  when  requested  the
    NDIS Wrapper to do it. The binary error code in the Event Log is:

      0001 = Could not attach to the interrupt

    Ensure  that  no  other  adapter in the system is not using the interrupt
    number concerned.


 4. Eth16i0N : Could not allocate the resources necessary for operation.

    This is a collection of SW related  errors  detected  by  the  driver  in
    communication  with  the  NDIS Wrapper, like: Allocating memory, creating
    filter data base, etc). The binary error code in the Event Log is:

      0002 = Could not create a filter data base
      0008 = Could not add a new binding to the filter data base.
      0009 = Could not allocate data space for the open binding

    These errors typically relate to problems with the overall system, not in
    the NT driver itself.


 5. Eth16i0N : Has encountered an internal error and has failed.

    The probable reason for this message is that the driver was in  the  non-
    staged  receive mode and was forced to change to the staged mode, loosing
    however one packet. The binary error code in the Event Log is:

      0016 = Non-Staged Receive Error

    If the protocol cannot handle this type of error properly, set the driver
    permanently to the staged mode (see section 5.3, "Staged Receive").


 6. Eth16i0N : Timed out during operation.

    The driver has detected that there was a pending transmit which  did  not
    terminate  properly.  This  represents a fatal HW-error, due to which the
    hardware was re-initialized. The binary error code in the Event Log is:

      0017 = HW Reinitized Due To Transmit Timeout

    If this error message appears repeatedly, check that the  network  is  in
    condition.


[ RETURN TO DIRECTORY ]