Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PATM(4)                FreeBSD Kernel Interfaces Manual                PATM(4)

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

     device patm
     device utopia
     device atm

     options NATM
     options LIBMBPOOL

     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, ATMARP, ILMI and
     other higher layer protocols are implemented using netgraph(4) or HARP.

     For configuring the card for IP see natmip(4).

     The driver supports UBR, CBR, VBR and ABR traffic.  Supported 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 outside the
     allowed range) that are not claimed by other open connections.  This may
     be used for monitoring purposes.

     The following sysctls are recognized by the driver additionally to those
     handled by utopia(4):

             Returns a list of uint32_t statistic counters with internal
             driver statistics.

             This is a read-only variable containing the contents of the on-
             board EEPROM device.

             This puts an upper limit on the number of large receive buffers
             the driver will allocate.  This is a read-only variable that can
             be set via a loader(8) tunable.

             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) tun-

             (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.

             (Only if debugging enabled.)  Returns the current values of the
             card's registers.

             Returns the transmit status queue.

     When loaded, the driver initializes several variables from loader(8) tun-

             This initializes the corresponding sysctl(8) variable and defines
             an upper limit on the number of large receive buffers (mbuf clus-

             This initializes the corresponding sysctl(8) variable and is the
             maximum number of DMA maps for transmission that the driver will

             (Only if debugging enabled.)  Initializes the debugging 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.

     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

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

     The card fails to generate an interrupt if a cell is received 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 either 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 recommended by IDT
     (they are wrong anyway).  The driver's tables are slightly more aggres-
     sive 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 medium.  The
     medium should really be coded in the EEPROM by the manufacturer.

     The Tx cell counter in the utopia statistics is wrong, because 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.

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

     Harti Brandt <>

FreeBSD 6.2                      July 15, 2003                     FreeBSD 6.2


Want to link to this manual page? Use this URL:

home | help