24
P/N: PM0365
REV. 1.3, NOV 20 ,1995
MX98905B
By the way, when the guessed value is hit the Network
I.D., a register call SIGNATURE (with value 78H, 'x') will
be realeased by MX98905. If software can properly
read the contents of SIGNATURE and ASR, then a
conflit free IO base is found. If software can't access the
value of SIGNATURE but ASR, then the guessed value
is wrong. If software can't access the value of
SIGNATURE nor ASR, then MX98905(s) is conflict with
other add_on cards. In case SIGNATURE can be
accessed by software, then user can write 1 to LOCKE
bit
of
HCFR
"NONCONFLICT_IOBASE+08H". The IO base of this
LAN card will be locked all the time to prevent it from
jumpping to other IO base when AUTO is issued. See
application notes or call SE/FAE if you have any ques-
tions.
To faciliate one to understand the "Mutiple LAN card
auto configuration ", an example is shown below:
(Follow the steps shown in application note)
Condition : One LAN card with network ID
001111001001
: The second LAN card with network ID
0022220308
1. At the beginning, software first write AUTO. The IO
base of both LAN card will be changed from their current
IO bases to 300H.
2. Software guesses 00H, then write AUTO. Because
the guessed I.D. (SID) hits the network I.D. on both LAN
card, the IO bases of these two LAN cards will jump to
240H (assume software choose 7 IO bases)
3. Software guesses 01H, then issue AUTO. The
software guessed I.D. (SID) hits the network I.D. (HID)
of the first card, hence the IO base of the first card will
stay at 240H and the IO base of the second card
jumpped to 280H. Software can access "x"
(78H,SIGNATURE register) from IO base 248H.
4. Software write 1 to LOCKE bit to lock the first card.
5. Software keep guessing and writing 1 to AUTO.
Finally, a value, 08H, is guessed by software, and the IO
base of card #2 jump to 240H. Because 240H is conflict
with card #1, user can only access the value of ASR
butSIGNATURE.
6. Software keep guessing and writing 1 to AUTO. The
IO base of card #2 change from 240H to 280H.
7. User can access SIGNATURE and ASR from this IO
base, the conflit_free IO base for card #2 is found.
Note : MX98905 uses one byte (ID byte #5) to determine
SID is matched with HID or not, therefore, there is 1/256
posibility for 2 LAN cards get hit simultaneously.
through
port
9.6.1 7 IO BASES SUPPORTED
300H (18H ) -> 240H (22H) -> 280H (34H) -> 2C0H
(46H) -> 320H (59H) -> 340H (64H) -> 360H (0BH) -
> 300H -> (18H) (CYCLIC)
9.6.2 15 IO BASES SUPPORTED
300H (18H) -> 240H (22H) -> 280H (34H) -> 2C0H
(46H) -> 320H (59H) -> 340H (6AH) -> 360H (7BH) -
> 380H (8CH) ->3A0H (9DH) -> 3C0H (AEH) -> 3E0H
(BFH) -> 200H (C0H) -> 220H (D1H) -> 2A0H E5H) -
> 2EH (07H) -> 300H (18H) (CYCLIC)
9.7
CONFIGURATION
MULTIPLE
LAN
CARD
AUTO
out
out
out
dx, al
dx,al
dx,al
When this certain value "hits" the 5th Network I.D.
(the least significant byte), then IO base of this "ID hit"
LAN card will be locked by MX98905 itself. i.e when
writting 1 to AUTO, the IO base will not be changed.
In case it is necessary for system to have more than
one LAN cards plugged, the MX98905 provides a
powerful solution to resolve "Multiple LAN card IO
base conflict problem". It is not necessary for users
to plug one LAN into the system then configure the IO
base of the LAN card; then remove the first LAN card
which is already configured and proceeds the second
LAN card and so forth. Using MX98905, user can
plug mutiple LAN cards into the system at the same
time and then use software to configure these LAN
cards for themselves.
To simply the mutiple LAN card auto configuration's
operation, the MX98905 provides a bit, MULTI, in the
HCMR. When this bit is set to 1, all LAN cards which
use MX98905 will be forced to change to IO map (i.e.
Novell NE2000 compaible). The "ID guess state
machine" inside the MX98905 will be enables after
MULTI bit is enabled. After that, software can write a
certain value (will be explained in more detail in the
following sub_ section) into the MX98905 by
consecutive 4 write to port 378H. The following
shows an example (in 8088 assembly code) for
writting this certain value into MX98905:
mov
dx, 378
mov
al, CERTAIN_VALUER
out
dx, al