Etherlink Ii Adapter Technical Reference Manual: A Member of The Etherlink Product Family
Etherlink Ii Adapter Technical Reference Manual: A Member of The Etherlink Product Family
Manual
Disclaimer
3Com makes no warranty of any kind with regard to this material, including, but not limited to, the
implied warranties of merchantability and fitness for a particular purpose. 3Com shall not be liable
for errors contained herein or for incidental or consequential damages in connection with the
furnishing, perfonnance, or use of this material.
EtherLink II - ii
Contents
Chapter 1: Introduction
Chapter 2: Applicable Documents
Chapter 3: General Description
Gate Array 3-1
Decoding 3-1
Packet Transfers 3-1
Programmable Options 3-2
Arbitration 3-3 .
FIFO Logic 3-3
LAN Chips 3-3
LAN Controller 3-3
Transceiver 3-4
RAM 3-4
Segments 3-4
EPROM 3-4
Ethernet Address 3-4
EtherLink II - iii
Status Register 5-3
DMA Address Registers 5-3
Register File Access 5-4
Programmed I/O 5-4
DMA Transfer 5-4
Single Byte Mode 5-4
Demand Mode 5-4
Drq Timer 5-5
Memory Mapped 5-5
Word Instructions 5-5
FIFO Configurations - (Selected in GA Control Register) 5-6
Parallel Configuration 5-6
Serial Configuration 5-6
Chapter 6: Initiali~ation
Power Up Reset 6-1
Software Reset 6-1
Software Reset Programming Sequence 6-2
EtherLink II - iv
DMA Address Register 10-8
DMA Address Register LSB 10-9
Vector Pointer Register 2 10-10
Vector Pointer Register 1 10-10
Vector Pointer Register 0 10-10
Register File Access MSB 10-11
Register File Access LSB 10-11
1/0 Signal Names 10-12
1/0 Signal DC Parameters 10-13
EtherLink II - v
Operational Constraints A-3
Capability to Use NIC Remote DMA Facility Not Implemented A-3
Required NIC Programming Sequences A-4
Ninth Byte Corruption of Transmitted Packets A-5
EtherLink II - vi
EtherLink II:
Introduction
1
1-1
Chapter 1: Introduction
This document provides information about the programming requirements of the gate array on the
EtherLink II network adapter. The EtherLink II adapter is a high-performance, multi-packet
buffering, low-cost Ethernet adapter, designed to operate in IBM PC, PC AT, and compatible
personal computers. The gate array is the central source for the operation of the adapter by
connecting directly to the PC bus interface and the adapter's buses. The gate array, composed of 16
registers, is subdivided into control registers (used for data transfers), configuration registers (used
for establishing address assignments), and status registers (used for providing information to the·
software).
The software, by programming the gate array registers, determines the best suited operating
parameters for the adapter operating environment. The operating parameters determine the
connectivity for data transfers (memory mapped, DMA transfers) and transceiver connections
(external, on-board). The data transfer parameters are programmable to support a variety of PC data
transfer methods (DMA, programmed I/O, either byte or word, and memory-to-memory transfers).
The DMA data transfer supports single byte and demand mode with the ability to personalize the
number of bytes transferred to the personal computer.
The gate array also provides software programmable options that playa key role in reducing the time
required to configure the EtherLink II adapter. The software programmable options are the D MA
channels, interrupt channel, and transceiver type.
EtherLink II:
Applicable Documents
2
2-1
Technical Reference
Advanced Peripherals IEEE 802.3 Local Area Network Guide, published by National
Semiconductor Corp., National part number 550083-001).
Technical Reference Personal Computer, published by IBM Corp., IBM part number 6322507.
Technical Reference Personal Computer AT, published by IBM Corp., IBM part number 6230070.
Gate Array
Decoding
All I/O addresses used by component blocks (LAN controller registers, Ethernet address PROM,
gate array registers, interrupt sharing) on the adapter are decoded by the gate array. The I/O
decoding logic uses the full 16-bit I/O address bus. This guarantees that the EtherLink II does not
conflict with other adapters that do a partial « 16 bits) decode.
Memory address decoding for the EPROM and for the static RAM during memory-mapped data
transfers are decoded by a circuit in the gate array. The memory decoding logic uses the full20-bit
memory address bus. This fu1l20-bit decode provides a unique address for adapter memory
components.
Packet Transfers
Transmit packets are "downloaded" (data transferred from the PC to the adapter) to the board-
resident RAM by using either the DMA controller in the gate array or by programming the adapter
for memory map mode. The gate array DMA controller supports handshaking with a motherboard-
resident DMA controller (8237); using either single-byte or demand-mode transfers. The gate array
DMA controller also interfaces to program transfer instructions (byte or word). Instructions
supported are outb, outw, rep outsb, rep outsw.
Receive packets are "uploaded" (data transferred to the PC from the adapter) from the board-resident
RAM by using either the DMA controller in the gate array or by programming the adapter for
memory-map mode. The gate array DMA controller supports handshaking with a motherboard-
resident DMA controller (8237), using either single-byte or demand-mode transfers. The DMA
controller also interfaces to program transfer instructions (byte or word). Instructions supported are
iob, iow, rep iosb, rep insw. .
3
EtherLink II:
General Description
3-2
Programmable Options
Interrupts
There are four (4) programmable interrupt channel options (2, 3, 4, 5). Following a power up
condition, the output drivers (irq2, irq3, irq4, irqS) remain in the "off state" until programmed to
the "on state." The output driver "on state" is defined as sinking current (driving the line to a logical
zero < O.4V) during interrupt request activity. The output driver does not have an "on state" that
sources current. The source current for the line is provided by a discrete pull-up resistor.
The output drivers are returned to the "off state" during a software reset. The "off staten is defined
as not sinking current (Ima). The line is driven to a logical one by the pull-up resistor. This DOES
cause a low to high transition on the assigned interrupt line to the interrupt controller (8259) located
on the motherboard. It is RECOMMENDED that you disable the interrupt channel assigned to the
adapter in the interrupt controller during software reset.
The programmable interrupt lines support either dedicated interrupt operation or interrupt sharing.
Dedicated interrupts are assigned to only one adapter at a time. Interrupt sharing allows multiple
adapters to "drive" the same interrupt line.
DMA Channels
There are three (3) programmable direct memory access (DMA) channel options (1, 2, 3).
Following a power up condition, the output drivers (drql, drq2, drq3) remain in the "off state" until
programmed to the "on state." The output driver "on state" is defined as either sinking current
(driving the line to a logical zero < O.4V) during non-DMA activity or sourcing current (driving the
line to a logical one> 2.4V) during DMA activity. There are no conditions during the "on state" that
cause the output driver not to drive the line.
The output drivers are returned to the "off state" during a software reset. The "off state" is defined as
not sinking or sourcing current. The line is "floating" (unless the motherboard provides line
tennination resistors). This "floating" condition may cause a DMA request to the DMA controller
(8237). It is advisable to disable th~ DMA controller during software reset.
DIXlBNC
The selection between using the onboard transceiver (BNC) or using an external transceiver (DIX,
I5-pin connector) is programmable. The power-up condition causes the onboard transceiver to be
selected (default). Bit 1 in the Control Register detennines the transceiver mode.
The adapter is capable of delivering + 12V @ O.5A to either the BNC OR DIX port. It is
recommended that the following conditions never exist:
• Attaching an external transceiver with the onboard transceiver selected (this may overload the
+12V fuse.)
• Selecting the onboard transceiver while having an external transceiver attached (another
overload condition for the fuse).
EtherLink II:
General Description
3
3-3
Arbitration
Requests for access to the board resident RAM (local packet buffer) are arbitrated by logic in the
gate array. The LAN controller requests the bus to store packets it receives from the network in the
receive packet segment of the local packet buffer, and retrieve packets from the transmit segment of
the local packet buffer for transmission to the network.
Requests are prioritized with the LAN controller given the highest priority. LAN controller requests
cause the current cycle to the local packet buffer to complete, then control is given to the LAN
controller.
FIFO Logic
To compensate for the bus latency due to the LAN controller operation, a first in, first out (FIFO)
circuit is implemented in the gate array. This FIFO allows the simultaneous transfer of data to the
host processor in addition to data transfers to the local packet buffer from the LAN controller. The
FIFO can be configured into a two 8-byte parallel operation or a single 16-byte serial configqration.
LAN Chips
LAN Controller
Data Conversion
The LAN controller reads byte parallel data from the local packet buffer during packet transmission,
and converts that data to bit serial information for the encoder. For receive packets, the LAN
controller receives bit serial data from the decoder and generates byte parallel data to the local
packet buffer.
Packets
Transmit packets that are assembled in the local packet buffer (transmit segment) are retrieved by
the LAN controller and passed to the encoder block. The data is passed to the encoder in the
following sequence: 8 bytes of preamble (inserted by the LAN controller), destination address (6
bytes), source address (6 bytes), packet data (up to 1500 bytes) read from the local packet buffer, and
4 CRC bytes (generated by the LAN controller).
On receive packets, the LAN controller strips the preamble from the packet and checks the CRC
bytes. The data written into the local packet buffer by the LAN controller is header information (4
bytes), packet data field (1500 max), and CRC bytes (4).
CRC Generate/Check
Cyclic redundancy check (CRC) is used to determine the validity of the transmitted data. The CRC
bytes are appended to the packet by the transmitting LAN controller and checked by the receiving
LAN controller. These CRC bytes are used in conjunction with the data in the packet to determine
an error.
It is not correct to assume that a CRC error indicates a transmitter problem. A method to determine
whether the transmitter has sent an error packet or the receiver CRC checker is defective is to accept
error packets, then read the packet from the local packet buffer and perform a softwareCRC check,
and then compare the results against the CRC bytes in the packet buffer.
3
EtherLink II:
General Description
3-4
Encoder/Decoder
The link between the transceiver (the component block that is attached to the coax) and lite LAN
controller (the component block that interfaces to the gate array) is the encoder/decoder component
block. The encoder/decoder supplies all the timing clocks used for passing data betweea the LAN
controller and the transceiver.
The packet information on the coax is encoded using the Manchester encoding scheme. Encoded
packets, combining data and clocks, are derived from this component block, and received packets
are separated into data and clock information by the decoder. Data passed to/from the transceiver is
in the form of differential signal levels, with data passed to/from the LAN controller in the form of
the signal levels.
Transceiver
An on board transceiver capable of driving "thin Ethernet" coax is provided as a standard
configuration on the EtherLink IT adapter. Functions of the transceiver include transmitting packets
onto the coax, receiving' packets from the coax and detecting collisions when multiple transceivers
are transmitting simultaneously.
RAM
The adapter uses static RAM for the board-resident packet buffer. The standard configuration is a
single 8K x 8 device with an option to increase to a single 32K x 8 device. Software has direct
access to the RAM through the host's memory address space (when configured in memGry mapped
mode). Indirect software access to the RAM data is through the FIFO logic. There are four address
options for locating the RAM in host memory addressable space. The selected address is shared
between the RAM and the EPROM.
NOTE: Selection of RAM vs. EPROM is controlled by bit 3 of the GA Configuration register.
Segments
The RAM is divided into transmit buffer space and receive buffer space. U sing the standard RAM
configuration of 8K, the transmit space is 1.5K (one maximum size packet) and the receive space is
6.5K.
EPROM
The adapter provides a socket for an 8K x 8 EPROM. A jumper-selectable memory address defines
the EPROM segment within the ROM address space in the personal computer. The memory address
is shared with the RAM during memory-mapped data transfer mode.
NOTE: Selection of RAM vs. EPROM is controlled by bit 3 of the GA Configuration register.
Ethernet Address
The Ethernet address block consists of a 32 x 8 PROM. The PROM contains the Ethernet address of
the adapter in the first six locations. All 32 locations are accessible, with only the first six locations
having a definition. Infonnation in the PROM is accessed through the I/O address space.
EtherLink II:
Configuration Data
4
4-1
LAN Controller
The I/O registers in the LAN controller reside at the jumpered I/O base address. The registers share
the I/O addresses with the Ethernet Address PROM. The information is "windowed" into the
address space controlled by the Control Register bits 2, 3. Bits 2, 3 of Control Register are
initialized to window the high-order bytes of the Ethernet Address PROM.
Gate Array
The registers in the gate array are located at the base I/O address + 400h (if the base address is
jumpered to 3OOh, then the gate array i~ at 700h): .This requires the personal computer in which the
adapter is installed to have I/O addreSSIng capabIhty to 70Fh.
4
EtherLink II:
Configuration Data
4-2
EPROM
The adapter provides support for an 8Kbyte EPROM. The EPROM is located in the personal
computer's ROM memory address space. The exact memory address of the EPROM is determined
by the memory address jumper setting. The memory address selected for the EPROM is shared with
the RAM, with selection controlled by the GA Configuration register.
RAM
The adapter provides support for up to 32Kbytes of static RAM. The RAM is located in the personal
computer's ROM memory address space. The exact memory address of the RAM is detennined by
the memory address jumper setting. The memory address selected for the RAM is shared with the
EPROM, with selection controlled by the GA Configuration register.
Interrupt Channels
There are four interrupt channel options available (irq2-irq5). The interrupt options are software
programmable via the Interrupt/DMA Configuration Register bits 4-7. The IDC is part of the gate
array register set.
DMA Channels
There are three DMA channel options available (drql-drq3). The DMA channel options are software
programmable via the Interrupt/DMA Configuration Register bits 0-3. The IDC is part of the gate
array register set.
DIX/BNC
The adapter supports either "thin Ethernet" via an onboard transceiver or "thick Ethernetn via an AUI/
external transceiver. The DIXIBNC option is software programmable via Control Register 2 bit 1.
EtherLink II:
Data Transfer
5
5-1
Control Blocks
DMA Controller
A high-perfonnanceoDMA controller is built into the EtherLink II gate array. The DMA controller is
used to deliver received packet data from the board resident packet buffer to the PC bus interface in
an upload operation. It also controls the transfer of infonnation from the PC bus interface to the
local packet buffer in a download operation.
The page start register (PSTR) in the gate array MUST be programmed with the exact value used for
the LAN controller page start register (PSTART).
The Page StoP Register (PSPR) in the gate array MUST be programmed with the exact value used
for the LAN controller page stop register (PSTOP).
This register is used to control the number of bytes to be transferred between the system memory
and the gate array DMA controller during demand mode DMA transfers. The gate array DMA
controller will de-assert the DMA request signal on the PC bus interface when the count has been
decremented to zero. The DMA request signal will be reasserted (provided terminal count has not
been reached) AFrER the appropriate DMA acknowledge has been de-asserted by the system DMA
controller. This allows other peripherals a chance to gain DMA access. It is recommended that the
value loaded into the drq timer register does not cause the PC bus DMA transfer to exceed the
refresh rate (15us).
5
EtherLink II:
Data Transfer
5-2
Control Register
Three bits in this register are related to the DMA transfer. These bits control the starting/stopping of
the DMA controller, the direction of the DMA transfer, and the FIFO configuration.
Start DMA
Programming the start DMA bit to a logical one (positive true logic) causes the DMA controller to
move data between the PC bus interface and the board resident packet buffer. The start DMA bit
may be asserted coincident with the DMA direction bit. Prior to asserting the start DMA bit, the
DMA address registers should be programmed with the address of the data in the packet buffer to be
transferred by the DMA controller.
Programming the start DMA bit to zero (off) should only be done AFfER the transfer i& complete.
During a download operation (transfer ROM the system memory to the packet buffer) the high to
low transition of start DMA bit causes the FIFO to be flushed of any residual data (residual data is
less than 8 bytes). The DMA in progress bit in the status register is set "on" (a logical one)
indicating a flush operation. It is ILLEGAL to change the value of the D:MA address register during
the time of a flush.
DMA Direction
Controls the direction of the DMA transfer. Setting the bit to a logical one moves data to the board
resident packet buffer (a download operation). Setting the bit to a zero moves data from the board
resident packet buffer to the system memory buffer (an upload operation). The DMA direction bit
may be asserted simultaneously with the start DMA bit. It is ILLEGAL, however, to change the
DMA direction bit after the start DMA bit is asserted.
Follow this programming sequence to initiate a change in the DMA transfer direction:
3. Assert start DMA bit with the new DMA direction value.
Status Register
Status information on the current operation is provided to the software via bits 3,4, 5, 6, 7 in the
status register. Status information is available to the software as long as the start DMA bit in the
control register is asserted (logical one). Clearing the status register is done by Ern-IER an I/O write
(no specific data value is needed on the PC data bus since the gate array decodes only the address) or
by programming the start DMA bit in the control register to zero (off).
DMA In Progress
The DMA in progress status bit-is set to a one by the DMA controller logic in the gate array.The
primary purpose of this status bit is to allow the software to determine the completion of the flush
operation during a download operation. During the flush operation it is ILLEGAL for the software
to chan 6e the value of the DMA address registers.
Using the standard RAM configuration of 8Kbytes, the DMA address MSB and the LAN controller
page start register MUST be loaded by software with a value of 20h.
5
EtherLink II:
Data Transfer
5-4
Programmed 1/0
Data can be exchanged between the register files and the PC data bus under software programmed I/
o control. The number of bytes to be transferred for each burst is limited to 8 (if Control register bit
5 is zero) or 16 bytes (if Control Register bit 5 is a one). In either case, bit 7 (Data Port Ready) in
the Status register MUST be checked after EACH burst transfer. During program I/O data transfers,
the number of bytes transferred SHOULD be divisible by 8 to allow the data to be burst aligned.
This alignment allows a demand mode DMA transfer(s) following a programmed I/O transfer,
without having to reprogram the gate array (the gate array will continue where the program I/O
ended). However, additional programming may be required to start the DMA controller on the
motherboard.
DMA Transfer
The EtherLink IT supports a variety of DMA data transfer methods along with the handshake
protocols. Described below are some of the DMA transfer methods that the EtherLinkl'l adapter
supports.
Demand Mode
A method of data transfer supported by the EtherLink II Ethernet adapter. Demand mode is a DMA
data transfer between the DMA controller on the motherboard and the DMA controller on the
EtherLink II Ethernet adapter. Data transfer is started by the DMA controller on the adapter by
rising the drq (DMA request) signal on the PC bus. The DMA controller on the motherboard
responds by asserting the dack (DMA acknowledge) signal on the PC bus. The DMA controller on
the motherboard proceeds with asserting the I/O read OR I/O write PC bus signal. The DMA
controller on the adapter responds with a new byte of data for each I/O read OR I/O write signal it
receives. The transferring of data continues as long as the drq signal is active.
EtherLink II:
Data Transfer
5
5-5
Drq Timer
Controls the number of bytes to be transferred during a demand mode DMA transfer. The drq x (x
equals the DMA channel assigned to the adapter) PC bus signal is asserted and data is transferred
until the value loaded into the drq timer register has been decremented to zero. The drq signal is de-
asserted once the drq timer register reaches zero and reasserted after the appropriate flack (DMA
acknowledge) signal is de-asserted, indicating this DMA data transfer session has gracefully
terminated. This sequence allows other adapters/devices the opportunity for DMA service.
Memory Mapped
The EtherLink II adapter has the capability of "mapping" the board resident packet buffer into the
personal computer's memory address space. The memory address is user determined by the position
of the J1 jumper. The Jl jumper offers four possible addresses (dcOOO, d8000, ccOOO, c8000):~ The
address selected by the J 1 jumper also detennines the address for the boot able EPROM socket. .
Memory-mapped mode is selected by setting the GA Configuration register to a value of 49h~
Resetting memory-mapped mode is done by either resetting the system (power up reset) or execu ting
an instruction at an address that matches the value in the vector pointer registers.
Word Instructions
The EtherLink II adapter supports word I/O accesses to the register files (FIFO). The register files
are the only register that can be accessed with a word instruction. The word access should be
addressed to the lower address of the register files (base address + 40Eh). The Data Port Ready bit
in the status register MUST be checked after four words (8 bytes) in parallel register file
configuration or after eight words (16 bytes) in serial register file configuration.
5
EtherLink II:
Data Transfer
5-6
11..
j~ ~ ~
~Ir ~ ..
8 8
B~e B~e
FlO FlO
A~ ~ .
" "
A~
r
Packet Buffer
Serial Configuration
PC Bus Interface
8 8
Byte Byte
FIFO AFO
Packet Buffer
EtherLink II:
Initialization
6
6-1
Chapter 6: Initialization
Power Up Reset
I/O Address Gate Array Register Data Value
Software Reset
A software reset is initiated by setting bit 0 in the Control register (base address + 406h) to a logical
one. A software reset emulates all properties of a hard reset (power on initialization) except that the
configuration registers (base, PROM) are not reloaded. The configuration registers retain their
previously loaded values. A reset condition continues to exist until the software reset bit is de-
asserted (a logical zero). It is the responsibility of the driver software to de-assert the software reset
bit after a time duration which provides reasonable assurance that the condition(s) that caused the
reset to be issued has been cleared. The gate array (after the de-assertion of the software reset bit)
registers are reset to the values in the following table.
6
EtherLink II:
Initialization
6-2
Asserting bits in the Control register and de-asserting the software reset bit REQUIRES two
sequential program instructions. You issue the first instruction to de-assert the software reset bit and
the second instruction to assert the desired bits. A simultaneous assertion of bits along with the de-
assertion of the software reset bit results in a Control register of OA.
EtherLink II:
I/O Address Map
7
7-1
7-2
LAN Controller
Address Decode Control Register Assignments
Bits 3,2
Gate Array
Address Decode Control Register Assignments
Bits 3,2
base address x,x PSTR
base address + 401 h x,x PSPR
base address + 402h x,x DQTR
base address + 403h x,x BCFR
base address + 404h x,x PCFR
base address + 405h x,x GACFR
base address + 406h x,x CfRL
base address + 407h x,x STREG
base address + 408h x,x IDCFR
base address + 409h x,x DAMSB
base address + 40Ah x,x DALSB
base address + 40Bh x,x VPTR2
base address + 40Ch x,x VPTRI
base address + 40Dh x,x VPTRO
base address + 40Eh x,x RFMSB
base address + 40Fh x,x RFLSB
x = don't care
EtherLink II:
Memory Address Map
8
8-1
* Address decoded in conjunction with PROM configuration jumpers and GA Config register bit 3.
** Reading the last 2 bytes of the PROOM address space returns the value of the GA Base
Configuration register. Allows Startup PROM code to determine the adapters' Base Address"
RAM
Address Type _ Descri ption
One of these address ranges is selected in conjunction with PROM configuration jumpers and GA
Configuration register bit 3.
Vector Pointer
The value loaded into these registers are compared against PC bus address bits 19-0. If a compare
occurs DURING a memory read (-Smemr asserted), the memory-mapped mode is reset (GA
Configuration bit 3). The suggested value for the vector pointer registers is the interrupt vector
address issued during the "soft boot sequence" (Alt-Ctrl-Del).
EtherLink II:
Jumper Position Equates
9 .
9-1
PSTR Bit 7 6 5 4 3 2 1 0
AdrMSB Bit Al5 A14 A13 Al2 All AIO A9 A8
The value loaded in this register sets the beginning of the receive segment of the board resident
packet buffer. Receive packets are placed in the packet buffer specified starting at the address
specified by the value loaded in this register. The most significant address bit is A15 and the least
significant is A8. See Recommended Adapter Memory Configuration on next page.
PSPR Bit 7 6 5 4 3 2 1 0
AdrMSB Bit Al5 A14 Al3 A12 All AIO A9 A8
The value loaded in this register sets the ending address for the receive segment of the board resident
packet buffer. Receive packets are placed in the packet buffer up to the address specified by the
PSPR register. See Recommended Adapter Memory Configuration on next page.
EtherLink II:
10 10-2
Gate Array Descriptions
This allows transmit space for one full size 802.3 packet and receive space for four full size packets.
# of bytes transferred + transfer overhead =< 15uS (which is the system memory refresh rate)
The value loaded into the Drq Timer register MUST meet the following conditions:
2. If the value is greater than or equal to 12, then bit 5 (16 byte select/double buffer select) in the
Control register must be set. -
DQTR Bit 7 6 5 4 3 2 1 0
Timer Bit - - - tb4 tb3 tb2 tbl tbO
7 - not used
6 - not used
5 - not used
4 tb4 timer bit 4 (MSB)
3 tb3 timer bit 3
2 tb2 timer bit 2
1 tbl timer bit 1
0 tbO timer bit 0 (LSB)
EtherLink II:
Gate Array Descriptions
10
10-3
BCFR Bit 7 6 5 4 3 2 1 0
I/O Base Address 300 310 330 350 250 280 2AO 2EO
PCFR Bit 7 6 5 4 3 2 1 0
Memory address DCXXX D8XXX CCXXX C8XXX 0 0 0 0
10-4
GA Configuration Register
Base + 40Sh (read/write)
The GA ConFiguration Register (GACFR) is an 8-bit read/write register. The majority of the bits in
the register are initialized during the execution of a software initialization routine.
GACFR Bit 7 6 5 4 3 2 1 0
Configuration nim tern ows test rsel mbs2 mbs! mbsO
7 nirn (Nic Int Mask). A positive true signal used to block the propagation of
interrupts from the LAN Controller to the interrupt controller (8259). LAN
Controller generates interrupts for receive packets, transmit packets.
6 tcrn (Terminal Count Mask). A positive true signal used to block the setting of
a DMA complete interrupt generated by the DMA controller in the gate
array. The gate array generates an interrupt upon receiving a tenninal
count pulse from the PC bus interface during a DMA transfer.
3 rsel (RAM Select). Used to map the packet buffer into system memory address
space. The position of the Jl (memory) MUST be positioned in one of the
four pre-determined address options (DCOOO, D8000, CCOOO, C8{)()() in
conjunction with setting this bit to determine the memory address of the
packet buffer.
The mbs bits are applicable ONLY during memory-mapped mode. The software is required to set
the appropriate bits to select 8K segments of the packet buffer. Using the standard packet buffer
configuration of 8K, the mbsO bit is set. Using the 32K option, the 8K, 16K, 24K, 32K
configurations are software selectable. Segments above 32K are not a selectable option.
An adapter with a 32K memory* has four 8K windows that can be selected. A standard adapter with
an 8K memory has only one possible window and, due to hardware considerations, this must be the
second 8K starting at 2000h in the adapter memory space.
8K Configuration
1st 8K a 0 1 2000h
32K Configuration*
Memory Access msb2 msbl msbO Adapter Start Address
1st 8K 0 0 0 OOOOh
2nd 16K 0 0 1 2000h
3rd 24K 0 1 0 4000h
4th 32K 0 1 1 6000h
* Adapters with 32K memory "are not currently available from 3Com (December 1988.)
10
EtherLink II:
Gate Array Descriptions
10-6
Control Register
Base + 406h (read/write access)
CRBit 7 6 5 4 3 2 1 0
Control start ddir bsel share eahi ealo xsel rst
7 start (START). Used to start the DMA controller in the gate array. Prior to
setting this bit, the DMA address registers should point to the starting
address of the packet buffer from which a data transfer will begin.
6 ddir (DMA DIRection). Used to set the direction of the data transfer between
the gate array and the PC bus interface. The setting of this bit may occur
simultaneously with the Start bit. It is ll...LEGAL to change the DMA
Direction bit after the Start bit is programmed to the active state (a logical
one).
o= upload (packet buffer to system)
1 = download (system to packet buffer)
5 dbsel (Double Buffer SELect). Used to connect the two 8-byte FIFOs in a serial
configura rion.
4 share (interrupt SHARE). Used to select the interrupt sharing capability of the
adapter. Interrupt sharing allows multiple adapters that have implemented
interrupt sharing hardware to share a common interrupt channel to
generate interrupts. Adapter configured for interrupt sharing CANNOT
exist on the same channel with a non-sharing adapter.
o = non-sharing interrupt channel
1 = sharing interrupt channel
3 eahi (Ethernet Address HIgh) used to "window" the Ethernet Address PROM
bytes 31-16 into the I/O base address. This bit is set active following a
power-up condition or a software reset.
2 ealo (Ethernet Address LOw). Used to "window" the Ethernet Address PROM
bytes 15-0 into the I/O base address. Bytes 5-0 of the Ethernet address
PROM contain the station address of the adapter.
1 xsel (Xcvr Select). Used to select the transceiver type on the adapter.
1 = on-board transceiver (BNC), default
o = external transceiver (DIX)
0 rst (Software ReSeT). Used to emulate a power up reset. The reset initializes
the gate array and the LAN Controller registers.
0= software reset inactive
1 = software reset active
EtherLink II:
Gate Array Descriptions
10
10-7
Status Register
Base + 407h (read only)
The Status Register (STREG) is an 8-bit, read-only register. The bits in this register provide
infonnation on the progress or completion status of the present operation.
STREG Bit 7 6 5 4 3 2 1 0
Operaton Status dprdy uflw oflw dtc dip rev2 revl revO
7 dprdy (Data Port ReaDY). This status bit indicates that the register flIes are
ready for data transfer. During a download operation (system to adapter),
the register flIes are "flushed" when the Start bit in the Control register is
de-asserted by the software. During an upload operation, the register files
end the data transfer by either receiving a terminal count (during DMA
transfers) or when the Start bit in the Control register is de-asserted by the
software.
0= data NOT available
1 = data available
6 uflw (UnderFLoW). Indicates that a read operation was issued to the register
flIes when data was not available.
5 oflw (OverFLoW). Indicates that a write operation was issued to the register
files when all locations in the register flIes were full.
4 dtc (DMA Tenninal Count). Indicates that a terminal count (last byte
transferred) was received from the PC bus interface during a DMA
transfer.
3 dip (DMA In Progress). Indicates that the DMA controller in the gate array is
active. During a download operation, the register files are "flushed" (data
moved from the register files to the packet buffer) when the Start bit in the
Control register is programmed to a zero. The DMA In Progress bit
remains active (a logical one) until the transfer is complete. During the
flush ope~tion, it is ~LEGAL to change the value in the DMA address
registers.
2 rev2 (Gate array REVision bit 2)
1 revl (Gate array REVision bit l)
0 revO (Gate array REVision bit 0)
These bits indicate the revision level of the gate array. The revision level
is implemented to track changes to the gate array.
10
EtherLink II:
Gate Array Descriptions
10-8
IDCFR Bit 7 6 5 4 3 2 1 0
assigned channel irq5 irq4 irq3 irq2 - drq3 drq2 drql
7 irq5 (Interrupt ReQuest 5). Programming this bit to a logical one enables the
gate array output driver to the IRQ5 channel on the PC bus. The IRQ5 bit
on the PC bus is driven high, > 2.4V, to indicate an interrupt condition is
present on the adapter or driven low, < .8V, indicating no interrupt
condition on the adapter.
6 irq4 (Interrupt ReQuest 4). Programming this bit to a logical one enables the
gate array output driver to the IRQ4 channel on the PC bus. The IRQ4 bit
on the PC bus is driven high, > 2.4 V, to indicate an interrupt condition is
present on the adapter or driven low, < .8V, indicating no interrupt
condition on the adapter.
5 irq3 (Interrupt ReQuest 3). Programming this bit to a logical one enables the
gate array output driver to the IRQ3 channel on the PC bus. The IRQ3 bit
on the PC bus is driven high, > 2.4V, to indicate an interrupt condition is
present on the adapter or driven low, < .8V, indicating no interrupt
condition on the adapter.
4 irq2 (Interrupt ReQuest 2). Programming this bit to a logical one enables the
gate array output driver to the IRQ3 channel on the PC bus. The IRQ2 bit
on the PC bus is driven high, > 2.4V, to indicate an interrupt condition is
present on the adapter or driven low, < .8V, indicating no interrupt
condition on the adapter.
3 -- Not used
2 drq3 (DMA ReQuest 3). Programming this bit to a logical one enables the gate
array output driver to the DRQ3 channel on the PC bus. The DRQ3 bit on
the PC bus is driven high, > 2.4V, to indicate a DMA request condition is
present on the adapter or driven low, < .8Y, indicating no DMA service is
required on the adapter.
EtherLink II:
Gate Array Descriptions
10
10-9
1 drq2 (DMA ReQuest 2). Programming this bit to a logical one enables the gate
array output driver to the DRQ2 channel on the PC bus. The DRQ2 bit on
the PC bus is driven high, > 2.4V, to indicate a DMA request condition is
present on the adapter or driven low, < .8V, indicating no DMA service is
required on the adapter.
0 drql (DMA ReQuest I). Programming this bit to a logical one enables the gate
array output driver to the DRQl channel on the PC bus. The DRQI bit on
the PC bus is driven high, > 2.4V, to indicate a DMA request condition is
present on the adapter or driven low, < .8V, indicating no DMA service is
required on the adapter.
DAMSB Bit 7 6 5 4 3 2 1 0
Packet Buffer, MSB Bit AI5 A14 AI3 AI2 All AID A9 A8
The value loaded into this register is used by the gate array DMA controller during data transfers to/
from the packet buffer.
DALSB Bit 7 6 5 4 3 2 1 0
Packet Buffer, LSB Bit A7 A6 A5 A4 A3 A2 Al AO
The value loaded into this register is used by the gate array DMA controller during data transfers to/ .
from the packet buffer.
EtherLink II:
10 10-10
Gate Array Descriptions
VPTR2 Bit 7 6 5 4 3 2 1 0
Vector Address Bit A19 A18 A17 A16 A15 A14 A13 Al2
The value loaded into this register combined the values loaded into Vector Pointer Registers 1 and 0
is used to reset the RAM Select (memory-mapped mode). RAM Select is bit mode). RAM Select is
bit 3 in the GA Configuration register.
VPTR1 Bit 7 6 5 4 3 2 1 0
Vector Address Bit All AlO A9 A8 A7 A6 A5 A4
The value loaded into this register combined the values loaded into Vector Pointer Registers 2 & 0
are used to reset the RAM Select (memory-mapped mode). RAM Select is bit 3 in the GA
Configuration register.
VPTRIBit 7 6 5 4 3 2 1 0
Vector Address Bit A3 A2 Al AD - - - -
EtherLink II:
Gate Array Descriptions
10
10-11
The value loaded into this register combined the values loaded into Vector Pointer Registers 2 and 1
is used to reset the RAM Select (memory-mapped mode). RAM Select is bit 3 in the GA
Configuration register.
RFMSB Bit 7 6 5 4 3 2 1 0
Packet MSB Bit D7 D6 D5 D4 D3 D2 Dl DO
This I/O port address is used to store MSB data for transmit packets and used to retrieve data from
received packets.
RFMSB Bit 7 6 5 4 3 2 1 0
Packet LSB Bit D7 D6 D5 D4 D3 D2 Dl DO
This I/O port address is used to store LSB data into for transmit packets and to retrieve data from
received packets.
EtherLink II:
10
10-12
Gate Array Descriptions
PC Data bus
10-14
PC Control signals
Quiescent Mode
This mode is achieved after either a power-up reset or a software reset. In this mode, neither the
DIX (15-pin D connector) or the BNC has an attachment cable connected.
Receive Mode
This mode is defined as the operating state after an initialization and receive packet sequence has
been executed. In this mode, the packet(s) is received through the BNC via the on-board transceiver
with no attachment cable on the DIX (1S-pin D connector). The BNC attachment is predominantly
RG58 c/u coax.
Transmit Mode
This mode is defined as the operating state after an initialization and transmit packet sequence has
been executed. In this mode, the packet(s) are transmitted through the BNC via the on-board
transceiver with no attachment cable on the DIX. The BNC attachment is predominantly ROS8 c/u
coax.
Quiescent Mode 1
This mode is achieved after a power-up reset condition and the selection of an external transceiver
mode. In this mode, neither the DIX (I5-pin D connector) or the BNC has an attachment cable
connected.
Quiescent Mode 2
This mode is achieved after either a power-up reset or a software reset. In this mode, neither the
DIX (I5-pin D connector) or the BNC has an attachment cable connected.
Receive Mode
This mode is defined as the operating state after an initialization and receive packet sequence has
been executed. In this mode, the packet(s} is received through the BNC via the on-board transceiver
with no attachment cable on the DIX (I5-pin D connector). The attachment cable for the BNC is
predominantly "thin net" coax (R058 c/u).
Transmit Mode
This mode is defined as the operating state after an initialization and transmit packet sequence has
been executed. In this mode, the packet(s) are transmitted through the BNC via the on-board
transceiver with no attachment cable on the DIX. The attachment cable for BNC is predominantly
(R058 c/u) coax.
Power Dissipation
The EtherLink II has achieved a total power dissipation that is the lowest in its adapter class. The
total power dissipation is the summation of the power from both the +5 volts and the + 12 volts.
Summation:
+5 volts Pd + + 12 volts Pd = total
1.7615 watts + 3.0192 watts = 4.7807 watts
EtherLink II:
Operational Specifications
12
12-1
DC Voltage' Margin
A portion of the dvt emulated the voltage variation that can occur during operation in a personal
computer. The IBM power supply specification for the +5 volts is +5% and -4% which results in an
output voltage swing of +4.8 to +5.25 volts. The specification also states the variation for the + 12
volts is +5% and -4% netting an output variation of +11.40 to + 12.60 volts.
+5 Voltage Margin
The EtherLink II adapter exhibited no abnormal operation during power supply variations of +/- 5%.
13 13-2
PhysicaVMechanical
Specifications
Environment Characteristics
The EtherLink IT adapter was subjected to numerous lab created environments to detenmne if any
weakness existed in the construction of the product (mechanical assembly, solder joints, plating) or
the materials used in the product. The following paragraphs provide information about the tests.
Drop Tests
Packaged Drop Test:
Two fully functional EtherLink II adapters were packaged and subjected to free fall drop tests on all
six faces and eight comers of the packaging. Each drop test was conducted a minimum of five
times, at a height of 30 inches above a concrete surface. After the drop test, the adapters were
retested and it was confmned that the units remained fully functional.
Bench Drop Test:
Drop tests conducted on a bench top were performed on two unpackaged EtherLink II adapters.
Two of the four edges of the adapter were elevated above the bench surface to an approximate height
of 5 inches and released while maintaining contact of the opposite edge on the bench surface. The
test was conducted 10 times on both the component and solder side.
Humidity
The temperature and humidity were varied during this testing. The temperature varied from -10
degrees Celsius to 65 degrees Celsius. The humidity varied up to 90%.
Salt Spray
This test consisted of subjecting several EtherLink II adapters to a saline solution. The adapters
were exposed to the solution for a period of time and then allowed to dry.
EtherLink II:
PhysicaVMechanical
Specifications
13
13-1
o o
1
3.90"
1
4.20"'
j o
-~~ : ~.225"
_~~ : . . - .470"
~--- BNC connector
backplate
EtherLink II:
Agency Approvals
14 .
14-1
UL
Listed accessory. Complies with UL 478, Information Processing and Business Equipment.
VDE
Complies with RFI suppression requirements of Vfg 1046/1984.
EtherLink II:
Recommended Guidelines
for Operation
A
A-1
The NIC anomalies have been identified by factory and lab system testing over an 1S-month period.
The NIC has been tested in a variety of networks with various traffic loading, network lengths, and
network sizes. Due to this testing, a number of anomalies in the behavior of the NIC have been
observed. Most of these are corrected in the current levels of NIC silicon or in surrounding
hardware, both ASIC and discrete, provided on the EtherLink II. The several anomalies which
remain are documented here, with software solutions described as implemented in the 3L
implementation for the EtherLink II. The problems identified in this section were generated using
artificially created environments and would not normally occur. Nonetheless, implementation of
these software 'workarounds' is recommended for any application directly addressing the EtherLink
II programming interface.
The following is provided as a supplement to the EtherLink II External Reference Specification and
to the several National Semiconductor data sheets and addenda relating to the DP8390/8391/8393
chipset.
Three areas of anomalous behavior are discussed:
• Transmitter Deadlock
• Receiver Anomalies
• Operational Constraints
A
EtherLink II:
Recommended Guidelines
for Operation
A-2
Transmitter Deadlock
Description
Upon occurrence of a particular timed asynchronous series of COLL, CRS, and CSNIC signals to
the NIC, while the NIC is deferring transmission of a packet, the NIC transmitter may deadlock.
The transmission will not be retried, and the NIC will remain in this transmission deferred state until
stopped and restarted.
Solution
Transmissions should be executed with a watchdog timer in software which times out after a period
sufficient to assure that the transmission, including the up to 15 retries specified by IEEE 802.3, has
had time for normal completion. "If the timer expires, stop the NIC and restart prior to retrying the
same transmission. See below for the. stop/restart procedure.
Receiver Anomalies
Receive status byte check for invalid data in packet
Description
Upon enabling the NIC or upon certain configuration changes of the NIC, a packet may be stored to
RAM erroneously; all bytes have bits shifted from their original values. Such packets CaB always be
identified by examination of the receive status byte in the packet header within the receive ring. The
status byte will have one or both of the high order 2 bits set: DFR (deferring) and/or DIS (re~eiver
disabled).
Solution
Status for received packets should always be checked, and packets received for which either the
DFR or DIS bit is set should be discarded. The remaining header information (next page and size)
will be valid and may be used to check for the next packet.
Solution
For each received packet, check whether the header has shifted. To detennine if a shifted header has
occurred, it is necessary and sufficient to verify the value of the next page byte, based on the word
size in the packet header. The packet may be expected to consume a number of 256-byte pages of
packet buffer space exactly equal either to the high-order size byte plus 1 or to the high-order size
byte plus 2. The next page byte must therefore equal the starting page of the packet adjusted
forward by one of these values, and adjusted for wraparound the receive ring. If either of these two
adjusted next page values is equal to the next page byte in the second byte position in the packet
header, the packet header is not shifted.
If the next page byte is shifted, the packet and any following packets already received must be
discarded, as positioning of such packets in the ring can not reliably be detennined, and data shifting
may have occurred. The NIC should be stopped, the receive ring reset (NIC BNRY and CURR
registers as well as program memory variables reinitialized), and the NIC restarted, as per the' stop/
restart procedures. .
Solution
If a packet of either type is received, the packet should be discarded and processing may continue
with the next packet received, whose position is accurately indicated by the packet header's next
page byte. Discovery of such packets may be accomplished by protocol testing for specific fields'
validity. We describe the solution used for MINDS/XNS protocols, which uses only the 802.3
source and destination fields for link-level checks. If receiving only packets with matching station
address, the address is checked in software, and the packet discarded if it does not match. If
broadcast addresses are also being accepted, a check follows for a valid broadcast address (ffh, ffh,
fib, ffh, ffh, fib). Additional range checks for valid protocol control fields (IDPsockets and
checksum, etc.) reduce the probability of "handing up" a corrupted packet from the protocols well
below the probability of a undetected CRC error on the network.
EtherLink II:
A A-4
Recommended Guidelines
for Operation
Operational Constraints
Capability to use NIC Remote DMA facility not implemented
Description
Problems in early internal implementations of the remote DMA facility of the NIC, both in reliability
and performance, indicated the inadvisability of its use. Reliability was improved in recent NIC
implementations, but not proven in 3Corn factory testing.
Solution
The EtherLink II provides this capability of adapter!host data transfer in three ways:
1. Interface to host based DMA channels 1,2, and 3 under ASIC control.
2. Programmed I/O transfers through two ASIC ports allowing word-wide transfers.
3. Shared memory approach, mapping the packet buffer in high address systemmemory.
Solution
Starting the NIC:
a. NIC CR =2Ih (stopped, addressing page 0 registers).
b. NIC DCR =48h.
c. NIC RBCRO =O.
d. NIC RBCRI =O.
e. NIC RCR = {selected receive configuration}.
f. NIC TCR = 2 (loop back mode).
g. NIC BNRY =3fl1.
h. NIC PSTART = 26h.
i. NIC PSTOP =40h.
J. NIC ISR = FFh (clearing ISR).
k. NIC IMR = {selected interrupts}.
1. NIC CR = 61h. (page 1 registers addressed).
m. NIC PARO - PAR5 =station address to be received.
EtherLink II:
Recommended Guidelines
for Operation
A
A-5
* configuration registers and address registers other than the TCR do not require resetting.
Solution
Protocol software must not depend on the validity of the source address field of the Ethernet layer
packet encapsulation, or must check it against some higher level protocol field. Alternatively,
software recheck of the Ethernet CRC will result in discard of such packets. In 3Com's MINDS/
XNS protocols, the field is not used; higher level protocols (e.g., IDP) have their own source address
fields.
Reminder
The problems identified in this section were generated using artificially created environments with
special packet blasters and test programs in laboratory networks. In working network environments
it is expected that these would not occur. Nonetheless, implementation of these software '
"workarounds". is recommended for any application directly addressing the EtherLink II
programming interface. These workarounds are implemented as described in the 3L implementation
for the EtherLink II.
EtherLink II:
Programming Sequences
B
8-1
6. Set Control Register to 02h (for on-board transceiver operation) or OOh (for external
transceiver operation).
11. Set Dma Address MSB Register to 20h (allows 1.5K transmit buffer).
8-2
Transmit Sequence
1. Load the Packet into the transmit buffer beginning on a 256-byte page boundary.
3. Set the Transmit Page Start Register to point to the beginning of the packet in the transmit
buffer.
4. Load the Transmit Byte Count Registers (low and high) to the length of the packet to be
transmi tted.
5. Set the Interrupt Mask Register transmit interrupt bit(s), if any interrupt routine is to handle
completed and/or errored transmissions.
6. Set the Command Register to 22h to start the Nic, if it is not already started. Then set the
Command Register to 26h to initiate transmission of the packet. '
7. Upon completion, status indications are available in the Interrupt Status Register (lSR) and the
Transmit Status Register (TSR) and interrupts as programmed into the Interrupt Mask Register
(IMR).
Receive Sequence
You can run the following sequence to receive packets after initialization.
1. If an interrupt routine is to handle completed and/or errored receptions, set the Interrupt Mask
Register receive interrupt bit(s).
2. Set the Receive Configuration Register to receive the desired packet types only while the NIC
is already started. NIC should be in Monitor mode when started. The NIC begins packet
reception when it senses the first packet that has the appropriate destination address.
3. Status indications are available in the Interrupt Status Register (ISR), the Receive Status
Register (RCR), and the first byte of the ring packet header, upon receipt of a packet.
4. You can set the Boundary Pointer Register to point to the last page of the finished packet when'
all data for the packet has been processed and the local memory containing a packet may be
freed for additional packets. This keeps the boundary pointer one page behind the next packet.