ref: 13420026
title: Installing Multiple EtherLink 16 Adapters in LAN Manager Servers
date: 12/6/91

Copyright 3Com Corporation, 1991.  All rights reserved.

When installing multiple EtherLink 16 adapters in a LAN Manager server, it 
is possible for the server to fail to bind a protocol to one of the two 
adapters.  Typically, the error will appear like this:

   PRO003: INTERRUPT CONFLICT in binding (protocol) to ELNK16_NIF2  

The reason for this failure and the solution to this problem follows.

If a LAN Manager server is configured for Internal Routing (IRF), two 
adapters must be installed in the computer so that information can be 
routed from one adapter to the other.  When using the EtherLink 16, the 
PROTOCOL.INI file does not provide enough information about the two 
adapters for the protocol to bind.  A normal PROTOCOL.INI file for the 
EtherLink 16 looks like this:

.lt
  [ELNK16_NIF]
  ; protocol.ini section for the 3Com EtherLink 16 Adapter Card
     DRIVERNAME=ELNK16$
.el

As you can see, the only line that is significant is the DRIVERNAME= line.  
When two adapters are installed, an administrator must add another 
section for the second EtherLink 16 adapter.  The second section might 
look like this:

.lt
  [ELNK16_NIF2]
  ;protocol.ini section for the second 3Com EtherLink 16 Adapter Card
    DRIVERNAME=ELNK16X$
.el

Note the different section header information and the different driver 
name.  The different header title is used by the protocol to bind to the 
second adapter.  The "X" in the driver name is used because when 
the second instance of the ELNK16.OS2 driver is loaded in the CONFIG.SYS, 
it presents itself to the Protocol Manager as ELNK16X$ instead of ELNK16$.

The basic problem is that when the first adapter driver finds the EtherLink 
16 adapter, it will set up an interrupt vector for the first adapter by 
polling the configuration stored in the PROM on the adapter.  When the 
second MAC driver goes looking for an adapter, it will find the same adapter 
the first MAC driver found and it will attempt to initialize the same 
interrupt vector.  This is where the interrupt conflict occurs and the 
error message is displayed.  To fix this, another parameter must be added 
to both EtherLink 16 sections to uniquely identify the adapter.  The two 
EtherLink 16 sections should look like this:

.lt
  [ELNK16_NIF]
  ; protocol.ini section for the 3Com EtherLink 16 Adapter Card
     DRIVERNAME=ELNK16$
     IOBASE=0x300

  [ELNK16_NIF2]
  ;protocol.ini section for the second 3Com EtherLink 16 Adapter Card
    DRIVERNAME=ELNK16X$
    IOBASE=0x310
.el

Using the "IOBASE=" parameter, you can uniquely identify each adapter
when the bind executes and conflicts should not occur.  To find out what the
base address setting for each adapter is, run the 3C507.EXE diagnostics
program on each card individually and then transfer that information to the
PROTOCOL.INI file.  

Note:  Do not run 3C507.EXE if both EtherLink 16 adapters are installed 
simultaneously.

