patm(4)

NAME

patm - device driver for IDT77252 based ATM interfaces (Pro
Sum and IDT)

SYNOPSIS

device patm
device utopia
device atm
options NATM
options LIBMBPOOL

DESCRIPTION

The patm device driver supports ATM cards based on the
IDT77252 chip. It
has been tested with ProSum's ProATM-155 cards and with
IDT's evaluation
boards. The driver interfaces with the natm(4) framework,
netgraph(4)
and HARP. It provides only PVC services. Signalling, AT
MARP, ILMI and
other higher layer protocols are implemented using net
graph(4) or HARP.
For configuring the card for IP see natmip(4).
The driver supports UBR, CBR, VBR and ABR traffic. Support
ed AALs are:
AAL0 (cell payloads), AAL5 and raw AAL. The driver supports
opening of
VCI/VPI 0/0 in RX, raw AAL-mode. This VC will receive all
incoming cells
(even those with non-zero GFC fields and VPI/VCI values out
side the
allowed range) that are not claimed by other open connec
tions. This may
be used for monitoring purposes.
The following sysctls are recognized by the driver addition
ally to those
handled by utopia(4):
hw.atm.patmN.istats
Returns a list of uint32_t statistic counters with
internal
driver statistics.
hw.atm.patmN.eeprom
This is a read-only variable containing the contents
of the onboard EEPROM device.
hw.atm.patmN.lbuf_max
This puts an upper limit on the number of large re
ceive buffers
the driver will allocate. This is a read-only vari
able that can
be set via a loader(8) tunable.
hw.atm.patmN.tx_maxmaps
This is the upper limit of transmission DMA maps the
driver will
allocate. This is read-only but may be set via a
loader(8) tunable.
hw.atm.patmN.debug
(Only if debugging enabled.) These are debugging
flags. See
src/sys/dev/patm/if_patmvar.h for the possible
flags. This may
be initialized via a loader(8) tunable.
hw.atm.patmN.regs
(Only if debugging enabled.) Returns the current
values of the
card's registers.
hw.atm.patmN.tsq
Returns the transmit status queue.
When loaded, the driver initializes several variables from
loader(8) tunables:
hw.patmN.lbuf_max
This initializes the corresponding sysctl(8) vari
able and defines
an upper limit on the number of large receive
buffers (mbuf clusters).
hw.patmN.tx_maxmaps
This initializes the corresponding sysctl(8) vari
able and is the
maximum number of DMA maps for transmission that the
driver will
allocated.
hw.patmN.debug
(Only if debugging enabled.) Initializes the debug
ging flags.
The driver supports the media options sdh, noscramb and
unassigned (see
utopia(4)) when the card is a 155MBit card. Both PMC-Sierra
S/UNI and
IDT77155 PHY chips are supported for these cards. For
25MBit cards the
IDT77105 is supported.

DIAGNOSTICS

patm1: <NICStAR (77222/77252) ATM adapter> port
0xc000-0xc0ff mem 0xf8000000-0xf83fffff,0xf4000000-0xf4000fff irq
11 at device 8.0 on pci2
patm1: IDT77252 155MBit interface; idt77252 Rev. G; IDT77155
PHY
patm1: 128K x 32 SRAM; 4096 connections

SEE ALSO

natm(4), natmip(4), utopia(4)

CAVEATS

The card fails to generate an interrupt if a cell is re
ceived in AAL0
mode that has the MSB of the PTI field cleared. Therefore
cells will be
delivered on the next receive interrupt which can happen ei
ther when the
receive status queue is full, or a cell with the last bit of
the PTI set
is received.
Although the card supports AAL3/4 the driver does not.
The rate tables used by this driver are not the tables rec
ommended by IDT
(they are wrong anyway). The driver's tables are slightly
more aggressive than IDT's. That means, that the actual cell rate can
be slightly
higher than the specified. This is in contrast to the IDT
tables where
cell rates 5% less than the allowed one have been observed.
This can be
changed by changing the program that generates these tables,
found in
/usr/src/sys/dev/patm/genrtab, and regenerating them.
The reported media for the 155MBit cards will always be
OC3/MM, because
there is no (known to me) way to figure out the actual medi
um. The
medium should really be coded in the EEPROM by the manufac
turer.
The Tx cell counter in the utopia statistics is wrong, be
cause the chip
uses idle cells for spacing and the PHY counts these cells.
While there
is a configuration option for the chip to switch of these
cells and,
according to the documentation, this should not influence
cell spacing,
it does, so the driver lets the chip generate idle cells.

ACKNOWLEDGEMENTS

Thanks to Christian Bucari from ProSum for lending two of
these cards to
enable the development of this driver. Thanks also for an
swering my
questions.

AUTHORS

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