Ref: 00420001
Title: EtherLink II Shared Memory Mapping
Date: 12/13/90

Copyright 3Com Corporation, 1991.  All rights reserved.

Memory mapping is a way for a PC to access the memory on the adapter.  The
EtherLink II board contains 8 KB of RAM.  This RAM is used to temporarily
hold packets received from the network and packets waiting to be transmitted
onto the network.  For example, to transmit a 1000-byte packet, the PC will
copy the 1000 bytes to the EtherLink II's RAM and then tell the EtherLink II's
hardware to start transmitting the packet.  A packet cannot be transmitted
directly from somewhere in DOS's 640 KB of memory.  The packet must be copied
to the memory on the adapter board.

The act of copying large chunks of data to and from the EtherLink II's RAM is
relatively time-consuming.  Therefore, it is important that the fastest method
possible be chosen to move the data.  The EtherLink II offers three methods:
programmed IO, DMA, and memory-mapped IO.  Of these three methods,
memory-mapped IO is the fastest and should be used whenever possible.

Memory mapping defines a correspondence between an adapter board address and
the PC I/O addresses 640 KB-1023 KB (A0000H-FFFFFH).  The network adapter
hardware allows the user to select four locations (via jumper 1 on the
EtherLink II board) to place the EtherLink II's RAM:

C8000h to C9FFFh
CC000h to CDFFFh
D8000h to D9FFFh
DC000h to DDFFFh

The user simply needs to move the jumper to the appropriate position and the
software driver will automatically recognize that the EtherLink II's memory
has been mapped in the PC address space.  If jumper 1 is set to DISABLED (the
factory default setting), then the EtherLink II's 8 KB of memory will not be
mapped into the PC's address space and an alternate method (programmed IO or
DMA) will be used to access the EtherLink II's RAM.

If the EtherStart PROM is installed on the adapter, memory-mapped IO mode
cannot be used.  When the PROM is installed, it is mapped into a chosen
address location and precludes that address's use for packet buffering.  You
must move the jumper from DISABLED to one of the address locations or the
EtherStart PROM will not be accessed during boot and Start will fail.

When setting the adapter for use with OS/2, the memory jumper in any position
other than DISABLED will override any setting in PROTOCOL.INI.  The driver
interrogates the Gate Array to determine jumper settings.

