hatm(4)

NAME

hatm - device driver for Fore/Marconi HE155 and HE622 ATM
interfaces

SYNOPSIS

device hatm
device utopia
device atm
options NATM

DESCRIPTION

The hatm device driver supports the FORE (now Marconi) HE155
and HE622
ATM interface cards. The driver interfaces with the natm(4)
framework,
netgraph(4) and the HARP ATM stack. It provides only PVC
services. Signalling, ATMARP, ILMI and other higher layer protocols are
implemented
using netgraph(4) or HARP.
For configuring the card for IP see natmip(4).
The following sysctls are recognized by the driver addition
ally to those
handled by utopia(4):
hw.atm.hatm.natm_traffic
This is the traffic type to be used for NATM pvc
connections.
The type of this variable is integer and it must
have one of the
values 0 (UBR) or 1 (CBR).
hw.atm.hatm.natm_pcr
This is the peak cell rate to be used for NATM CBR
connections.
hw.atm.hatmN.stats
Contains an array of uint32_t with device specific
statistics.
hw.atm.hatmN.istats
Contains an array of uint32_t with internal driver
statistics.
hw.atm.hatmN.debug
(Only if debugging enabled.) These are the debug
ging flags. See
src/sys/dev/hatm/if_hatmvar.h for the possible
flags.
hw.atm.hatmN.tsr
(Only if debugging enabled.) This is an array con
taining all
transmission status registers. For each of the 4096
possible
VCCs there are 15 32-bit registers.
hw.atm.hatmN.tpd
(Only if debugging enabled.) This is an array con
taining all on
card current transmission packet descriptors. For
each of the
4096 possible VCCs there are 16 32-bit registers.
hw.atm.hatmN.mbox
(Only if debugging enabled.) This is an array con
taining the
mbox registers.
hw.atm.hatmN.cm
(Only if debugging enabled.) This is an array con
taining all
connection memory registers. The first 32-bit inte
ger of this
array is the ABR base address.
hw.atm.hatmN.heregs
(Only if debugging enabled.) This is an array con
taining all
card registers including SUNI and the FLASH ROM.
hw.atm.hatmN.lbmem
(Only if debugging enabled.) Returns the contents
of the local
memory.
The driver supports the media options sdh, noscramb and
unassigned (see
utopia(4)).

ENVIRONMENT

When attaching to a device the driver checks the kernel en
vironment (see
kenv(1)) to see if the default queues sizes should be over
written or not.
The following variables are checked and interpreted as un
signed integer
values (in either radix):
hw.hatmN.rbps0_size
Size of the small receive buffer pool 0. This pool
is used for
all except raw AAL connections. The pool size must
be a power of
two between 4 and 8192 inclusive. When attaching
the driver
allocates this number of mbufs.
hw.hatmN.rbps0_thresh
Interrupt threshold for small receive buffer pool 0.
When the
number of free buffers in the pool falls below this
threshold it
generates an interrupt so that the driver can refill
the pool.
hw.hatmN.rbpl0_thresh
Size of the large receive buffer pool 0. This pool
is used for
all except raw AAL connections. The pool size must
be a power of
two between 4 and 8192 inclusive. When attaching
the driver
allocates this number of mbufs with clusters.
hw.hatmN.rbpl0_thresh
Interrupt threshold for large receive buffer pool 0.
When the
number of free buffers in the pool falls below this
threshold it
generates an interrupt so that the driver can refill
the pool.
hw.hatmN.rbrq0_size
Size of receive buffer return queue 0. This queue
is used to
return buffers filled with received frames to the
driver. The
size must be a power of 2 between 1 and 16384 inclu
sive.
hw.hatmN.rbrq0_thresh
Interrupt threshold for receive buffer return queue
0. This
threshold should only be triggered in exceptional
cases.
hw.hatmN.rbrq0_tout
Interrupt timeout for receive buffer return queue 0.
An interrupt is generated after this time if the queue is
not empty. The
number is in internal card ticks.
hw.hatmN.rbrq0_pcnt
Packet count threshold for receive buffer return
queue 0. An
interrupt is generated if this number of packets is
in the queue.
hw.hatmN.rbps1_size
Size of the small receive buffer pool 1. This pool
is used for
all raw AAL connections. The pool size must be a
power of two
between 4 and 8192 inclusive. When attaching the
driver allocates this number of mbufs.
hw.hatmN.rbps1_thresh
Interrupt threshold for small receive buffer pool 1.
When the
number of free buffers in the pool falls below this
threshold it
generates an interrupt so that the driver can refill
the pool.
hw.hatmN.rbrq1_size
Size of receive buffer return queue 1. This queue
is used to
return buffers filled with received cells to the
driver. The
size must be a power of 2 between 1 and 16384 inclu
sive.
hw.hatmN.rbrq1_thresh
Interrupt threshold for receive buffer return queue
1. This
threshold should only be triggered in exceptional
cases.
hw.hatmN.rbrq1_tout
Interrupt timeout for receive buffer return queue 1.
An interrupt is generated after this time if the queue is
not empty. The
number is in internal card ticks.
hw.hatmN.rbrq1_pcnt
Packet count threshold for receive buffer return
queue 0. An
interrupt is generated if this number of cells is in
the queue.
hw.hatmN.irq0_size
Size of interrupt queue 0. This must be a number
between 1 and
1023 inclusive.
hw.hatmN.irq0_thresh
Interrupt retrigger threshold of interrupt queue 0.
A new interrupt is trigger if the queue fill state reaches this
threshold
and the interrupt was no served.
hw.hatmN.tbrq0_size
Transmit buffer return queue 0 size. This queue is
used to feed
back empty buffers of transmitted frames back to the
driver. It
must be a power of 2 between 1 and 4096 inclusive.
hw.hatmN.tbrq0_thresh
Transmit buffer return queue 0 threshold. An inter
rupt is generated if the queue fill state reaches this point.
hw.hatmN.tpdrq_size
Transmit descriptor ready queue size. This queue is
used by the
driver to feed transmit descriptors into the card.
The size must
be a power of 2 between 1 and 16384 inclusive.
hw.hatmN.tpdmax
Maximum number of active TPDs per connection. This
controls the
maximum number of outstanding packet chunks per con
nection and
thus the maximum delay packets can have because of
queueing on
the adapter. If set to 0, a connection can eat up
all available
TPDs.
hw.hatmN.mbuf_max_pages
Maximum number of memory pages allocated to small
external mbufs.
This must not be zero and not larger than 65536.

CAVEATS

When putting a HE155 into a 64-bit 66MHz PCI slot the ma
chine may hang.
This occurs very early in the POST so that even the display
does not turn
on. The HE155 runs only in 33MHz slots (either 32 or
64-bit). HE622
cards work just fine in 64-bit slots.
The driver may not work with bounce buffer, because of
bus_dmamap_sync(9)
missing the offset and len arguments the NetBSD function
has.

DIAGNOSTICS

hatm0: <FORE HE> mem 0xd2600000-0xd26fffff irq 9 at device
15.0 on pci2
hatm0: ForeRunnerHE 622, Rev. D, S/N 2949834,
MAC=00:20:48:2d:02:ca

SEE ALSO

natm(4), natmip(4), utopia(4), ifconfig(8), route(8)

AUTHORS

Harti Brandt <harti@FreeBSD.org>
BSD May 15, 2003
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout