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

NAME
     patm -- device driver for IDT77252 based ATM interfaces (ProSum 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, 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):

     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 on-
	     board EEPROM device.

     hw.atm.patmN.lbuf_max
	     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.

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

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

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

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

     hw.patmN.debug
	     (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.

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 received in AAL0 mode
     that has the MSB of the PTI field cleared.  Therefore cells will be  deliv-
     ered 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 re-
     ceived.

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

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

AUTHORS
     Harti Brandt <harti@FreeBSD.org>

FreeBSD 7.4			  July 15, 2003 			 PATM(4)

home | help